0% found this document useful (0 votes)
33 views27 pages

铜掌柜

The document contains JavaScript code implementing the SHA-256 hashing algorithm, including various functions for bitwise operations and data manipulation. It defines a series of helper functions to perform tasks such as rotating bits, calculating hash values, and processing input data. The code also includes a self-test function to verify the correctness of the implementation.

Uploaded by

www.1799763663
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views27 pages

铜掌柜

The document contains JavaScript code implementing the SHA-256 hashing algorithm, including various functions for bitwise operations and data manipulation. It defines a series of helper functions to perform tasks such as rotating bits, calculating hash values, and processing input data. The code also includes a self-test function to verify the correctness of the implementation.

Uploaded by

www.1799763663
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 27

!

function(){
function a(n, x) {
return x >>> n | x << 32 - n
}
function c(x, a, c) {
return x & a ^ ~x & c
}
function h(x, a, c) {
return x & a ^ x & c ^ a & c
}
function _(x) {
return a(2, x) ^ a(13, x) ^ a(22, x)
}
function v(x) {
return a(6, x) ^ a(11, x) ^ a(25, x)
}
function w(x) {
return a(7, x) ^ a(18, x) ^ x >>> 3
}
function g(x) {
return a(17, x) ^ a(19, x) ^ x >>> 10
}
function y(a, c) {
return a[15 & c] += g(a[c + 14 & 15]) + a[c + 9 & 15] + w(a[c + 1 & 15])
}
function A(x, a) {
var c = (65535 & x) + (65535 & a)
, h = (x >> 16) + (a >> 16) + (c >> 16);
return h << 16 | 65535 & c
}
function b() {
D = new Array(8),
E = new Array(2),
F = new Array(64),
E[0] = E[1] = 0,
D[0] = 1779033703,
D[1] = 3144134277,
D[2] = 1013904242,
D[3] = 2773480762,
D[4] = 1359893119,
D[5] = 2600822924,
D[6] = 528734635,
D[7] = 1541459225
}
function S() {
var a, w, g, d, e, f, b, S, C, j, R = new Array(16);
a = D[0],
w = D[1],
g = D[2],
d = D[3],
e = D[4],
f = D[5],
b = D[6],
S = D[7];
for (var i = 0; 16 > i; i++)
R[i] = F[(i << 2) + 3] | F[(i << 2) + 2] << 8 | F[(i << 2) + 1] << 16 |
F[i << 2] << 24;
for (var k = 0; 64 > k; k++)
C = S + v(e) + c(e, f, b) + G[k],
C += 16 > k ? R[k] : y(R, k),
j = _(a) + h(a, w, g),
S = b,
b = f,
f = e,
e = A(d, C),
d = g,
g = w,
w = a,
a = A(C, j);
D[0] += a,
D[1] += w,
D[2] += g,
D[3] += d,
D[4] += e,
D[5] += f,
D[6] += b,
D[7] += S
}
function C(a, c) {
var i, h, _ = 0;
h = E[0] >> 3 & 63;
var v = 63 & c;
for ((E[0] += c << 3) < c << 3 && E[1]++,
E[1] += c >> 29,
i = 0; c > i + 63; i += 64) {
for (var w = h; 64 > w; w++)
F[w] = a.charCodeAt(_++);
S(),
h = 0
}
for (var w = 0; v > w; w++)
F[w] = a.charCodeAt(_++)
}
function j() {
var a = E[0] >> 3 & 63;
if (F[a++] = 128,
56 >= a)
for (var i = a; 56 > i; i++)
F[i] = 0;
else {
for (var i = a; 64 > i; i++)
F[i] = 0;
S();
for (var i = 0; 56 > i; i++)
F[i] = 0
}
F[56] = E[1] >>> 24 & 255,
F[57] = E[1] >>> 16 & 255,
F[58] = E[1] >>> 8 & 255,
F[59] = 255 & E[1],
F[60] = E[0] >>> 24 & 255,
F[61] = E[0] >>> 16 & 255,
F[62] = E[0] >>> 8 & 255,
F[63] = 255 & E[0],
S()
}
function R() {
for (var a = 0, c = new Array(32), i = 0; 8 > i; i++)
c[a++] = D[i] >>> 24 & 255,
c[a++] = D[i] >>> 16 & 255,
c[a++] = D[i] >>> 8 & 255,
c[a++] = 255 & D[i];
return c
}
function k() {
for (var a = new String, i = 0; 8 > i; i++)
for (var c = 28; c >= 0; c -= 4)
a += H.charAt(D[i] >>> c & 15);
return a
}
function z(a) {
return b(),
C(a, a.length),
j(),
k()
}
function B() {
return "f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650"
== z("message digest")
}
var D, E, F, G = new
Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2
870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,261488810
3,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081
692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,11
3926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2
177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352
804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,13228222
18,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,275
6734187,3204031479,3329325298), H = "0123456789abcdef";
!function(D) {
D.rotateRight = a,
D.choice = c,
D.majority = h,
D.sha256_Sigma0 = _,
D.sha256_Sigma1 = v,
D.sha256_sigma0 = w,
D.sha256_sigma1 = g,
D.sha256_expand = y,
D.safe_add = A,
D.sha256_init = b,
D.sha256_transform = S,
D.sha256_update = C,
D.sha256_final = j,
D.sha256_encode_bytes = R,
D.sha256_encode_hex = k,
D.sha256_digest = z,
D.sha256_self_test = B
}("undefined" == typeof window ? this : window)
}();

;(function(root,factory){if(typeof exports==="object")
{module.exports=exports=factory();}else if(typeof define==="function"&&define.amd)
{define([],factory);}else{root.CryptoJS=factory();}}(this,function(){var
CryptoJS=CryptoJS||(function(Math,undefined){var create=Object.create||(function()
{function F(){};return function(obj){var subtype;F.prototype=obj;subtype=new
F();F.prototype=null;return subtype;};}());var C={};var C_lib=C.lib={};var
Base=C_lib.Base=(function(){return{extend:function(overrides){var
subtype=create(this);if(overrides){subtype.mixIn(overrides);}if(!
subtype.hasOwnProperty('init')||this.init===subtype.init){subtype.init=function()
{subtype.
$super.init.apply(this,arguments);};}subtype.init.prototype=subtype;subtype.
$super=this;return subtype;},create:function(){var
instance=this.extend();instance.init.apply(instance,arguments);return
instance;},init:function(){},mixIn:function(properties){for(var propertyName in
properties){if(properties.hasOwnProperty(propertyName))
{this[propertyName]=properties[propertyName];}}if(properties.hasOwnProperty('toStri
ng')){this.toString=properties.toString;}},clone:function(){return
this.init.prototype.extend(this);}};}());var
WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes)
{words=this.words=words||[];if(sigBytes!=undefined)
{this.sigBytes=sigBytes;}else{this.sigBytes=words.length*4;}},toString:function(enc
oder){return(encoder||Hex).stringify(this);},concat:function(wordArray){var
thisWords=this.words;var thatWords=wordArray.words;var
thisSigBytes=this.sigBytes;var
thatSigBytes=wordArray.sigBytes;this.clamp();if(thisSigBytes%4){for(var
i=0;i<thatSigBytes;i++){var thatByte=(thatWords[i>>>2]>>>(24-(i
%4)*8))&0xff;thisWords[(thisSigBytes+i)>>>2]|=thatByte<<(24-((thisSigBytes+i)
%4)*8);}}else{for(var i=0;i<thatSigBytes;i+=4)
{thisWords[(thisSigBytes+i)>>>2]=thatWords[i>>>2];}}this.sigBytes+=thatSigBytes;ret
urn this;},clamp:function(){var words=this.words;var
sigBytes=this.sigBytes;words[sigBytes>>>2]&=0xffffffff<<(32-(sigBytes
%4)*8);words.length=Math.ceil(sigBytes/4);},clone:function(){var
clone=Base.clone.call(this);clone.words=this.words.slice(0);return
clone;},random:function(nBytes){var words=[];var r=(function(m_w){var m_w=m_w;var
m_z=0x3ade68b1;var mask=0xffffffff;return function(){m_z=(0x9069*(m_z&0xFFFF)+
(m_z>>0x10))&mask;m_w=(0x4650*(m_w&0xFFFF)+(m_w>>0x10))&mask;var
result=((m_z<<0x10)+m_w)&mask;result/=0x100000000;result+=0.5;return
result*(Math.random()>.5?1:-1);}});for(var i=0,rcache;i<nBytes;i+=4){var
_r=r((rcache||
Math.random())*0x100000000);rcache=_r()*0x3ade67b7;words.push((_r()*0x100000000)|
0);}return new WordArray.init(words,nBytes);}});var C_enc=C.enc={};var
Hex=C_enc.Hex={stringify:function(wordArray){var words=wordArray.words;var
sigBytes=wordArray.sigBytes;var hexChars=[];for(var i=0;i<sigBytes;i++){var
bite=(words[i>>>2]>>>(24-(i
%4)*8))&0xff;hexChars.push((bite>>>4).toString(16));hexChars.push((bite&0x0f).toStr
ing(16));}return hexChars.join('');},parse:function(hexStr){var
hexStrLength=hexStr.length;var words=[];for(var i=0;i<hexStrLength;i+=2)
{words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<(24-(i%8)*4);}return new
WordArray.init(words,hexStrLength/2);}};var
Latin1=C_enc.Latin1={stringify:function(wordArray){var words=wordArray.words;var
sigBytes=wordArray.sigBytes;var latin1Chars=[];for(var i=0;i<sigBytes;i++){var
bite=(words[i>>>2]>>>(24-(i
%4)*8))&0xff;latin1Chars.push(String.fromCharCode(bite));}return
latin1Chars.join('');},parse:function(latin1Str){var
latin1StrLength=latin1Str.length;var words=[];for(var i=0;i<latin1StrLength;i++)
{words[i>>>2]|=(latin1Str.charCodeAt(i)&0xff)<<(24-(i%4)*8);}return new
WordArray.init(words,latin1StrLength);}};var
Utf8=C_enc.Utf8={stringify:function(wordArray){try{return
decodeURIComponent(escape(Latin1.stringify(wordArray)));}catch(e){throw new
Error('Malformed UTF-8 data');}},parse:function(utf8Str){return
Latin1.parse(unescape(encodeURIComponent(utf8Str)));}};var
BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function()
{this._data=new WordArray.init();this._nDataBytes=0;},_append:function(data)
{if(typeof data=='string')
{data=Utf8.parse(data);}this._data.concat(data);this._nDataBytes+=data.sigBytes;},_
process:function(doFlush){var data=this._data;var dataWords=data.words;var
dataSigBytes=data.sigBytes;var blockSize=this.blockSize;var
blockSizeBytes=blockSize*4;var nBlocksReady=dataSigBytes/blockSizeBytes;if(doFlush)
{nBlocksReady=Math.ceil(nBlocksReady);}else{nBlocksReady=Math.max((nBlocksReady|0)-
this._minBufferSize,0);}var nWordsReady=nBlocksReady*blockSize;var
nBytesReady=Math.min(nWordsReady*4,dataSigBytes);if(nWordsReady){for(var
offset=0;offset<nWordsReady;offset+=blockSize)
{this._doProcessBlock(dataWords,offset);}var
processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady;}return
new WordArray.init(processedWords,nBytesReady);},clone:function(){var
clone=Base.clone.call(this);clone._data=this._data.clone();return
clone;},_minBufferSize:0});var
Hasher=C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(
cfg){this.cfg=this.cfg.extend(cfg);this.reset();},reset:function()
{BufferedBlockAlgorithm.reset.call(this);this._doReset();},update:function(messageU
pdate){this._append(messageUpdate);this._process();return
this;},finalize:function(messageUpdate){if(messageUpdate)
{this._append(messageUpdate);}var hash=this._doFinalize();return
hash;},blockSize:512/32,_createHelper:function(hasher){return function(message,cfg)
{return new
hasher.init(cfg).finalize(message);};},_createHmacHelper:function(hasher){return
function(message,key){return new
C_algo.HMAC.init(hasher,key).finalize(message);};}});var C_algo=C.algo={};return
C;}(Math));(function(){var C=CryptoJS;var C_lib=C.lib;var
WordArray=C_lib.WordArray;var C_enc=C.enc;var
Base64=C_enc.Base64={stringify:function(wordArray){var words=wordArray.words;var
sigBytes=wordArray.sigBytes;var map=this._map;wordArray.clamp();var
base64Chars=[];for(var i=0;i<sigBytes;i+=3){var byte1=(words[i>>>2]>>>(24-(i
%4)*8))&0xff;var byte2=(words[(i+1)>>>2]>>>(24-((i+1)%4)*8))&0xff;var
byte3=(words[(i+2)>>>2]>>>(24-((i+2)%4)*8))&0xff;var triplet=(byte1<<16)|
(byte2<<8)|byte3;for(var j=0;(j<4)&&(i+j*0.75<sigBytes);j++)
{base64Chars.push(map.charAt((triplet>>>(6*(3-j)))&0x3f));}}var
paddingChar=map.charAt(64);if(paddingChar){while(base64Chars.length%4)
{base64Chars.push(paddingChar);}}return
base64Chars.join('');},parse:function(base64Str){var
base64StrLength=base64Str.length;var map=this._map;var
reverseMap=this._reverseMap;if(!reverseMap){reverseMap=this._reverseMap=[];for(var
j=0;j<map.length;j++){reverseMap[map.charCodeAt(j)]=j;}}var
paddingChar=map.charAt(64);if(paddingChar){var
paddingIndex=base64Str.indexOf(paddingChar);if(paddingIndex!==-1)
{base64StrLength=paddingIndex;}}return
parseLoop(base64Str,base64StrLength,reverseMap);},_map:'ABCDEFGHIJKLMNOPQRSTUVWXYZa
bcdefghijklmnopqrstuvwxyz0123456789+/='};function
parseLoop(base64Str,base64StrLength,reverseMap){var words=[];var nBytes=0;for(var
i=0;i<base64StrLength;i++){if(i%4){var bits1=reverseMap[base64Str.charCodeAt(i-
1)]<<((i%4)*2);var bits2=reverseMap[base64Str.charCodeAt(i)]>>>(6-(i
%4)*2);words[nBytes>>>2]|=(bits1|bits2)<<(24-(nBytes%4)*8);nBytes++;}}return
WordArray.create(words,nBytes);}}());(function(Math){var C=CryptoJS;var
C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var
C_algo=C.algo;var T=[];(function(){for(var i=0;i<64;i++)
{T[i]=(Math.abs(Math.sin(i+1))*0x100000000)|0;}}());var
MD5=C_algo.MD5=Hasher.extend({_doReset:function(){this._hash=new
WordArray.init([0x67452301,0xefcdab89,0x98badcfe,0x10325476]);},_doProcessBlock:fun
ction(M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var
M_offset_i=M[offset_i];M[offset_i]=((((M_offset_i<<8)|
(M_offset_i>>>24))&0x00ff00ff)|(((M_offset_i<<24)|
(M_offset_i>>>8))&0xff00ff00));}var H=this._hash.words;var
M_offset_0=M[offset+0];var M_offset_1=M[offset+1];var M_offset_2=M[offset+2];var
M_offset_3=M[offset+3];var M_offset_4=M[offset+4];var M_offset_5=M[offset+5];var
M_offset_6=M[offset+6];var M_offset_7=M[offset+7];var M_offset_8=M[offset+8];var
M_offset_9=M[offset+9];var M_offset_10=M[offset+10];var
M_offset_11=M[offset+11];var M_offset_12=M[offset+12];var
M_offset_13=M[offset+13];var M_offset_14=M[offset+14];var
M_offset_15=M[offset+15];var a=H[0];var b=H[1];var c=H[2];var
d=H[3];a=FF(a,b,c,d,M_offset_0,7,T[0]);d=FF(d,a,b,c,M_offset_1,12,T[1]);c=FF(c,d,a,
b,M_offset_2,17,T[2]);b=FF(b,c,d,a,M_offset_3,22,T[3]);a=FF(a,b,c,d,M_offset_4,7,T[
4]);d=FF(d,a,b,c,M_offset_5,12,T[5]);c=FF(c,d,a,b,M_offset_6,17,T[6]);b=FF(b,c,d,a,
M_offset_7,22,T[7]);a=FF(a,b,c,d,M_offset_8,7,T[8]);d=FF(d,a,b,c,M_offset_9,12,T[9]
);c=FF(c,d,a,b,M_offset_10,17,T[10]);b=FF(b,c,d,a,M_offset_11,22,T[11]);a=FF(a,b,c,
d,M_offset_12,7,T[12]);d=FF(d,a,b,c,M_offset_13,12,T[13]);c=FF(c,d,a,b,M_offset_14,
17,T[14]);b=FF(b,c,d,a,M_offset_15,22,T[15]);a=GG(a,b,c,d,M_offset_1,5,T[16]);d=GG(
d,a,b,c,M_offset_6,9,T[17]);c=GG(c,d,a,b,M_offset_11,14,T[18]);b=GG(b,c,d,a,M_offse
t_0,20,T[19]);a=GG(a,b,c,d,M_offset_5,5,T[20]);d=GG(d,a,b,c,M_offset_10,9,T[21]);c=
GG(c,d,a,b,M_offset_15,14,T[22]);b=GG(b,c,d,a,M_offset_4,20,T[23]);a=GG(a,b,c,d,M_o
ffset_9,5,T[24]);d=GG(d,a,b,c,M_offset_14,9,T[25]);c=GG(c,d,a,b,M_offset_3,14,T[26]
);b=GG(b,c,d,a,M_offset_8,20,T[27]);a=GG(a,b,c,d,M_offset_13,5,T[28]);d=GG(d,a,b,c,
M_offset_2,9,T[29]);c=GG(c,d,a,b,M_offset_7,14,T[30]);b=GG(b,c,d,a,M_offset_12,20,T
[31]);a=HH(a,b,c,d,M_offset_5,4,T[32]);d=HH(d,a,b,c,M_offset_8,11,T[33]);c=HH(c,d,a
,b,M_offset_11,16,T[34]);b=HH(b,c,d,a,M_offset_14,23,T[35]);a=HH(a,b,c,d,M_offset_1
,4,T[36]);d=HH(d,a,b,c,M_offset_4,11,T[37]);c=HH(c,d,a,b,M_offset_7,16,T[38]);b=HH(
b,c,d,a,M_offset_10,23,T[39]);a=HH(a,b,c,d,M_offset_13,4,T[40]);d=HH(d,a,b,c,M_offs
et_0,11,T[41]);c=HH(c,d,a,b,M_offset_3,16,T[42]);b=HH(b,c,d,a,M_offset_6,23,T[43]);
a=HH(a,b,c,d,M_offset_9,4,T[44]);d=HH(d,a,b,c,M_offset_12,11,T[45]);c=HH(c,d,a,b,M_
offset_15,16,T[46]);b=HH(b,c,d,a,M_offset_2,23,T[47]);a=II(a,b,c
,d,M_offset_0,6,T[48]);d=II(d,a,b,c,M_offset_7,10,T[49]);c=II(c,d,a,b,M_offset_14,1
5,T[50]);b=II(b,c,d,a,M_offset_5,21,T[51]);a=II(a,b,c,d,M_offset_12,6,T[52]);d=II(d
,a,b,c,M_offset_3,10,T[53]);c=II(c,d,a,b,M_offset_10,15,T[54]);b=II(b,c,d,a,M_offse
t_1,21,T[55]);a=II(a,b,c,d,M_offset_8,6,T[56]);d=II(d,a,b,c,M_offset_15,10,T[57]);c
=II(c,d,a,b,M_offset_6,15,T[58]);b=II(b,c,d,a,M_offset_13,21,T[59]);a=II(a,b,c,d,M_
offset_4,6,T[60]);d=II(d,a,b,c,M_offset_11,10,T[61]);c=II(c,d,a,b,M_offset_2,15,T[6
2]);b=II(b,c,d,a,M_offset_9,21,T[63]);H[0]=(H[0]+a)|0;H[1]=(H[1]+b)|
0;H[2]=(H[2]+c)|0;H[3]=(H[3]+d)|0;},_doFinalize:function(){var data=this._data;var
dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var
nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=0x80<<(24-nBitsLeft%32);var
nBitsTotalH=Math.floor(nBitsTotal/0x100000000);var
nBitsTotalL=nBitsTotal;dataWords[(((nBitsLeft+64)>>>9)<<4)+15]=((((nBitsTotalH<<8)|
(nBitsTotalH>>>24))&0x00ff00ff)|(((nBitsTotalH<<24)|
(nBitsTotalH>>>8))&0xff00ff00));dataWords[(((nBitsLeft+64)>>>9)<<4)+14]=((((nBitsTo
talL<<8)|(nBitsTotalL>>>24))&0x00ff00ff)|(((nBitsTotalL<<24)|
(nBitsTotalL>>>8))&0xff00ff00));data.sigBytes=(dataWords.length+1)*4;this._process(
);var hash=this._hash;var H=hash.words;for(var i=0;i<4;i++){var
H_i=H[i];H[i]=(((H_i<<8)|(H_i>>>24))&0x00ff00ff)|(((H_i<<24)|
(H_i>>>8))&0xff00ff00);}return hash;},clone:function(){var
clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return
clone;}});function FF(a,b,c,d,x,s,t){var n=a+((b&c)|(~b&d))+x+t;return((n<<s)|
(n>>>(32-s)))+b;}function GG(a,b,c,d,x,s,t){var n=a+((b&d)|(c&~d))
+x+t;return((n<<s)|(n>>>(32-s)))+b;}function HH(a,b,c,d,x,s,t){var n=a+(b^c^d)
+x+t;return((n<<s)|(n>>>(32-s)))+b;}function II(a,b,c,d,x,s,t){var n=a+(c^(b|~d))
+x+t;return((n<<s)|(n>>>(32-s)))
+b;}C.MD5=Hasher._createHelper(MD5);C.HmacMD5=Hasher._createHmacHelper(MD5);}
(Math));(function(){var C=CryptoJS;var C_lib=C.lib;var
WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var W=[];var
SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new
WordArray.init([0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0]);},_doProce
ssBlock:function(M,offset){var H=this._hash.words;var a=H[0];var b=H[1];var
c=H[2];var d=H[3];var e=H[4];for(var i=0;i<80;i++){if(i<16){W[i]=M[offset+i]|
0;}else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=(n<<1)|(n>>>31);}var t=((a<<5)|
(a>>>27))+e+W[i];if(i<20){t+=((b&c)|(~b&d))+0x5a827999;}else if(i<40){t+=(b^c^d)
+0x6ed9eba1;}else if(i<60){t+=((b&c)|(b&d)|(c&d))-0x70e44324;}else{t+=(b^c^d)-
0x359d3e2a;}e=d;d=c;c=(b<<30)|(b>>>2);b=a;a=t;}H[0]=(H[0]+a)|0;H[1]=(H[1]+b)|
0;H[2]=(H[2]+c)|0;H[3]=(H[3]+d)|0;H[4]=(H[4]+e)|0;},_doFinalize:function(){var
data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var
nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=0x80<<(24-nBitsLeft
%32);dataWords[(((nBitsLeft+64)>>>9)<<4)+14]=Math.floor(nBitsTotal/
0x100000000);dataWords[(((nBitsLeft+64)>>>9)<<4)+15]=nBitsTotal;data.sigBytes=dataW
ords.length*4;this._process();return this._hash;},clone:function(){var
clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return
clone;}});C.SHA1=Hasher._createHelper(SHA1);C.HmacSHA1=Hasher._createHmacHelper(SHA
1);}());(function(Math){var C=CryptoJS;var C_lib=C.lib;var
WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var H=[];var
K=[];(function(){function isPrime(n){var sqrtN=Math.sqrt(n);for(var
factor=2;factor<=sqrtN;factor++){if(!(n%factor)){return false;}}return
true;}function getFractionalBits(n){return((n-(n|0))*0x100000000)|0;}var n=2;var
nPrime=0;while(nPrime<64){if(isPrime(n)){if(nPrime<8)
{H[nPrime]=getFractionalBits(Math.pow(n,1/2));}K[nPrime]=getFractionalBits(Math.pow
(n,1/3));nPrime++;}n++;}}());var W=[];var
SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new
WordArray.init(H.slice(0));},_doProcessBlock:function(M,offset){var
H=this._hash.words;var a=H[0];var b=H[1];var c=H[2];var d=H[3];var e=H[4];var
f=H[5];var g=H[6];var h=H[7];for(var i=0;i<64;i++){if(i<16){W[i]=M[offset+i]|
0;}else{var gamma0x=W[i-15];var gamma0=((gamma0x<<25)|
(gamma0x>>>7))^((gamma0x<<14)|(gamma0x>>>18))^(gamma0x>>>3);var gamma1x=W[i-2];var
gamma1=((gamma1x<<15)|(gamma1x>>>17))^((gamma1x<<13)|
(gamma1x>>>19))^(gamma1x>>>10);W[i]=gamma0+W[i-7]+gamma1+W[i-16];}var
ch=(e&f)^(~e&g);var maj=(a&b)^(a&c)^(b&c);var sigma0=((a<<30)|(a>>>2))^((a<<19)|
(a>>>13))^((a<<10)|(a>>>22));var sigma1=((e<<26)|(e>>>6))^((e<<21)|
(e>>>11))^((e<<7)|(e>>>25));var t1=h+sigma1+ch+K[i]+W[i];var
t2=sigma0+maj;h=g;g=f;f=e;e=(d+t1)|0;d=c;c=b;b=a;a=(t1+t2)|0;}H[0]=(H[0]+a)|
0;H[1]=(H[1]+b)|0;H[2]=(H[2]+c)|0;H[3]=(H[3]+d)|0;H[4]=(H[4]+e)|0;H[5]=(H[5]+f)|
0;H[6]=(H[6]+g)|0;H[7]=(H[7]+h)|0;},_doFinalize:function(){var data=this._data;var
dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var
nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=0x80<<(24-nBitsLeft
%32);dataWords[(((nBitsLeft+64)>>>9)<<4)+14]=Math.floor(nBitsTotal/
0x100000000);dataWords[(((nBitsLeft+64)>>>9)<<4)+15]=nBitsTotal;data.sigBytes=dataW
ords.length*4;this._process();return this._hash;},clone:function(){var
clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return
clone;}});C.SHA256=Hasher._createHelper(SHA256);C.HmacSHA256=Hasher._createHmacHelp
er(SHA256);}(Math));(function(){var C=CryptoJS;var C_lib=C.lib;var
WordArray=C_lib.WordArray;var C_enc=C.enc;var
Utf16BE=C_enc.Utf16=C_enc.Utf16BE={stringify:function(wordArray){var
words=wordArray.words;var sigBytes=wordArray.sigBytes;var utf16Chars=[];for(var
i=0;i<sigBytes;i+=2){var codePoint=(words[i>>>2]>>>(16-(i
%4)*8))&0xffff;utf16Chars.push(String.fromCharCode(codePoint));}return
utf16Chars.join('');},parse:function(utf16Str){var
utf16StrLength=utf16Str.length;var words=[];for(var i=0;i<utf16StrLength;i++)
{words[i>>>1]|=utf16Str.charCodeAt(i)<<(16-(i%2)*16);}return
WordArray.create(words,utf16StrLength*2);}};C_enc.Utf16LE={stringify:function(wordA
rray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var
utf16Chars=[];for(var i=0;i<sigBytes;i+=2){var
codePoint=swapEndian((words[i>>>2]>>>(16-(i
%4)*8))&0xffff);utf16Chars.push(String.fromCharCode(codePoint));}return
utf16Chars.join('');},parse:function(utf16Str){var
utf16StrLength=utf16Str.length;var words=[];for(var i=0;i<utf16StrLength;i++)
{words[i>>>1]|=swapEndian(utf16Str.charCodeAt(i)<<(16-(i%2)*16));}return
WordArray.create(words,utf16StrLength*2);}};function swapEndian(word)
{return((word<<8)&0xff00ff00)|((word>>>8)&0x00ff00ff);}}());(function(){if(typeof
ArrayBuffer!='function'){return;}var C=CryptoJS;var C_lib=C.lib;var
WordArray=C_lib.WordArray;var superInit=WordArray.init;var
subInit=WordArray.init=function(typedArray){if(typedArray instanceof ArrayBuffer)
{typedArray=new Uint8Array(typedArray);}if(typedArray instanceof Int8Array||(typeof
Uint8ClampedArray!=="undefined"&&typedArray instanceof Uint8ClampedArray)||
typedArray instanceof Int16Array||typedArray instanceof Uint16Array||typedArray
instanceof Int32Array||typedArray instanceof Uint32Array||typedArray instanceof
Float32Array||typedArray instanceof Float64Array){typedArray=new
Uint8Array(typedArray.buffer,typedArray.byteOffset,typedArray.byteLength);}if(typed
Array instanceof Uint8Array){var typedArrayByteLength=typedArray.byteLength;var
words=[];for(var i=0;i<typedArrayByteLength;i++){words[i>>>2]|=typedArray[i]<<(24-
(i
%4)*8);}superInit.call(this,words,typedArrayByteLength);}else{superInit.apply(this,
arguments);}};subInit.prototype=WordArray;}());(function(Math){var C=CryptoJS;var
C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var
C_algo=C.algo;var
_zl=WordArray.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0
,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,1
4,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]);var
_zr=WordArray.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,1
5,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,
7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]);var
_sl=WordArray.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,
12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,
14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]);var
_sr=WordArray.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7
,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9
,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]);var
_hl=WordArray.create([0x00000000,0x5A827999,0x6ED9EBA1,0x8F1BBCDC,0xA953FD4E]);var
_hr=WordArray.create([0x50A28BE6,0x5C4DD124,0x6D703EF3,0x7A6D76E9,0x00000000]);var
RIPEMD160=C_algo.RIPEMD160=Hasher.extend({_doReset:function()
{this._hash=WordArray.create([0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476,0xC3D2E1F
0]);},_doProcessBlock:function(M,offset){for(var i=0;i<16;i++){var
offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=((((M_offset_i<<8)|
(M_offset_i>>>24))&0x00ff00ff)|(((M_offset_i<<24)|
(M_offset_i>>>8))&0xff00ff00));}var H=this._hash.words;var hl=_hl.words;var
hr=_hr.words;var zl=_zl.words;var zr=_zr.words;var sl=_sl.words;var
sr=_sr.words;var al,bl,cl,dl,el;var
ar,br,cr,dr,er;ar=al=H[0];br=bl=H[1];cr=cl=H[2];dr=dl=H[3];er=el=H[4];var t;for(var
i=0;i<80;i+=1){t=(al+M[offset+zl[i]])|0;if(i<16){t+=f1(bl,cl,dl)+hl[0];}else
if(i<32){t+=f2(bl,cl,dl)+hl[1];}else if(i<48){t+=f3(bl,cl,dl)+hl[2];}else if(i<64)
{t+=f4(bl,cl,dl)+hl[3];}else{t+=f5(bl,cl,dl)+hl[4];}t=t|0;t=rotl(t,sl[i]);t=(t+el)|
0;al=el;el=dl;dl=rotl(cl,10);cl=bl;bl=t;t=(ar+M[offset+zr[i]])|0;if(i<16)
{t+=f5(br,cr,dr)+hr[0];}else if(i<32){t+=f4(br,cr,dr)+hr[1];}else if(i<48)
{t+=f3(br,cr,dr)+hr[2];}else if(i<64){t+=f2(br,cr,dr)+hr[3];}else{t+=f1(br,cr,dr)
+hr[4];}t=t|0;t=rotl(t,sr[i]);t=(t+er)|
0;ar=er;er=dr;dr=rotl(cr,10);cr=br;br=t;}t=(H[1]+cl+dr)|0;H[1]=(H[2]+dl+er)|
0;H[2]=(H[3]+el+ar)|0;H[3]=(H[4]+al+br)|0;H[4]=(H[0]+bl+cr)|
0;H[0]=t;},_doFinalize:function(){var
data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var
nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=0x80<<(24-nBitsLeft
%32);dataWords[(((nBitsLeft+64)>>>9)<<4)+14]=((((nBitsTotal<<8)|
(nBitsTotal>>>24))&0x00ff00ff)|(((nBitsTotal<<24)|
(nBitsTotal>>>8))&0xff00ff00));data.sigBytes=(dataWords.length+1)*4;this._process()
;var hash=this._hash;var H=hash.words;for(var i=0;i<5;i++){var
H_i=H[i];H[i]=(((H_i<<8)|(H_i>>>24))&0x00ff00ff)|(((H_i<<24)|
(H_i>>>8))&0xff00ff00);}return hash;},clone:function(){var
clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return
clone;}});function f1(x,y,z){return((x)^(y)^(z));}function f2(x,y,z)
{return(((x)&(y))|((~x)&(z)));}function f3(x,y,z){return(((x)|
(~(y)))^(z));}function f4(x,y,z){return(((x)&(z))|((y)&(~(z))));}function f5(x,y,z)
{return((x)^((y)|(~(z))));}function rotl(x,n){return(x<<n)|(x>>>(32-
n));}C.RIPEMD160=Hasher._createHelper(RIPEMD160);C.HmacRIPEMD160=Hasher._createHmac
Helper(RIPEMD160);}(Math));(function(){var C=CryptoJS;var C_lib=C.lib;var
Base=C_lib.Base;var C_enc=C.enc;var Utf8=C_enc.Utf8;var C_algo=C.algo;var
HMAC=C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new
hasher.init();if(typeof key=='string'){key=Utf8.parse(key);}var
hasherBlockSize=hasher.blockSize;var
hasherBlockSizeBytes=hasherBlockSize*4;if(key.sigBytes>hasherBlockSizeBytes)
{key=hasher.finalize(key);}key.clamp();var oKey=this._oKey=key.clone();var
iKey=this._iKey=key.clone();var oKeyWords=oKey.words;var
iKeyWords=iKey.words;for(var i=0;i<hasherBlockSize;i++)
{oKeyWords[i]^=0x5c5c5c5c;iKeyWords[i]^=0x36363636;}oKey.sigBytes=iKey.sigBytes=has
herBlockSizeBytes;this.reset();},reset:function(){var
hasher=this._hasher;hasher.reset();hasher.update(this._iKey);},update:function(mess
ageUpdate){this._hasher.update(messageUpdate);return
this;},finalize:function(messageUpdate){var hasher=this._hasher;var
innerHash=hasher.finalize(messageUpdate);hasher.reset();var
hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac;}});}());
(function(){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var
WordArray=C_lib.WordArray;var C_algo=C.algo;var SHA1=C_algo.SHA1;var
HMAC=C_algo.HMAC;var
PBKDF2=C_algo.PBKDF2=Base.extend({cfg:Base.extend({keySize:128/32,hasher:SHA1,itera
tions:1}),init:function(cfg)
{this.cfg=this.cfg.extend(cfg);},compute:function(password,salt){var
cfg=this.cfg;var hmac=HMAC.create(cfg.hasher,password);var
derivedKey=WordArray.create();var blockIndex=WordArray.create([0x00000001]);var
derivedKeyWords=derivedKey.words;var blockIndexWords=blockIndex.words;var
keySize=cfg.keySize;var
iterations=cfg.iterations;while(derivedKeyWords.length<keySize){var
block=hmac.update(salt).finalize(blockIndex);hmac.reset();var
blockWords=block.words;var blockWordsLength=blockWords.length;var
intermediate=block;for(var i=1;i<iterations;i++)
{intermediate=hmac.finalize(intermediate);hmac.reset();var
intermediateWords=intermediate.words;for(var j=0;j<blockWordsLength;j++)
{blockWords[j]^=intermediateWords[j];}}derivedKey.concat(block);blockIndexWords[0]+
+;}derivedKey.sigBytes=keySize*4;return
derivedKey;}});C.PBKDF2=function(password,salt,cfg){return
PBKDF2.create(cfg).compute(password,salt);};}());(function(){var C=CryptoJS;var
C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var C_algo=C.algo;var
MD5=C_algo.MD5;var
EvpKDF=C_algo.EvpKDF=Base.extend({cfg:Base.extend({keySize:128/32,hasher:MD5,iterat
ions:1}),init:function(cfg)
{this.cfg=this.cfg.extend(cfg);},compute:function(password,salt){var
cfg=this.cfg;var hasher=cfg.hasher.create();var derivedKey=WordArray.create();var
derivedKeyWords=derivedKey.words;var keySize=cfg.keySize;var
iterations=cfg.iterations;while(derivedKeyWords.length<keySize){if(block)
{hasher.update(block);}var
block=hasher.update(password).finalize(salt);hasher.reset();for(var
i=1;i<iterations;i++)
{block=hasher.finalize(block);hasher.reset();}derivedKey.concat(block);}derivedKey.
sigBytes=keySize*4;return derivedKey;}});C.EvpKDF=function(password,salt,cfg)
{return EvpKDF.create(cfg).compute(password,salt);};}());(function(){var
C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var C_algo=C.algo;var
SHA256=C_algo.SHA256;var SHA224=C_algo.SHA224=SHA256.extend({_doReset:function()
{this._hash=new
WordArray.init([0xc1059ed8,0x367cd507,0x3070dd17,0xf70e5939,0xffc00b31,0x68581511,0
x64f98fa7,0xbefa4fa4]);},_doFinalize:function(){var
hash=SHA256._doFinalize.call(this);hash.sigBytes-=4;return
hash;}});C.SHA224=SHA256._createHelper(SHA224);C.HmacSHA224=SHA256._createHmacHelpe
r(SHA224);}());(function(undefined){var C=CryptoJS;var C_lib=C.lib;var
Base=C_lib.Base;var X32WordArray=C_lib.WordArray;var C_x64=C.x64={};var
X64Word=C_x64.Word=Base.extend({init:function(high,low)
{this.high=high;this.low=low;}});var
X64WordArray=C_x64.WordArray=Base.extend({init:function(words,sigBytes)
{words=this.words=words||[];if(sigBytes!=undefined)
{this.sigBytes=sigBytes;}else{this.sigBytes=words.length*8;}},toX32:function(){var
x64Words=this.words;var x64WordsLength=x64Words.length;var x32Words=[];for(var
i=0;i<x64WordsLength;i++){var
x64Word=x64Words[i];x32Words.push(x64Word.high);x32Words.push(x64Word.low);}return
X32WordArray.create(x32Words,this.sigBytes);},clone:function(){var
clone=Base.clone.call(this);var words=clone.words=this.words.slice(0);var
wordsLength=words.length;for(var i=0;i<wordsLength;i++)
{words[i]=words[i].clone();}return clone;}});}());(function(Math){var
C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var
Hasher=C_lib.Hasher;var C_x64=C.x64;var X64Word=C_x64.Word;var C_algo=C.algo;var
RHO_OFFSETS=[];var PI_INDEXES=[];var ROUND_CONSTANTS=[];(function(){var
x=1,y=0;for(var t=0;t<24;t++){RHO_OFFSETS[x+5*y]=((t+1)*(t+2)/2)%64;var newX=y
%5;var newY=(2*x+3*y)%5;x=newX;y=newY;}for(var x=0;x<5;x++){for(var y=0;y<5;y++)
{PI_INDEXES[x+5*y]=y+((2*x+3*y)%5)*5;}}var LFSR=0x01;for(var i=0;i<24;i++){var
roundConstantMsw=0;var roundConstantLsw=0;for(var j=0;j<7;j++){if(LFSR&0x01){var
bitPosition=(1<<j)-1;if(bitPosition<32)
{roundConstantLsw^=1<<bitPosition;}else{roundConstantMsw^=1<<(bitPosition-
32);}}if(LFSR&0x80)
{LFSR=(LFSR<<1)^0x71;}else{LFSR<<=1;}}ROUND_CONSTANTS[i]=X64Word.create(roundConsta
ntMsw,roundConstantLsw);}}());var T=[];(function(){for(var i=0;i<25;i++)
{T[i]=X64Word.create();}}());var
SHA3=C_algo.SHA3=Hasher.extend({cfg:Hasher.cfg.extend({outputLength:512}),_doReset:
function(){var state=this._state=[];for(var i=0;i<25;i++){state[i]=new
X64Word.init();}this.blockSize=(1600-2*this.cfg.outputLength)/32;},_doProcessBlock:
function(M,offset){var state=this._state;var
nBlockSizeLanes=this.blockSize/2;for(var i=0;i<nBlockSizeLanes;i++){var
M2i=M[offset+2*i];var M2i1=M[offset+2*i+1];M2i=((((M2i<<8)|(M2i>>>24))&0x00ff00ff)|
(((M2i<<24)|(M2i>>>8))&0xff00ff00));M2i1=((((M2i1<<8)|(M2i1>>>24))&0x00ff00ff)|
(((M2i1<<24)|(M2i1>>>8))&0xff00ff00));var
lane=state[i];lane.high^=M2i1;lane.low^=M2i;}for(var round=0;round<24;round++)
{for(var x=0;x<5;x++){var tMsw=0,tLsw=0;for(var y=0;y<5;y++){var
lane=state[x+5*y];tMsw^=lane.high;tLsw^=lane.low;}var
Tx=T[x];Tx.high=tMsw;Tx.low=tLsw;}for(var x=0;x<5;x++){var Tx4=T[(x+4)%5];var
Tx1=T[(x+1)%5];var Tx1Msw=Tx1.high;var Tx1Lsw=Tx1.low;var
tMsw=Tx4.high^((Tx1Msw<<1)|(Tx1Lsw>>>31));var tLsw=Tx4.low^((Tx1Lsw<<1)|
(Tx1Msw>>>31));for(var y=0;y<5;y++){var
lane=state[x+5*y];lane.high^=tMsw;lane.low^=tLsw;}}for(var
laneIndex=1;laneIndex<25;laneIndex++){var lane=state[laneIndex];var
laneMsw=lane.high;var laneLsw=lane.low;var
rhoOffset=RHO_OFFSETS[laneIndex];if(rhoOffset<32){var tMsw=(laneMsw<<rhoOffset)|
(laneLsw>>>(32-rhoOffset));var tLsw=(laneLsw<<rhoOffset)|(laneMsw>>>(32-
rhoOffset));}else{var tMsw=(laneLsw<<(rhoOffset-32))|(laneMsw>>>(64-rhoOffset));var
tLsw=(laneMsw<<(rhoOffset-32))|(laneLsw>>>(64-rhoOffset));}var
TPiLane=T[PI_INDEXES[laneIndex]];TPiLane.high=tMsw;TPiLane.low=tLsw;}var
T0=T[0];var state0=state[0];T0.high=state0.high;T0.low=state0.low;for(var
x=0;x<5;x++){for(var y=0;y<5;y++){var laneIndex=x+5*y;var lane=state[laneIndex];var
TLane=T[laneIndex];var Tx1Lane=T[((x+1)%5)+5*y];var
Tx2Lane=T[((x+2)%5)+5*y];lane.high=TLane.high^(~Tx1Lane.high&Tx2Lane.high);lane.low
=TLane.low^(~Tx1Lane.low&Tx2Lane.low);}}var lane=state[0];var
roundConstant=ROUND_CONSTANTS[round];lane.high^=roundConstant.high;lane.low^=roundC
onstant.low;;}},_doFinalize:function(){var data=this._data;var
dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var
nBitsLeft=data.sigBytes*8;var
blockSizeBits=this.blockSize*32;dataWords[nBitsLeft>>>5]|=0x1<<(24-nBitsLeft
%32);dataWords[((Math.ceil((nBitsLeft+1)/blockSizeBits)*blockSizeBits)>>>5)-1]|
=0x80;data.sigBytes=dataWords.length*4;this._process();var state=this._state;var
outputLengthBytes=this.cfg.outputLength/8;var
outputLengthLanes=outputLengthBytes/8;var hashWords=[];for(var
i=0;i<outputLengthLanes;i++){var lane=state[i];var laneMsw=lane.high;var
laneLsw=lane.low;laneMsw=((((laneMsw<<8)|(laneMsw>>>24))&0x00ff00ff)|
(((laneMsw<<24)|(laneMsw>>>8))&0xff00ff00));laneLsw=((((laneLsw<<8)|
(laneLsw>>>24))&0x00ff00ff)|(((laneLsw<<24)|
(laneLsw>>>8))&0xff00ff00));hashWords.push(laneLsw);hashWords.push(laneMsw);}return
new WordArray.init(hashWords,outputLengthBytes);},clone:function(){var
clone=Hasher.clone.call(this);var state=clone._state=this._state.slice(0);for(var
i=0;i<25;i++){state[i]=state[i].clone();}return
clone;}});C.SHA3=Hasher._createHelper(SHA3);C.HmacSHA3=Hasher._createHmacHelper(SHA
3);}(Math));(function(){var C=CryptoJS;var C_lib=C.lib;var Hasher=C_lib.Hasher;var
C_x64=C.x64;var X64Word=C_x64.Word;var X64WordArray=C_x64.WordArray;var
C_algo=C.algo;function X64Word_create(){return
X64Word.create.apply(X64Word,arguments);}var
K=[X64Word_create(0x428a2f98,0xd728ae22),X64Word_create(0x71374491,0x23ef65cd),X64W
ord_create(0xb5c0fbcf,0xec4d3b2f),X64Word_create(0xe9b5dba5,0x8189dbbc),X64Word_cre
ate(0x3956c25b,0xf348b538),X64Word_create(0x59f111f1,0xb605d019),X64Word_create(0x9
23f82a4,0xaf194f9b),X64Word_create(0xab1c5ed5,0xda6d8118),X64Word_create(0xd807aa98
,0xa3030242),X64Word_c
reate(0x12835b01,0x45706fbe),X64Word_create(0x243185be,0x4ee4b28c),X64Word_create(0
x550c7dc3,0xd5ffb4e2),X64Word_create(0x72be5d74,0xf27b896f),X64Word_create(0x80deb1
fe,0x3b1696b1),X64Word_create(0x9bdc06a7,0x25c71235),X64Word_create(0xc19bf174,0xcf
692694),X64Word_create(0xe49b69c1,0x9ef14ad2),X64Word_create(0xefbe4786,0x384f25e3)
,X64Word_create(0x0fc19dc6,0x8b8cd5b5),X64Word_create(0x240ca1cc,0x77ac9c65),X64Wor
d_create(0x2de92c6f,0x592b0275),X64Word_create(0x4a7484aa,0x6ea6e483),X64Word_creat
e(0x5cb0a9dc,0xbd41fbd4),X64Word_create(0x76f988da,0x831153b5),X64Word_create(0x983
e5152,0xee66dfab),X64Word_create(0xa831c66d,0x2db43210),X64Word_create(0xb00327c8,0
x98fb213f),X64Word_create(0xbf597fc7,0xbeef0ee4),X64Word_create(0xc6e00bf3,0x3da88f
c2),X64Word_create(0xd5a79147,0x930aa725),X64Word_create(0x06ca6351,0xe003826f),X64
Word_create(0x14292967,0x0a0e6e70),X64Word_create(0x27b70a85,0x46d22ffc),X64Word_cr
eate(0x2e1b2138,0x5c26c926),X64Word_create(0x4d2c6dfc,0x5ac42aed),X64Word_create(0x
53380d13,0x9d95b3df),X64Word_create(0x650a7354,0x8baf63de),X64Word_create(0x766a0ab
b,0x3c77b2a8),X64Word_create(0x81c2c92e,0x47edaee6),X64Word_create(0x92722c85,0x148
2353b),X64Word_create(0xa2bfe8a1,0x4cf10364),X64Word_create(0xa81a664b,0xbc423001),
X64Word_create(0xc24b8b70,0xd0f89791),X64Word_create(0xc76c51a3,0x0654be30),X64Word
_create(0xd192e819,0xd6ef5218),X64Word_create(0xd6990624,0x5565a910),X64Word_create
(0xf40e3585,0x5771202a),X64Word_create(0x106aa070,0x32bbd1b8),X64Word_create(0x19a4
c116,0xb8d2d0c8),X64Word_create(0x1e376c08,0x5141ab53),X64Word_create(0x2748774c,0x
df8eeb99),X64Word_create(0x34b0bcb5,0xe19b48a8),X64Word_create(0x391c0cb3,0xc5c95a6
3),X64Word_create(0x4ed8aa4a,0xe3418acb),X64Word_create(0x5b9cca4f,0x7763e373),X64W
ord_create(0x682e6ff3,0xd6b2b8a3),X64Word_create(0x748f82ee,0x5defb2fc),X64Word_cre
ate(0x78a5636f,0x43172f60),X64Word_create(0x84c87814,0xa1f0ab72),X64Word_create(0x8
cc70208,0x1a6439ec),X64Word_create(0x90befffa,0x23631e28),X64Word_create(0xa4506ceb
,0xde82bde9),X64Word_create(0xbef9a3f7,0xb2c67915),X64Word_create(0xc67178f2,0xe372
532b),X64Word_create(0xca273ece,0xea26619c),X64Word_create(0xd186b8c7,0x21c0c207),X
64Word_create(0xeada7dd6,0xcde0eb1e),X64Word_create(0xf57d4f7f,0xee6ed178),X64Word_
create(0x06f067aa,0x72176fba),X64Word_create(0x0a637dc5,0xa2c898a6),X64Word_create(
0x113f9804,0xbef90dae),X64Word_create(0x1b710b35,0x131c471b),X64Word_create(0x28db7
7f5,0x23047d84),X64Word_create(0x32caab7b,0x40c72493),X64Word_create(0x3c9ebe0a,0x1
5c9bebc),X64Word_create(0x431d67c4,0x9c100d4c),X64Word_create(0x4cc5d4be,0xcb3e42b6
),X64Word_create(0x597f299c,0xfc657e2a),X64Word_create(0x5fcb6fab,0x3ad6faec),X64Wo
rd_create(0x6c44198c,0x4a475817)];var W=[];(function(){for(var i=0;i<80;i++)
{W[i]=X64Word_create();}}());var
SHA512=C_algo.SHA512=Hasher.extend({_doReset:function(){this._hash=new
X64WordArray.init([new X64Word.init(0x6a09e667,0xf3bcc908),new
X64Word.init(0xbb67ae85,0x84caa73b),new X64Word.init(0x3c6ef372,0xfe94f82b),new
X64Word.init(0xa54ff53a,0x5f1d36f1),new X64Word.init(0x510e527f,0xade682d1),new
X64Word.init(0x9b05688c,0x2b3e6c1f),new X64Word.init(0x1f83d9ab,0xfb41bd6b),new
X64Word.init(0x5be0cd19,0x137e2179)]);},_doProcessBlock:function(M,offset){var
H=this._hash.words;var H0=H[0];var H1=H[1];var H2=H[2];var H3=H[3];var H4=H[4];var
H5=H[5];var H6=H[6];var H7=H[7];var H0h=H0.high;var H0l=H0.low;var H1h=H1.high;var
H1l=H1.low;var H2h=H2.high;var H2l=H2.low;var H3h=H3.high;var H3l=H3.low;var
H4h=H4.high;var H4l=H4.low;var H5h=H5.high;var H5l=H5.low;var H6h=H6.high;var
H6l=H6.low;var H7h=H7.high;var H7l=H7.low;var ah=H0h;var al=H0l;var bh=H1h;var
bl=H1l;var ch=H2h;var cl=H2l;var dh=H3h;var dl=H3l;var eh=H4h;var el=H4l;var
fh=H5h;var fl=H5l;var gh=H6h;var gl=H6l;var hh=H7h;var hl=H7l;for(var i=0;i<80;i++)
{var Wi=W[i];if(i<16){var Wih=Wi.high=M[offset+i*2]|0;var
Wil=Wi.low=M[offset+i*2+1]|0;}else{var gamma0x=W[i-15];var
gamma0xh=gamma0x.high;var gamma0xl=gamma0x.low;var gamma0h=((gamma0xh>>>1)|
(gamma0xl<<31))^((gamma0xh>>>8)|(gamma0xl<<24))^(gamma0xh>>>7);var
gamma0l=((gamma0xl>>>1)|(gamma0xh<<31))^((gamma0xl>>>8)|
(gamma0xh<<24))^((gamma0xl>>>7)|(gamma0xh<<25));var gamma1x=W[i-2];var
gamma1xh=gamma1x.high;var gamma1xl=gamma1x.low;var gamma1h=((gamma1xh>>>19)|
(gamma1xl<<13))^((gamma1xh<<3)|(gamma1xl>>>29))^(gamma1xh>>>6);var
gamma1l=((gamma1xl>>>19)|(gamma1xh<<13))^((gamma1xl<<3)|
(gamma1xh>>>29))^((gamma1xl>>>6)|(gamma1xh<<26));var Wi7=W[i-7];var
Wi7h=Wi7.high;var Wi7l=Wi7.low;var Wi16=W[i-16];var Wi16h=Wi16.high;var
Wi16l=Wi16.low;var Wil=gamma0l+Wi7l;var Wih=gamma0h+Wi7h+((Wil>>>0)<(gamma0l>>>0)?
1:0);var Wil=Wil+gamma1l;var Wih=Wih+gamma1h+((Wil>>>0)<(gamma1l>>>0)?1:0);var
Wil=Wil+Wi16l;var Wih=Wih+Wi16h+((Wil>>>0)<(Wi16l>>>0)?
1:0);Wi.high=Wih;Wi.low=Wil;}var chh=(eh&fh)^(~eh&gh);var chl=(el&fl)^(~el&gl);var
majh=(ah&bh)^(ah&ch)^(bh&ch);var majl=(al&bl)^(al&cl)^(bl&cl);var
sigma0h=((ah>>>28)|(al<<4))^((ah<<30)|(al>>>2))^((ah<<25)|(al>>>7));var
sigma0l=((al>>>28)|(ah<<4))^((al<<30)|(ah>>>2))^((al<<25)|(ah>>>7));var
sigma1h=((eh>>>14)|(el<<18))^((eh>>>18)|(el<<14))^((eh<<23)|(el>>>9));var
sigma1l=((el>>>14)|(eh<<18))^((el>>>18)|(eh<<14))^((el<<23)|(eh>>>9));var
Ki=K[i];var Kih=Ki.high;var Kil=Ki.low;var t1l=hl+sigma1l;var t1h=hh+sigma1h+
((t1l>>>0)<(hl>>>0)?1:0);var t1l=t1l+chl;var t1h=t1h+chh+((t1l>>>0)<(chl>>>0)?
1:0);var t1l=t1l+Kil;var t1h=t1h+Kih+((t1l>>>0)<(Kil>>>0)?1:0);var t1l=t1l+Wil;var
t1h=t1h+Wih+((t1l>>>0)<(Wil>>>0)?1:0);var t2l=sigma0l+majl;var t2h=sigma0h+majh+
((t2l>>>0)<(sigma0l>>>0)?1:0);hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;el=(dl+t1l)|
0;eh=(dh+t1h+((el>>>0)<(dl>>>0)?1:0))|
0;dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;al=(t1l+t2l)|0;ah=(t1h+t2h+
((al>>>0)<(t1l>>>0)?1:0))|0;}H0l=H0.low=(H0l+al);H0.high=(H0h+ah+
((H0l>>>0)<(al>>>0)?1:0));H1l=H1.low=(H1l+bl);H1.high=(H1h+bh+((H1l>>>0)<(bl>>>0)?
1:0));H2l=H2.low=(H2l+cl);H2.high=(H2h+ch+((H2l>>>0)<(cl>>>0)?
1:0));H3l=H3.low=(H3l+dl);H3.high=(H3h+dh+((H3l>>>0)<(dl>>>0)?
1:0));H4l=H4.low=(H4l+el);H4.high=(H4h+eh+((H4l>>>0)<(el>>>0)?
1:0));H5l=H5.low=(H5l+fl);H5.high=(H5h+fh+((H5l>>>0)<(fl>>>0)?
1:0));H6l=H6.low=(H6l+gl);H6.high=(H6h+gh+((H6l>>>0)<(gl>>>0)?
1:0));H7l=H7.low=(H7l+hl);H7.high=(H7h+hh+((H7l>>>0)<(hl>>>0)?
1:0));},_doFinalize:function(){var data=this._data;var dataWords=data.words;var
nBitsTotal=this._nDataBytes*8;var
nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=0x80<<(24-nBitsLeft
%32);dataWords[(((nBitsLeft+128)>>>10)<<5)+30]=Math.floor(nBitsTotal/
0x100000000);dataWords[(((nBitsLeft+128)>>>10)<<5)+31]=nBitsTotal;data.sigBytes=dat
aWords.length*4;this._process();var hash=this._hash.toX32();return
hash;},clone:function(){var
clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return
clone;},blockSize:1024/32});C.SHA512=Hasher._createHelper(SHA512);C.HmacSHA512=Hash
er._createHmacHelper(SHA512);}());(function(){var C=CryptoJS;var C_x64=C.x64;var
X64Word=C_x64.Word;var X64WordArray=C_x64.WordArray;var C_algo=C.algo;var
SHA512=C_algo.SHA512;var SHA384=C_algo.SHA384=SHA512.extend({_doReset:function()
{this._hash=new X64WordArray.init([new X64Word.init(0xcbbb9d5d,0xc1059ed8),new
X64Word.init(0x629a292a,0x367cd507),new X64Word.init(0x9159015a,0x3070dd17),new
X64Word.init(0x152fecd8,0xf70e5939),new X64Word.init(0x67332667,0xffc00b31),new
X64Word.init(0x8eb44a87,0x68581511),new X64Word.init(0xdb0c2e0d,0x64f98fa7),new
X64Word.init(0x47b5481d,0xbefa4fa4)]);},_doFinalize:function(){var
hash=SHA512._doFinalize.call(this);hash.sigBytes-=16;return
hash;}});C.SHA384=SHA512._createHelper(SHA384);C.HmacSHA384=SHA512._createHmacHelpe
r(SHA384);}());CryptoJS.lib.Cipher||(function(undefined){var C=CryptoJS;var
C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var
BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm;var C_enc=C.enc;var
Utf8=C_enc.Utf8;var Base64=C_enc.Base64;var C_algo=C.algo;var
EvpKDF=C_algo.EvpKDF;var
Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncrypto
r:function(key,cfg){return
this.create(this._ENC_XFORM_MODE,key,cfg);},createDecryptor:function(key,cfg)
{return
this.create(this._DEC_XFORM_MODE,key,cfg);},init:function(xformMode,key,cfg)
{this.cfg=this.cfg.extend(cfg);this._xformMode=xformMode;this._key=key;this.reset()
;},reset:function()
{BufferedBlockAlgorithm.reset.call(this);this._doReset();},process:function(dataUpd
ate){this._append(dataUpdate);return
this._process();},finalize:function(dataUpdate){if(dataUpdate)
{this._append(dataUpdate);}var finalProcessedData=this._doFinalize();return
finalProcessedData;},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE
:2,_createHelper:(function(){function selectCipherStrategy(key){if(typeof
key=='string'){return PasswordBasedCipher;}else{return SerializableCipher;}}return
function(cipher){return{encrypt:function(message,key,cfg){return
selectCipherStrategy(key).encrypt(cipher,message,key,cfg);},decrypt:function(cipher
text,key,cfg){return
selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg);}};};}())});var
StreamCipher=C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var
finalProcessedBlocks=this._process(!!'flush');return
finalProcessedBlocks;},blockSize:1});var C_mode=C.mode={};var
BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,
iv){return this.Encryptor.create(cipher,iv);},createDecryptor:function(cipher,iv)
{return this.Decryptor.create(cipher,iv);},init:function(cipher,iv)
{this._cipher=cipher;this._iv=iv;}});var CBC=C_mode.CBC=(function(){var
CBC=BlockCipherMode.extend();CBC.Encryptor=CBC.extend({processBlock:function(words,
offset){var cipher=this._cipher;var
blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize);cipher.encryp
tBlock(words,offset);this._prevBlock=words.slice(offset,offset+blockSize);}});CBC.D
ecryptor=CBC.extend({processBlock:function(words,offset){var
cipher=this._cipher;var blockSize=cipher.blockSize;var
thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset);xo
rBlock.call(this,words,offset,blockSize);this._prevBlock=thisBlock;}});function
xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var
block=iv;this._iv=undefined;}else{var block=this._prevBlock;}for(var
i=0;i<blockSize;i++){words[offset+i]^=block[i];}}return CBC;}());var
C_pad=C.pad={};var Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){var
blockSizeBytes=blockSize*4;var nPaddingBytes=blockSizeBytes-data.sigBytes
%blockSizeBytes;var paddingWord=(nPaddingBytes<<24)|(nPaddingBytes<<16)|
(nPaddingBytes<<8)|nPaddingBytes;var paddingWords=[];for(var
i=0;i<nPaddingBytes;i+=4){paddingWords.push(paddingWord);}var
padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding);},unpad:f
unction(data){var nPaddingBytes=data.words[(data.sigBytes-
1)>>>2]&0xff;data.sigBytes-=nPaddingBytes;}};var
BlockCipher=C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,paddin
g:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg;var
iv=cfg.iv;var mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE){var
modeCreator=mode.createEncryptor;}else{var
modeCreator=mode.createDecryptor;this._minBufferSize=1;}if(this._mode&&this._mode._
_creator==modeCreator)
{this._mode.init(this,iv&&iv.words);}else{this._mode=modeCreator.call(mode,this,iv&
&iv.words);this._mode.__creator=modeCreator;}},_doProcessBlock:function(words,offse
t){this._mode.processBlock(words,offset);},_doFinalize:function(){var
padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE)
{padding.pad(this._data,this.blockSize);var
finalProcessedBlocks=this._process(!!'flush');}else{var
finalProcessedBlocks=this._process(!!'flush');padding.unpad(finalProcessedBlocks);}
return finalProcessedBlocks;},blockSize:128/32});var
CipherParams=C_lib.CipherParams=Base.extend({init:function(cipherParams)
{this.mixIn(cipherParams);},toString:function(formatter){return(formatter||
this.formatter).stringify(this);}});var C_format=C.format={};var
OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var
ciphertext=cipherParams.ciphertext;var salt=cipherParams.salt;if(salt){var
wordArray=WordArray.create([0x53616c74,0x65645f5f]).concat(salt).concat(ciphertext)
;}else{var wordArray=ciphertext;}return
wordArray.toString(Base64);},parse:function(openSSLStr){var
ciphertext=Base64.parse(openSSLStr);var
ciphertextWords=ciphertext.words;if(ciphertextWords[0]==0x53616c74&&ciphertextWords
[1]==0x65645f5f){var
salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4);ciphe
rtext.sigBytes-=16;}return
CipherParams.create({ciphertext:ciphertext,salt:salt});}};var
SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:Op
enSSLFormatter}),encrypt:function(cipher,message,key,cfg)
{cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg);var
ciphertext=encryptor.finalize(message);var cipherCfg=encryptor.cfg;return
CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher
,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter
:cfg.format});},decrypt:function(cipher,ciphertext,key,cfg)
{cfg=this.cfg.extend(cfg);ciphertext=this._parse(ciphertext,cfg.format);var
plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return
plaintext;},_parse:function(ciphertext,format){if(typeof ciphertext=='string')
{return format.parse(ciphertext,this);}else{return ciphertext;}}});var
C_kdf=C.kdf={};var
OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){if(!salt)
{salt=WordArray.random(64/8);}var
key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt);var
iv=WordArray.create(key.words.slice(keySize),ivSize*4);key.sigBytes=keySize*4;retur
n CipherParams.create({key:key,iv:iv,salt:salt});}};var
PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:Serial
izableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,
cfg){cfg=this.cfg.extend(cfg);var
derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derived
Params.iv;var
ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cf
g);ciphertext.mixIn(derivedParams);return
ciphertext;},decrypt:function(cipher,ciphertext,password,cfg)
{cfg=this.cfg.extend(cfg);ciphertext=this._parse(ciphertext,cfg.format);var
derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt
);cfg.iv=derivedParams.iv;var
plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,
cfg);return plaintext;}});}());CryptoJS.mode.CFB=(function(){var
CFB=CryptoJS.lib.BlockCipherMode.extend();CFB.Encryptor=CFB.extend({processBlock:fu
nction(words,offset){var cipher=this._cipher;var
blockSize=cipher.blockSize;generateKeystreamAndEncrypt.call(this,words,offset,block
Size,cipher);this._prevBlock=words.slice(offset,offset+blockSize);}});CFB.Decryptor
=CFB.extend({processBlock:function(words,offset){var cipher=this._cipher;var
blockSize=cipher.blockSize;var
thisBlock=words.slice(offset,offset+blockSize);generateKeystreamAndEncrypt.call(thi
s,words,offset,blockSize,cipher);this._prevBlock=thisBlock;}});function
generateKeystreamAndEncrypt(words,offset,blockSize,cipher){var iv=this._iv;if(iv)
{var keystream=iv.slice(0);this._iv=undefined;}else{var
keystream=this._prevBlock;}cipher.encryptBlock(keystream,0);for(var
i=0;i<blockSize;i++){words[offset+i]^=keystream[i];}}return CFB;}
());CryptoJS.mode.ECB=(function(){var
ECB=CryptoJS.lib.BlockCipherMode.extend();ECB.Encryptor=ECB.extend({processBlock:fu
nction(words,offset)
{this._cipher.encryptBlock(words,offset);}});ECB.Decryptor=ECB.extend({processBlock
:function(words,offset){this._cipher.decryptBlock(words,offset);}});return ECB;}
());CryptoJS.pad.AnsiX923={pad:function(data,blockSize){var
dataSigBytes=data.sigBytes;var blockSizeBytes=blockSize*4;var
nPaddingBytes=blockSizeBytes-dataSigBytes%blockSizeBytes;var
lastBytePos=dataSigBytes+nPaddingBytes-1;data.clamp();data.words[lastBytePos>>>2]|
=nPaddingBytes<<(24-(lastBytePos
%4)*8);data.sigBytes+=nPaddingBytes;},unpad:function(data){var
nPaddingBytes=data.words[(data.sigBytes-1)>>>2]&0xff;data.sigBytes-
=nPaddingBytes;}};CryptoJS.pad.Iso10126={pad:function(data,blockSize){var
blockSizeBytes=blockSize*4;var nPaddingBytes=blockSizeBytes-data.sigBytes
%blockSizeBytes;data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes-
1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes<<24],1));},unpad:function(d
ata){var nPaddingBytes=data.words[(data.sigBytes-1)>>>2]&0xff;data.sigBytes-
=nPaddingBytes;}};CryptoJS.pad.Iso97971={pad:function(data,blockSize)
{data.concat(CryptoJS.lib.WordArray.create([0x80000000],1));CryptoJS.pad.ZeroPaddin
g.pad(data,blockSize);},unpad:function(data)
{CryptoJS.pad.ZeroPadding.unpad(data);data.sigBytes--;}};CryptoJS.mode.OFB=(functio
n(){var OFB=CryptoJS.lib.BlockCipherMode.extend();var
Encryptor=OFB.Encryptor=OFB.extend({processBlock:function(words,offset){var
cipher=this._cipher
var blockSize=cipher.blockSize;var iv=this._iv;var keystream=this._keystream;if(iv)
{keystream=this._keystream=iv.slice(0);this._iv=undefined;}cipher.encryptBlock(keys
tream,0);for(var i=0;i<blockSize;i++)
{words[offset+i]^=keystream[i];}}});OFB.Decryptor=Encryptor;return OFB;}
());CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}};
(function(undefined){var C=CryptoJS;var C_lib=C.lib;var
CipherParams=C_lib.CipherParams;var C_enc=C.enc;var Hex=C_enc.Hex;var
C_format=C.format;var HexFormatter=C_format.Hex={stringify:function(cipherParams)
{return cipherParams.ciphertext.toString(Hex);},parse:function(input){var
ciphertext=Hex.parse(input);return
CipherParams.create({ciphertext:ciphertext});}};}());(function(){var C=CryptoJS;var
C_lib=C.lib;var BlockCipher=C_lib.BlockCipher;var C_algo=C.algo;var SBOX=[];var
INV_SBOX=[];var SUB_MIX_0=[];var SUB_MIX_1=[];var SUB_MIX_2=[];var SUB_MIX_3=[];var
INV_SUB_MIX_0=[];var INV_SUB_MIX_1=[];var INV_SUB_MIX_2=[];var INV_SUB_MIX_3=[];
(function(){var d=[];for(var i=0;i<256;i++){if(i<128)
{d[i]=i<<1;}else{d[i]=(i<<1)^0x11b;}}var x=0;var xi=0;for(var i=0;i<256;i++){var
sx=xi^(xi<<1)^(xi<<2)^(xi<<3)^(xi<<4);sx=(sx>>>8)^(sx&0xff)^0x63;SBOX[x]=sx;INV_SBO
X[sx]=x;var x2=d[x];var x4=d[x2];var x8=d[x4];var
t=(d[sx]*0x101)^(sx*0x1010100);SUB_MIX_0[x]=(t<<24)|(t>>>8);SUB_MIX_1[x]=(t<<16)|
(t>>>16);SUB_MIX_2[x]=(t<<8)|(t>>>24);SUB_MIX_3[x]=t;var
t=(x8*0x1010101)^(x4*0x10001)^(x2*0x101)^(x*0x1010100);INV_SUB_MIX_0[sx]=(t<<24)|
(t>>>8);INV_SUB_MIX_1[sx]=(t<<16)|(t>>>16);INV_SUB_MIX_2[sx]=(t<<8)|
(t>>>24);INV_SUB_MIX_3[sx]=t;if(!x)
{x=xi=1;}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]];}}}());var
RCON=[0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36];var
AES=C_algo.AES=BlockCipher.extend({_doReset:function()
{if(this._nRounds&&this._keyPriorReset===this._key){return;}var
key=this._keyPriorReset=this._key;var keyWords=key.words;var
keySize=key.sigBytes/4;var nRounds=this._nRounds=keySize+6;var
ksRows=(nRounds+1)*4;var keySchedule=this._keySchedule=[];for(var
ksRow=0;ksRow<ksRows;ksRow++){if(ksRow<keySize)
{keySchedule[ksRow]=keyWords[ksRow];}else{var t=keySchedule[ksRow-1];if(!(ksRow
%keySize)){t=(t<<8)|(t>>>24);t=(SBOX[t>>>24]<<24)|(SBOX[(t>>>16)&0xff]<<16)|
(SBOX[(t>>>8)&0xff]<<8)|SBOX[t&0xff];t^=RCON[(ksRow/keySize)|0]<<24;}else
if(keySize>6&&ksRow%keySize==4){t=(SBOX[t>>>24]<<24)|(SBOX[(t>>>16)&0xff]<<16)|
(SBOX[(t>>>8)&0xff]<<8)|SBOX[t&0xff];}keySchedule[ksRow]=keySchedule[ksRow-
keySize]^t;}}var invKeySchedule=this._invKeySchedule=[];for(var
invKsRow=0;invKsRow<ksRows;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4){var
t=keySchedule[ksRow];}else{var t=keySchedule[ksRow-4];}if(invKsRow<4||ksRow<=4)
{invKeySchedule[invKsRow]=t;}else{invKeySchedule[invKsRow]=INV_SUB_MIX_0[SBOX[t>>>2
4]]^INV_SUB_MIX_1[SBOX[(t>>>16)&0xff]]^INV_SUB_MIX_2[SBOX[(t>>>8)&0xff]]^INV_SUB_MI
X_3[SBOX[t&0xff]];}}},encryptBlock:function(M,offset)
{this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MI
X_3,SBOX);},decryptBlock:function(M,offset){var
t=M[offset+1];M[offset+1]=M[offset+3];M[offset+3]=t;this._doCryptBlock(M,offset,thi
s._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX)
;var
t=M[offset+1];M[offset+1]=M[offset+3];M[offset+3]=t;},_doCryptBlock:function(M,offs
et,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){var
nRounds=this._nRounds;var s0=M[offset]^keySchedule[0];var
s1=M[offset+1]^keySchedule[1];var s2=M[offset+2]^keySchedule[2];var
s3=M[offset+3]^keySchedule[3];var ksRow=4;for(var round=1;round<nRounds;round++)
{var
t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[(s1>>>16)&0xff]^SUB_MIX_2[(s2>>>8)&0xff]^SUB_MIX_3[
s3&0xff]^keySchedule[ksRow++];var
t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[(s2>>>16)&0xff]^SUB_MIX_2[(s3>>>8)&0xff]^SUB_MIX_3[
s0&0xff]^keySchedule[ksRow++];var
t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[(s3>>>16)&0xff]^SUB_MIX_2[(s0>>>8)&0xff]^SUB_MIX_3[
s1&0xff]^keySchedule[ksRow++];var
t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[(s0>>>16)&0xff]^SUB_MIX_2[(s1>>>8)&0xff]^SUB_MIX_3[
s2&0xff]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3;}var t0=((SBOX[s0>>>24]<<24)|
(SBOX[(s1>>>16)&0xff]<<16)|(SBOX[(s2>>>8)&0xff]<<8)|
SBOX[s3&0xff])^keySchedule[ksRow++];var t1=((SBOX[s1>>>24]<<24)|
(SBOX[(s2>>>16)&0xff]<<16)|(SBOX[(s3>>>8)&0xff]<<8)|
SBOX[s0&0xff])^keySchedule[ksRow++];var t2=((SBOX[s2>>>24]<<24)|
(SBOX[(s3>>>16)&0xff]<<16)|(SBOX[(s0>>>8)&0xff]<<8)|
SBOX[s1&0xff])^keySchedule[ksRow++];var t3=((SBOX[s3>>>24]<<24)|
(SBOX[(s0>>>16)&0xff]<<16)|(SBOX[(s1>>>8)&0xff]<<8)|
SBOX[s2&0xff])^keySchedule[ksRow+
+];M[offset]=t0;M[offset+1]=t1;M[offset+2]=t2;M[offset+3]=t3;},keySize:256/32});C.A
ES=BlockCipher._createHelper(AES);}());(function(){var C=CryptoJS;var
C_lib=C.lib;var WordArray=C_lib.WordArray;var BlockCipher=C_lib.BlockCipher;var
C_algo=C.algo;var
PC1=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,3
6,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4];
var
PC2=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47
,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32];var
BIT_SHIFTS=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28];var
SBOX_P=[{0x0:0x808200,0x10000000:0x8000,0x20000000:0x808002,0x30000000:0x2,0x400000
00:0x200,0x50000000:0x808202,0x60000000:0x800202,0x70000000:0x800000,0x80000000:0x2
02,0x90000000:0x800200,0xa0000000:0x8200,0xb0000000:0x808000,0xc0000000:0x8002,0xd0
000000:0x800002,0xe0000000:0x0,0xf0000000:0x8202,0x8000000:0x0,0x18000000:0x808202,
0x28000000:0x8202,0x38000000:0x8000,0x48000000:0x808200,0x58000000:0x200,0x68000000
:0x808002,0x78000000:0x2,0x88000000:0x800200,0x98000000:0x8200,0xa8000000:0x808000,
0xb8000000:0x800202,0xc8000000:0x800002,0xd8000000:0x8002,0xe8000000:0x202,0xf80000
00:0x800000,0x1:0x8000,0x10000001:0x2,0x20000001:0x808200,0x30000001:0x800000,0x400
00001:0x808002,0x50000001:0x8200,0x60000001:0x200,0x70000001:0x800202,0x80000001:0x
808202,0x90000001:0x808000,0xa0000001:0x800002,0xb0000001:0x8202,0xc0000001:0x202,0
xd0000001:0x800200,0xe0000001:0x8002,0xf0000001:0x0,0x8000001:0x808202,0x18000001:0
x808000,0x28000001:0x800000,0x38000001:0x200,0x48000001:0x8000,0x58000001:0x800002,
0x68000001:0x2,0x78000001:0x8202,0x88000001:0x8002,0x98000001:0x800202,0xa8000001:0
x202,0xb8000001:0x808200,0xc8000001:0x800200,0xd8000001:0x0,0xe8000001:0x8200,0xf80
00001:0x808002},
{0x0:0x40084010,0x1000000:0x4000,0x2000000:0x80000,0x3000000:0x40080010,0x4000000:0
x40000010,0x5000000:0x40084000,0x6000000:0x40004000,0x7000000:0x10,0x8000000:0x8400
0,0x9000000:0x40004010,0xa000000:0x40000000,0xb000000:0x84010,0xc000000:0x80010,0xd
000000:0x0,0xe000000:0x4010,0xf000000:0x40080000,0x800000:0x40004000,0x1800000:0x84
010,0x2800000:0x10,0x3800000:0x40004010,0x4800000:0x40084010,0x5800000:0x40000000,0
x6800000:0x80000,0x7800000:0x40080010,0x8800000:0x80010,0x9800000:0x0,0xa800000:0x4
000,0xb800000:0x40080000,0xc800000:0x40000010,0xd800000:0x84000,0xe800000:0x4008400
0,0xf800000:0x4010,0x10000000:0x0,0x11000000:0x40080010,0x12000000:0x40004010,0x130
00000:0x40084000,0x14000000:0x40080000,0x15000000:0x10,0x16000000:0x84010,0x1700000
0:0x4000,0x18000000:0x4010,0x19000000:0x80000,0x1a000000:0x80010,0x1b000000:0x40000
010,0x1c000000:0x84000,0x1d000000:0x40004000,0x1e000000:0x40000000,0x1f000000:0x400
84010,0x10800000:0x84010,0x11800000:0x80000,0x12800000:0x40080000,0x13800000:0x4000
,0x14800000:0x40004000,0x15800000:0x40084010,0x16800000:0x10,0x17800000:0x40000000,
0x18800000:0x40084000,0x19800000:0x40000010,0x1a800000:0x40004010,0x1b800000:0x8001
0,0x1c800000:0x0,0x1d800000:0x4010,0x1e800000:0x40080010,0x1f800000:0x84000},
{0x0:0x104,0x100000:0x0,0x200000:0x4000100,0x300000:0x10104,0x400000:0x10004,0x5000
00:0x4000004,0x600000:0x4010104,0x700000:0x4010000,0x800000:0x4000000,0x900000:0x40
10100,0xa00000:0x10100,0xb00000:0x4010004,0xc00000:0x4000104,0xd00000:0x10000,0xe00
000:0x4,0xf00000:0x100,0x80000:0x4010100,0x180000:0x4010004,0x280000:0x0,0x380000:0
x4000100,0x480000:0x4000004,0x580000:0x10000,0x680000:0x10004,0x780000:0x104,0x8800
00:0x4,0x980000:0x100,0xa80000:0x4010000,0xb80000:0x10104,0xc80000:0x10100,0xd80000
:0x4000104,0xe80000:0x4010104,0xf80000:0x4000000,0x1000000:0x4010100,0x1100000:0x10
004,0x1200000:0x10000,0x1300000:0x4000100,0x1400000:0x100,0x1500000:0x4010104,0x160
0000:0x4000004,0x1700000:0x0,0x1800000:0x4000104,0x1900000:0x4000000,0x1a00000:0x4,
0x1b00000:0x10100,0x1c00000:0x4010000,0x1d00000:0x104,0x1e00000:0x10104,0x1f00000:0
x4010004,0x1080000:0x4000000,0x1180000:0x104,0x1280000:0x4010100,0x1380000:0x0,0x14
80000:0x10004,0x1580000:0x4000100,0x1680000:0x100,0x1780000:0x4010004,0x1880000:0x1
0000,0x1980000:0x4010104,0x1a80000:0x10104,0x1b80000:0x4000004,0x1c80000:0x4000104,
0x1d80000:0x4010000,0x1e80000:0x4,0x1f80000:0x10100},
{0x0:0x80401000,0x10000:0x80001040,0x20000:0x401040,0x30000:0x80400000,0x40000:0x0,
0x50000:0x401000,0x60000:0x80000040,0x70000:0x400040,0x80000:0x80000000,0x90000:0x4
00000,0xa0000:0x40,0xb0000:0x80001000,0xc0000:0x80400040,0xd0000:0x1040,0xe0000:0x1
000,0xf0000:0x80401040,0x8000:0x80001040,0x18000:0x40,0x28000:0x80400040,0x38000:0x
80001000,0x48000:0x401000,0x58000:0x80401040,0x68000:0x0,0x78000:0x80400000,0x88000
:0x1000,0x98000:0x80401000,0xa8000:0x400000,0xb8000:0x1040,0xc8000:0x80000000,0xd80
00:0x400040,0xe8000:0x401040,0xf8000:0x80000040,0x100000:0x400040,0x110000:0x401000
,0x120000:0x80000040,0x130000:0x0,0x140000:0x1040,0x150000:0x80400040,0x160000:0x80
401000,0x170000:0x80001040,0x180000:0x80401040,0x190000:0x80000000,0x1a0000:0x80400
000,0x1b0000:0x401040,0x1c0000:0x80001000,0x1d0000:0x400000,0x1e0000:0x40,0x1f0000:
0x1000,0x108000:0x80400000,0x118000:0x80401040,0x128000:0x0,0x138000:0x401000,0x148
000:0x400040,0x158000:0x80000000,0x168000:0x80001040,0x178000:0x40,0x188000:0x80000
040,0x198000:0x1000,0x1a8000:0x80001000,0x1b8000:0x80400040,0x1c8000:0x1040,0x1d800
0:0x80401000,0x1e8000:0x400000,0x1f8000:0x401040},
{0x0:0x80,0x1000:0x1040000,0x2000:0x40000,0x3000:0x20000000,0x4000:0x20040080,0x500
0:0x1000080,0x6000:0x21000080,0x7000:0x40080,0x8000:0x1000000,0x9000:0x20040000,0xa
000:0x20000080,0xb000:0x21040080,0xc
000:0x21040000,0xd000:0x0,0xe000:0x1040080,0xf000:0x21000000,0x800:0x1040080,0x1800
:0x21000080,0x2800:0x80,0x3800:0x1040000,0x4800:0x40000,0x5800:0x20040080,0x6800:0x
21040000,0x7800:0x20000000,0x8800:0x20040000,0x9800:0x0,0xa800:0x21040080,0xb800:0x
1000080,0xc800:0x20000080,0xd800:0x21000000,0xe800:0x1000000,0xf800:0x40080,0x10000
:0x40000,0x11000:0x80,0x12000:0x20000000,0x13000:0x21000080,0x14000:0x1000080,0x150
00:0x21040000,0x16000:0x20040080,0x17000:0x1000000,0x18000:0x21040080,0x19000:0x210
00000,0x1a000:0x1040000,0x1b000:0x20040000,0x1c000:0x40080,0x1d000:0x20000080,0x1e0
00:0x0,0x1f000:0x1040080,0x10800:0x21000080,0x11800:0x1000000,0x12800:0x1040000,0x1
3800:0x20040080,0x14800:0x20000000,0x15800:0x1040080,0x16800:0x80,0x17800:0x2104000
0,0x18800:0x40080,0x19800:0x21040080,0x1a800:0x0,0x1b800:0x21000000,0x1c800:0x10000
80,0x1d800:0x40000,0x1e800:0x20040000,0x1f800:0x20000080},
{0x0:0x10000008,0x100:0x2000,0x200:0x10200000,0x300:0x10202008,0x400:0x10002000,0x5
00:0x200000,0x600:0x200008,0x700:0x10000000,0x800:0x0,0x900:0x10002008,0xa00:0x2020
00,0xb00:0x8,0xc00:0x10200008,0xd00:0x202008,0xe00:0x2008,0xf00:0x10202000,0x80:0x1
0200000,0x180:0x10202008,0x280:0x8,0x380:0x200000,0x480:0x202008,0x580:0x10000008,0
x680:0x10002000,0x780:0x2008,0x880:0x200008,0x980:0x2000,0xa80:0x10002008,0xb80:0x1
0200008,0xc80:0x0,0xd80:0x10202000,0xe80:0x202000,0xf80:0x10000000,0x1000:0x1000200
0,0x1100:0x10200008,0x1200:0x10202008,0x1300:0x2008,0x1400:0x200000,0x1500:0x100000
00,0x1600:0x10000008,0x1700:0x202000,0x1800:0x202008,0x1900:0x0,0x1a00:0x8,0x1b00:0
x10200000,0x1c00:0x2000,0x1d00:0x10002008,0x1e00:0x10202000,0x1f00:0x200008,0x1080:
0x8,0x1180:0x202000,0x1280:0x200000,0x1380:0x10000008,0x1480:0x10002000,0x1580:0x20
08,0x1680:0x10202008,0x1780:0x10200000,0x1880:0x10202000,0x1980:0x10200008,0x1a80:0
x2000,0x1b80:0x202008,0x1c80:0x200008,0x1d80:0x0,0x1e80:0x10000000,0x1f80:0x1000200
8},
{0x0:0x100000,0x10:0x2000401,0x20:0x400,0x30:0x100401,0x40:0x2100401,0x50:0x0,0x60:
0x1,0x70:0x2100001,0x80:0x2000400,0x90:0x100001,0xa0:0x2000001,0xb0:0x2100400,0xc0:
0x2100000,0xd0:0x401,0xe0:0x100400,0xf0:0x2000000,0x8:0x2100001,0x18:0x0,0x28:0x200
0401,0x38:0x2100400,0x48:0x100000,0x58:0x2000001,0x68:0x2000000,0x78:0x401,0x88:0x1
00401,0x98:0x2000400,0xa8:0x2100000,0xb8:0x100001,0xc8:0x400,0xd8:0x2100401,0xe8:0x
1,0xf8:0x100400,0x100:0x2000000,0x110:0x100000,0x120:0x2000401,0x130:0x2100001,0x14
0:0x100001,0x150:0x2000400,0x160:0x2100400,0x170:0x100401,0x180:0x401,0x190:0x21004
01,0x1a0:0x100400,0x1b0:0x1,0x1c0:0x0,0x1d0:0x2100000,0x1e0:0x2000001,0x1f0:0x400,0
x108:0x100400,0x118:0x2000401,0x128:0x2100001,0x138:0x1,0x148:0x2000000,0x158:0x100
000,0x168:0x401,0x178:0x2100400,0x188:0x2000001,0x198:0x2100000,0x1a8:0x0,0x1b8:0x2
100401,0x1c8:0x100401,0x1d8:0x400,0x1e8:0x2000400,0x1f8:0x100001},
{0x0:0x8000820,0x1:0x20000,0x2:0x8000000,0x3:0x20,0x4:0x20020,0x5:0x8020820,0x6:0x8
020800,0x7:0x800,0x8:0x8020000,0x9:0x8000800,0xa:0x20800,0xb:0x8020020,0xc:0x820,0x
d:0x0,0xe:0x8000020,0xf:0x20820,0x80000000:0x800,0x80000001:0x8020820,0x80000002:0x
8000820,0x80000003:0x8000000,0x80000004:0x8020000,0x80000005:0x20800,0x80000006:0x2
0820,0x80000007:0x20,0x80000008:0x8000020,0x80000009:0x820,0x8000000a:0x20020,0x800
0000b:0x8020800,0x8000000c:0x0,0x8000000d:0x8020020,0x8000000e:0x8000800,0x8000000f
:0x20000,0x10:0x20820,0x11:0x8020800,0x12:0x20,0x13:0x800,0x14:0x8000800,0x15:0x800
0020,0x16:0x8020020,0x17:0x20000,0x18:0x0,0x19:0x20020,0x1a:0x8020000,0x1b:0x800082
0,0x1c:0x8020820,0x1d:0x20800,0x1e:0x820,0x1f:0x8000000,0x80000010:0x20000,0x800000
11:0x800,0x80000012:0x8020020,0x80000013:0x20820,0x80000014:0x20,0x80000015:0x80200
00,0x80000016:0x8000000,0x80000017:0x8000820,0x80000018:0x8020820,0x80000019:0x8000
020,0x8000001a:0x8000800,0x8000001b:0x0,0x8000001c:0x20800,0x8000001d:0x820,0x80000
01e:0x20020,0x8000001f:0x8020800}];var
SBOX_MASK=[0xf8000001,0x1f800000,0x01f80000,0x001f8000,0x0001f800,0x00001f80,0x0000
01f8,0x8000001f];var DES=C_algo.DES=BlockCipher.extend({_doReset:function(){var
key=this._key;var keyWords=key.words;var keyBits=[];for(var i=0;i<56;i++){var
keyBitPos=PC1[i]-1;keyBits[i]=(keyWords[keyBitPos>>>5]>>>(31-keyBitPos%32))&1;}var
subKeys=this._subKeys=[];for(var nSubKey=0;nSubKey<16;nSubKey++){var
subKey=subKeys[nSubKey]=[];var bitShift=BIT_SHIFTS[nSubKey];for(var i=0;i<24;i++)
{subKey[(i/6)|0]|=keyBits[((PC2[i]-1)+bitShift)%28]<<(31-i%6);subKey[4+((i/6)|0)]|
=keyBits[28+(((PC2[i+24]-1)+bitShift)%28)]<<(31-i%6);}subKey[0]=(subKey[0]<<1)|
(subKey[0]>>>31);for(var i=1;i<7;i++){subKey[i]=subKey[i]>>>((i-
1)*4+3);}subKey[7]=(subKey[7]<<5)|(subKey[7]>>>27);}var
invSubKeys=this._invSubKeys=[];for(var i=0;i<16;i++){invSubKeys[i]=subKeys[15-
i];}},encryptBlock:function(M,offset)
{this._doCryptBlock(M,offset,this._subKeys);},decryptBlock:function(M,offset)
{this._doCryptBlock(M,offset,this._invSubKeys);},_doCryptBlock:function(M,offset,su
bKeys)
{this._lBlock=M[offset];this._rBlock=M[offset+1];exchangeLR.call(this,4,0x0f0f0f0f)
;exchangeLR.call(this,16,0x0000ffff);exchangeRL.call(this,2,0x33333333);exchangeRL.
call(this,8,0x00ff00ff);exchangeLR.call(this,1,0x55555555);for(var
round=0;round<16;round++){var subKey=subKeys[round];var lBlock=this._lBlock;var
rBlock=this._rBlock;var f=0;for(var i=0;i<8;i++){f|=SBOX_P[i]
[((rBlock^subKey[i])&SBOX_MASK[i])>>>0];}this._lBlock=rBlock;this._rBlock=lBlock^f;
}var
t=this._lBlock;this._lBlock=this._rBlock;this._rBlock=t;exchangeLR.call(this,1,0x55
555555);exchangeRL.call(this,8,0x00ff00ff);exchangeRL.call(this,2,0x33333333);excha
ngeLR.call(this,16,0x0000ffff);exchangeLR.call(this,4,0x0f0f0f0f);M[offset]=this._l
Block;M[offset+1]=this._rBlock;},keySize:64/32,ivSize:64/32,blockSize:64/32});funct
ion exchangeLR(offset,mask){var
t=((this._lBlock>>>offset)^this._rBlock)&mask;this._rBlock^=t;this._lBlock^=t<<offs
et;}function exchangeRL(offset,mask){var
t=((this._rBlock>>>offset)^this._lBlock)&mask;this._lBlock^=t;this._rBlock^=t<<offs
et;}C.DES=BlockCipher._createHelper(DES);var
TripleDES=C_algo.TripleDES=BlockCipher.extend({_doReset:function(){var
key=this._key;var
keyWords=key.words;this._des1=DES.createEncryptor(WordArray.create(keyWords.slice(0
,2)));this._des2=DES.createEncryptor(WordArray.create(keyWords.slice(2,4)));this._d
es3=DES.createEncryptor(WordArray.create(keyWords.slice(4,6)));},encryptBlock:funct
ion(M,offset)
{this._des1.encryptBlock(M,offset);this._des2.decryptBlock(M,offset);this._des3.enc
ryptBlock(M,offset);},decryptBlock:function(M,offset)
{this._des3.decryptBlock(M,offset);this._des2.encryptBlock(M,offset);this._des1.dec
ryptBlock(M,offset);},keySize:192/32,ivSize:64/32,blockSize:64/32});C.TripleDES=Blo
ckCipher._createHelper(TripleDES);}());(function(){var C=CryptoJS;var
C_lib=C.lib;var StreamCipher=C_lib.StreamCipher;var C_algo=C.algo;var
RC4=C_algo.RC4=StreamCipher.extend({_doReset:function(){var key=this._key;var
keyWords=key.words;var keySigBytes=key.sigBytes;var S=this._S=[];for(var
i=0;i<256;i++){S[i]=i;}for(var i=0,j=0;i<256;i++){var keyByteIndex=i
%keySigBytes;var keyByte=(keyWords[keyByteIndex>>>2]>>>(24-(keyByteIndex
%4)*8))&0xff;j=(j+S[i]+keyByte)%256;var
t=S[i];S[i]=S[j];S[j]=t;}this._i=this._j=0;},_doProcessBlock:function(M,offset)
{M[offset]^=generateKeystreamWord.call(this);},keySize:256/32,ivSize:0});function
generateKeystreamWord(){var S=this._S;var i=this._i;var j=this._j;var
keystreamWord=0;for(var n=0;n<4;n++){i=(i+1)%256;j=(j+S[i])%256;var
t=S[i];S[i]=S[j];S[j]=t;keystreamWord|=S[(S[i]+S[j])%256]<<(24-
n*8);}this._i=i;this._j=j;return
keystreamWord;}C.RC4=StreamCipher._createHelper(RC4);var
RC4Drop=C_algo.RC4Drop=RC4.extend({cfg:RC4.cfg.extend({drop:192}),_doReset:function
(){RC4._doReset.call(this);for(var i=this.cfg.drop;i>0;i--)
{generateKeystreamWord.call(this);}}});C.RC4Drop=StreamCipher._createHelper(RC4Drop
);}());CryptoJS.mode.CTRGladman=(function(){var
CTRGladman=CryptoJS.lib.BlockCipherMode.extend();function incWord(word)
{if(((word>>24)&0xff)===0xff){var b1=(word>>16)&0xff;var b2=(word>>8)&0xff;var
b3=word&0xff;if(b1===0xff){b1=0;if(b2===0xff){b2=0;if(b3===0xff){b3=0;}else{+
+b3;}}else{++b2;}}else{+
+b1;}word=0;word+=(b1<<16);word+=(b2<<8);word+=b3;}else{word+=(0x01<<24);}return
word;}function incCounter(counter){if((counter[0]=incWord(counter[0]))===0)
{counter[1]=incWord(counter[1]);}return counter;}var
Encryptor=CTRGladman.Encryptor=CTRGladman.extend({processBlock:function(words,offse
t){var cipher=this._cipher
var blockSize=cipher.blockSize;var iv=this._iv;var counter=this._counter;if(iv)
{counter=this._counter=iv.slice(0);this._iv=undefined;}incCounter(counter);var
keystream=counter.slice(0);cipher.encryptBlock(keystream,0);for(var
i=0;i<blockSize;i++)
{words[offset+i]^=keystream[i];}}});CTRGladman.Decryptor=Encryptor;return
CTRGladman;}());(function(){var C=CryptoJS;var C_lib=C.lib;var
StreamCipher=C_lib.StreamCipher;var C_algo=C.algo;var S=[];var C_=[];var G=[];var
Rabbit=C_algo.Rabbit=StreamCipher.extend({_doReset:function(){var
K=this._key.words;var iv=this.cfg.iv;for(var i=0;i<4;i++){K[i]=(((K[i]<<8)|
(K[i]>>>24))&0x00ff00ff)|(((K[i]<<24)|(K[i]>>>8))&0xff00ff00);}var X=this._X=[K[0],
(K[3]<<16)|(K[2]>>>16),K[1],(K[0]<<16)|(K[3]>>>16),K[2],(K[1]<<16)|
(K[0]>>>16),K[3],(K[2]<<16)|(K[1]>>>16)];var C=this._C=[(K[2]<<16)|(K[2]>>>16),
(K[0]&0xffff0000)|(K[1]&0x0000ffff),(K[3]<<16)|(K[3]>>>16),(K[1]&0xffff0000)|
(K[2]&0x0000ffff),(K[0]<<16)|(K[0]>>>16),(K[2]&0xffff0000)|(K[3]&0x0000ffff),
(K[1]<<16)|(K[1]>>>16),(K[3]&0xffff0000)|(K[0]&0x0000ffff)];this._b=0;for(var
i=0;i<4;i++){nextState.call(this);}for(var i=0;i<8;i++){C[i]^=X[(i+4)&7];}if(iv)
{var IV=iv.words;var IV_0=IV[0];var IV_1=IV[1];var i0=(((IV_0<<8)|
(IV_0>>>24))&0x00ff00ff)|(((IV_0<<24)|(IV_0>>>8))&0xff00ff00);var i2=(((IV_1<<8)|
(IV_1>>>24))&0x00ff00ff)|(((IV_1<<24)|(IV_1>>>8))&0xff00ff00);var i1=(i0>>>16)|
(i2&0xffff0000);var i3=(i2<<16)|
(i0&0x0000ffff);C[0]^=i0;C[1]^=i1;C[2]^=i2;C[3]^=i3;C[4]^=i0;C[5]^=i1;C[6]^=i2;C[7]
^=i3;for(var i=0;i<4;i++)
{nextState.call(this);}}},_doProcessBlock:function(M,offset){var
X=this._X;nextState.call(this);S[0]=X[0]^(X[5]>>>16)^(X[3]<<16);S[1]=X[2]^(X[7]>>>1
6)^(X[5]<<16);S[2]=X[4]^(X[1]>>>16)^(X[7]<<16);S[3]=X[6]^(X[3]>>>16)^(X[1]<<16);for
(var i=0;i<4;i++){S[i]=(((S[i]<<8)|(S[i]>>>24))&0x00ff00ff)|(((S[i]<<24)|
(S[i]>>>8))&0xff00ff00);M[offset+i]^=S[i];}},blockSize:128/32,ivSize:64/32});functi
on nextState(){var X=this._X;var C=this._C;for(var i=0;i<8;i++)
{C_[i]=C[i];}C[0]=(C[0]+0x4d34d34d+this._b)|0;C[1]=(C[1]+0xd34d34d3+
((C[0]>>>0)<(C_[0]>>>0)?1:0))|0;C[2]=(C[2]+0x34d34d34+((C[1]>>>0)<(C_[1]>>>0)?
1:0))|0;C[3]=(C[3]+0x4d34d34d+((C[2]>>>0)<(C_[2]>>>0)?1:0))|
0;C[4]=(C[4]+0xd34d34d3+((C[3]>>>0)<(C_[3]>>>0)?1:0))|0;C[5]=(C[5]+0x34d34d34+
((C[4]>>>0)<(C_[4]>>>0)?1:0))|0;C[6]=(C[6]+0x4d34d34d+((C[5]>>>0)<(C_[5]>>>0)?
1:0))|0;C[7]=(C[7]+0xd34d34d3+((C[6]>>>0)<(C_[6]>>>0)?1:0))|
0;this._b=(C[7]>>>0)<(C_[7]>>>0)?1:0;for(var i=0;i<8;i++){var gx=X[i]+C[i];var
ga=gx&0xffff;var gb=gx>>>16;var gh=((((ga*ga)>>>17)+ga*gb)>>>15)+gb*gb;var
gl=(((gx&0xffff0000)*gx)|0)+(((gx&0x0000ffff)*gx)|0);G[i]=gh^gl;}X[0]=(G[0]+
((G[7]<<16)|(G[7]>>>16))+((G[6]<<16)|(G[6]>>>16)))|0;X[1]=(G[1]+((G[0]<<8)|
(G[0]>>>24))+G[7])|0;X[2]=(G[2]+((G[1]<<16)|(G[1]>>>16))+((G[0]<<16)|(G[0]>>>16)))|
0;X[3]=(G[3]+((G[2]<<8)|(G[2]>>>24))+G[1])|0;X[4]=(G[4]+((G[3]<<16)|(G[3]>>>16))+
((G[2]<<16)|(G[2]>>>16)))|0;X[5]=(G[5]+((G[4]<<8)|(G[4]>>>24))+G[3])|0;X[6]=(G[6]+
((G[5]<<16)|(G[5]>>>16))+((G[4]<<16)|(G[4]>>>16)))|0;X[7]=(G[7]+((G[6]<<8)|
(G[6]>>>24))+G[5])|0;}C.Rabbit=StreamCipher._createHelper(Rabbit);}
());CryptoJS.mode.CTR=(function(){var CTR=CryptoJS.lib.BlockCipherMode.extend();var
Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var
cipher=this._cipher
var blockSize=cipher.blockSize;var iv=this._iv;var counter=this._counter;if(iv)
{counter=this._counter=iv.slice(0);this._iv=undefined;}var
keystream=counter.slice(0);cipher.encryptBlock(keystream,0);counter[blockSize-
1]=(counter[blockSize-1]+1)|0
for(var i=0;i<blockSize;i++)
{words[offset+i]^=keystream[i];}}});CTR.Decryptor=Encryptor;return CTR;}());
(function(){var C=CryptoJS;var C_lib=C.lib;var StreamCipher=C_lib.StreamCipher;var
C_algo=C.algo;var S=[];var C_=[];var G=[];var
RabbitLegacy=C_algo.RabbitLegacy=StreamCipher.extend({_doReset:function(){var
K=this._key.words;var iv=this.cfg.iv;var X=this._X=[K[0],(K[3]<<16)|
(K[2]>>>16),K[1],(K[0]<<16)|(K[3]>>>16),K[2],(K[1]<<16)|(K[0]>>>16),K[3],
(K[2]<<16)|(K[1]>>>16)];var C=this._C=[(K[2]<<16)|(K[2]>>>16),(K[0]&0xffff0000)|
(K[1]&0x0000ffff),(K[3]<<16)|(K[3]>>>16),(K[1]&0xffff0000)|(K[2]&0x0000ffff),
(K[0]<<16)|(K[0]>>>16),(K[2]&0xffff0000)|(K[3]&0x0000ffff),(K[1]<<16)|(K[1]>>>16),
(K[3]&0xffff0000)|(K[0]&0x0000ffff)];this._b=0;for(var i=0;i<4;i++)
{nextState.call(this);}for(var i=0;i<8;i++){C[i]^=X[(i+4)&7];}if(iv){var
IV=iv.words;var IV_0=IV[0];var IV_1=IV[1];var i0=(((IV_0<<8)|
(IV_0>>>24))&0x00ff00ff)|(((IV_0<<24)|(IV_0>>>8))&0xff00ff00);var i2=(((IV_1<<8)|
(IV_1>>>24))&0x00ff00ff)|(((IV_1<<24)|(IV_1>>>8))&0xff00ff00);var i1=(i0>>>16)|
(i2&0xffff0000);var i3=(i2<<16)|
(i0&0x0000ffff);C[0]^=i0;C[1]^=i1;C[2]^=i2;C[3]^=i3;C[4]^=i0;C[5]^=i1;C[6]^=i2;C[7]
^=i3;for(var i=0;i<4;i++)
{nextState.call(this);}}},_doProcessBlock:function(M,offset){var
X=this._X;nextState.call(this);S[0]=X[0]^(X[5]>>>16)^(X[3]<<16);S[1]=X[2]^(X[7]>>>1
6)^(X[5]<<16);S[2]=X[4]^(X[1]>>>16)^(X[7]<<16);S[3]=X[6]^(X[3]>>>16)^(X[1]<<16);for
(var i=0;i<4;i++){S[i]=(((S[i]<<8)|(S[i]>>>24))&0x00ff00ff)|(((S[i]<<24)|
(S[i]>>>8))&0xff00ff00);M[offset+i]^=S[i];}},blockSize:128/32,ivSize:64/32});functi
on nextState(){var X=this._X;var C=this._C;for(var i=0;i<8;i++)
{C_[i]=C[i];}C[0]=(C[0]+0x4d34d34d+this._b)|0;C[1]=(C[1]+0xd34d34d3+
((C[0]>>>0)<(C_[0]>>>0)?1:0))|0;C[2]=(C[2]+0x34d34d34+((C[1]>>>0)<(C_[1]>>>0)?
1:0))|0;C[3]=(C[3]+0x4d34d34d+((C[2]>>>0)<(C_[2]>>>0)?1:0))|
0;C[4]=(C[4]+0xd34d34d3+((C[3]>>>0)<(C_[3]>>>0)?1:0))|0;C[5]=(C[5]+0x34d34d34+
((C[4]>>>0)<(C_[4]>>>0)?1:0))|0;C[6]=(C[6]+0x4d34d34d+((C[5]>>>0)<(C_[5]>>>0)?
1:0))|0;C[7]=(C[7]+0xd34d34d3+((C[6]>>>0)<(C_[6]>>>0)?1:0))|
0;this._b=(C[7]>>>0)<(C_[7]>>>0)?1:0;for(var i=0;i<8;i++){var gx=X[i]+C[i];var
ga=gx&0xffff;var gb=gx>>>16;var gh=((((ga*ga)>>>17)+ga*gb)>>>15)+gb*gb;var
gl=(((gx&0xffff0000)*gx)|0)+(((gx&0x0000ffff)*gx)|0);G[i]=gh^gl;}X[0]=(G[0]+
((G[7]<<16)|(G[7]>>>16))+((G[6]<<16)|(G[6]>>>16)))|0;X[1]=(G[1]+((G[0]<<8)|
(G[0]>>>24))+G[7])|0;X[2]=(G[2]+((G[1]<<16)|(G[1]>>>16))+((G[0]<<16)|(G[0]>>>16)))|
0;X[3]=(G[3]+((G[2]<<8)|(G[2]>>>24))+G[1])|0;X[4]=(G[4]+((G[3]<<16)|(G[3]>>>16))+
((G[2]<<16)|(G[2]>>>16)))|0;X[5]=(G[5]+((G[4]<<8)|(G[4]>>>24))+G[3])|0;X[6]=(G[6]+
((G[5]<<16)|(G[5]>>>16))+((G[4]<<16)|(G[4]>>>16)))|0;X[7]=(G[7]+((G[6]<<8)|
(G[6]>>>24))+G[5])|0;}C.RabbitLegacy=StreamCipher._createHelper(RabbitLegacy);}
());CryptoJS.pad.ZeroPadding={pad:function(data,blockSize){var
blockSizeBytes=blockSize*4;data.clamp();data.sigBytes+=blockSizeBytes-
((data.sigBytes%blockSizeBytes)||blockSizeBytes);},unpad:function(data){var
dataWords=data.words;var i=data.sigBytes-1;while(!((dataWords[i>>>2]>>>(24-(i
%4)*8))&0xff)){i--;}data.sigBytes=i+1;}};return CryptoJS;}));

function g(g) {
B = g,
D = new Array(B);
for (var h = 0; h < D.length; h++)
D[h] = 0;
G = new a,
H = new a,
H.digits[0] = 1
}
function a(g) {
this.digits = "boolean" == typeof g && 1 == g ? null : D.slice(0),
this.isNeg = !1
}
function h(g) {
var h = new a(!0);
return h.digits = g.digits.slice(0),
h.isNeg = g.isNeg,
h
}
function c(s) {
for (var g = "", i = s.length - 1; i > -1; --i)
g += s.charAt(i);
return g
}
function v(x, g) {
var h = new a;
h.digits[0] = g;
for (var v = T(x, h), N = et[v[1].digits[0]]; 1 == R(v[0], G); )
v = T(v[0], h),
digit = v[1].digits[0],
N += et[v[1].digits[0]];
return (x.isNeg ? "-" : "") + c(N)
}
function N(n) {
var g = 15
, a = "";
for (i = 0; 4 > i; ++i)
a += nt[n & g],
n >>>= 4;
return c(a)
}
function y(x) {
for (var g = "", i = (M(x),
M(x)); i > -1; --i)
g += N(x.digits[i]);
return g
}
function b(g) {
var a, h = 48, c = h + 9, v = 97, N = v + 25, y = 65, b = 90;
return a = g >= h && c >= g ? g - h : g >= y && b >= g ? 10 + g - y : g >=
v && N >= g ? 10 + g - v : 0
}
function w(s) {
for (var g = 0, a = Math.min(s.length, 4), i = 0; a > i; ++i)
g <<= 4,
g |= b(s.charCodeAt(i));
return g
}
function k(s) {
for (var g = new a, h = s.length, i = h, c = 0; i > 0; i -= 4,
++c)
g.digits[c] = w(s.substr(Math.max(i - 4, 0), Math.min(i, 4)));
return g
}
function C(x, g) {
var h;
if (x.isNeg != g.isNeg)
g.isNeg = !g.isNeg,
h = A(x, g),
g.isNeg = !g.isNeg;
else {
h = new a;
for (var n, c = 0, i = 0; i < x.digits.length; ++i)
n = x.digits[i] + g.digits[i] + c,
h.digits[i] = 65535 & n,
c = Number(n >= Y);
h.isNeg = x.isNeg
}
return h
}
function A(x, g) {
var h;
if (x.isNeg != g.isNeg)
g.isNeg = !g.isNeg,
h = C(x, g),
g.isNeg = !g.isNeg;
else {
h = new a;
var n, c;
c = 0;
for (var i = 0; i < x.digits.length; ++i)
n = x.digits[i] - g.digits[i] + c,
h.digits[i] = 65535 & n,
h.digits[i] < 0 && (h.digits[i] += Y),
c = 0 - Number(0 > n);
if (-1 == c) {
c = 0;
for (var i = 0; i < x.digits.length; ++i)
n = 0 - h.digits[i] + c,
h.digits[i] = 65535 & n,
h.digits[i] < 0 && (h.digits[i] += Y),
c = 0 - Number(0 > n);
h.isNeg = !x.isNeg
} else
h.isNeg = x.isNeg
}
return h
}
function M(x) {
for (var g = x.digits.length - 1; g > 0 && 0 == x.digits[g]; )
--g;
return g
}
function E(x) {
var g, n = M(x), d = x.digits[n], m = (n + 1) * X;
for (g = m; g > m - X && 0 == (32768 & d); --g)
d <<= 1;
return g
}
function z(x, g) {
for (var h, c, v, N = new a, n = M(x), t = M(g), i = 0; t >= i; ++i) {
for (h = 0,
v = i,
j = 0; n >= j; ++j,
++v)
c = N.digits[v] + x.digits[j] * g.digits[i] + h,
N.digits[v] = c & it,
h = c >>> W;
N.digits[i + n + 1] = h
}
return N.isNeg = x.isNeg != g.isNeg,
N
}
function K(x, g) {
var n, h, c;
result = new a,
n = M(x),
h = 0;
for (var v = 0; n >= v; ++v)
c = result.digits[v] + x.digits[v] * g + h,
result.digits[v] = c & it,
h = c >>> W;
return result.digits[1 + n] = h,
result
}
function S(g, a, h, c, n) {
for (var m = Math.min(a + n, g.length), i = a, v = c; m > i; ++i,
++v)
h[v] = g[i]
}
function $(x, n) {
var g = Math.floor(n / X)
, h = new a;
S(x.digits, 0, h.digits, g, h.digits.length - g);
for (var c = n % X, v = X - c, i = h.digits.length - 1, N = i - 1; i > 0;
--i,
--N)
h.digits[i] = h.digits[i] << c & it | (h.digits[N] & tt[c]) >>> v;
return h.digits[0] = h.digits[i] << c & it,
h.isNeg = x.isNeg,
h
}
function O(x, n) {
var g = Math.floor(n / X)
, h = new a;
S(x.digits, g, h.digits, 0, x.digits.length - g);
for (var c = n % X, v = X - c, i = 0, N = i + 1; i < h.digits.length - 1; +
+i,
++N)
h.digits[i] = h.digits[i] >>> c | (h.digits[N] & st[c]) << v;
return h.digits[h.digits.length - 1] >>>= c,
h.isNeg = x.isNeg,
h
}
function F(x, n) {
var g = new a;
return S(x.digits, 0, g.digits, n, g.digits.length - n),
g
}
function L(x, n) {
var g = new a;
return S(x.digits, n, g.digits, 0, g.digits.length - n),
g
}
function P(x, n) {
var g = new a;
return S(x.digits, 0, g.digits, 0, n),
g
}
function R(x, g) {
if (x.isNeg != g.isNeg)
return 1 - 2 * Number(x.isNeg);
for (var i = x.digits.length - 1; i >= 0; --i)
if (x.digits[i] != g.digits[i])
return x.isNeg ? 1 - 2 * Number(x.digits[i] > g.digits[i]) : 1 - 2
* Number(x.digits[i] < g.digits[i]);
return 0
}
function T(x, g) {
var q, r, c = E(x), v = E(g), N = g.isNeg;
if (v > c)
return x.isNeg ? (q = h(H),
q.isNeg = !g.isNeg,
x.isNeg = !1,
g.isNeg = !1,
r = A(g, x),
x.isNeg = !0,
g.isNeg = N) : (q = new a,
r = h(x)),
new Array(q,r);
q = new a,
r = x;
for (var t = Math.ceil(v / X) - 1, y = 0; g.digits[t] < Z; )
g = $(g, 1),
++y,
++v,
t = Math.ceil(v / X) - 1;
r = $(r, y),
c += y;
for (var n = Math.ceil(c / X) - 1, b = F(g, n - t); -1 != R(r, b); )
++q.digits[n - t],
r = A(r, b);
for (var i = n; i > t; --i) {
var w = i >= r.digits.length ? 0 : r.digits[i]
, j = i - 1 >= r.digits.length ? 0 : r.digits[i - 1]
, k = i - 2 >= r.digits.length ? 0 : r.digits[i - 2]
, z = t >= g.digits.length ? 0 : g.digits[t]
, S = t - 1 >= g.digits.length ? 0 : g.digits[t - 1];
q.digits[i - t - 1] = w == z ? it : Math.floor((w * Y + j) / z);
for (var L = q.digits[i - t - 1] * (z * Y + S), P = w * _ + (j * Y +
k); L > P; )
--q.digits[i - t - 1],
L = q.digits[i - t - 1] * (z * Y | S),
P = w * Y * Y + (j * Y + k);
b = F(g, i - t - 1),
r = A(r, K(b, q.digits[i - t - 1])),
r.isNeg && (r = C(r, b),
--q.digits[i - t - 1])
}
return r = O(r, y),
q.isNeg = x.isNeg != N,
x.isNeg && (q = N ? C(q, H) : A(q, H),
g = O(g, y),
r = A(g, r)),
0 == r.digits[0] && 0 == M(r) && (r.isNeg = !1),
new Array(q,r)
}
function U(x, g) {
return T(x, g)[0]
}
function V(m) {
this.modulus = h(m),
this.k = M(this.modulus) + 1;
var g = new a;
g.digits[2 * this.k] = 1,
this.mu = U(g, this.modulus),
this.bkplus1 = new a,
this.bkplus1.digits[this.k + 1] = 1,
this.modulo = I,
this.multiplyMod = J,
this.powMod = Q
}
function I(x) {
var g = L(x, this.k - 1)
, a = z(g, this.mu)
, h = L(a, this.k + 1)
, c = P(x, this.k + 1)
, v = z(h, this.modulus)
, N = P(v, this.k + 1)
, r = A(c, N);
r.isNeg && (r = C(r, this.bkplus1));
for (var y = R(r, this.modulus) >= 0; y; )
r = A(r, this.modulus),
y = R(r, this.modulus) >= 0;
return r
}
function J(x, g) {
var a = z(x, g);
return this.modulo(a)
}
function Q(x, g) {
var h = new a;
for (h.digits[0] = 1; ; ) {
if (0 != (1 & g.digits[0]) && (h = this.multiplyMod(h, x)),
g = O(g, 1),
0 == g.digits[0] && 0 == M(g))
break;
x = this.multiplyMod(x, x)
}
return h
}

function jCryptionKeyPair(a, h, c) {
g(parseInt(c, 10)),
this.e = k(a),
this.m = k(h),
this.chunkSize = 2 * M(this.m),
this.radix = 16,
this.barrett = new V(this.m)
}

function encrypt2(g, h) {
function c(g) {
function c() {
b = new a,
N = 0;
for (var C = j; C < j + h.chunkSize; ++N)
b.digits[N] = g[C++],
b.digits[N] += g[C++] << 8;
var A = h.barrett.powMod(b, h.e)
, M = 16 == h.radix ? y(A) : v(A, h.radix);
k += M + " ",
j += h.chunkSize,
j < g.length ? c() : w = k.substring(0, k.length - 1)
}
var N, b, w, j = 0, k = "";
return c(),
w
}
for (var N = 0, i = 0; i < g.length; i++)
N += g.charCodeAt(i);
var b = "0123456789abcdef"
, w = "";
w += b.charAt((240 & N) >> 4) + b.charAt(15 & N);
for (var j = w + g, k = [], C = 0; C < j.length; )
k[C] = j.charCodeAt(C),
C++;
for (; k.length % h.chunkSize !== 0; )
k[C++] = 0;
return c(k)
}

var B, D, G, H, W = 16, X = W, Y = 65536, Z = Y >>> 1, _ = Y * Y, it = Y - 1,


tt = new
Array(0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,655
28,65532,65534,65535), et = new
Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","
j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"), nt = new
Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), st = new
Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535);

function test(pwd,data){
var rsakey = new jCryptionKeyPair(data.e,data.n,data.maxdigits);
//return encrypt2(sha256_digest(pwd), rsakey);
return encrypt2(CryptoJS.SHA256(pwd) + '', rsakey);
}

function test2(pwd){
//return CryptoJS.SHA256(pwd)
return sha256_digest(pwd)
}

You might also like