var hexcase=0;var b64pad="";function hex_md5(A){return rstr2hex(rstr_md5(str2rstr_utf8(A)))}function b64_md5(A){return rstr2b64(rstr_md5(str2rstr_utf8(A)))}function any_md5(A,B){return rstr2any(rstr_md5(str2rstr_utf8(A)),B)}function hex_hmac_md5(A,B){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(A),str2rstr_utf8(B)))}function b64_hmac_md5(A,B){return rstr2b64(rstr_hmac_md5(str2rstr_utf8(A),str2rstr_utf8(B)))}function any_hmac_md5(A,C,B){return rstr2any(rstr_hmac_md5(str2rstr_utf8(A),str2rstr_utf8(C)),B)}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(A){return binl2rstr(binl_md5(rstr2binl(A),A.length*8))}function rstr_hmac_md5(C,F){var E=rstr2binl(C);if(E.length>16){E=binl_md5(E,C.length*8)}var A=Array(16),D=Array(16);for(var B=0;B<16;B++){A[B]=E[B]^909522486;D[B]=E[B]^1549556828}var G=binl_md5(A.concat(rstr2binl(F)),512+F.length*8);return binl2rstr(binl_md5(D.concat(G),512+128))}function rstr2hex(C){try{hexcase}catch(F){hexcase=0}var E=hexcase?"0123456789ABCDEF":"0123456789abcdef";var B="";var A;for(var D=0;D<C.length;D++){A=C.charCodeAt(D);B+=E.charAt((A>>>4)&15)+E.charAt(A&15)}return B}function rstr2b64(C){try{b64pad}catch(G){b64pad=""}var F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var B="";var A=C.length;for(var E=0;E<A;E+=3){var H=(C.charCodeAt(E)<<16)|(E+1<A?C.charCodeAt(E+1)<<8:0)|(E+2<A?C.charCodeAt(E+2):0);for(var D=0;D<4;D++){if(E*8+D*6>C.length*8){B+=b64pad}else{B+=F.charAt((H>>>6*(3-D))&63)}}}return B}function rstr2any(K,C){var B=C.length;var J,F,A,L,E;var I=Array(Math.ceil(K.length/2));for(J=0;J<I.length;J++){I[J]=(K.charCodeAt(J*2)<<8)|K.charCodeAt(J*2+1)}var H=Math.ceil(K.length*8/(Math.log(C.length)/Math.log(2)));var G=Array(H);for(F=0;F<H;F++){E=Array();L=0;for(J=0;J<I.length;J++){L=(L<<16)+I[J];A=Math.floor(L/B);L-=A*B;if(E.length>0||A>0){E[E.length]=A}}G[F]=L;I=E}var D="";for(J=G.length-1;J>=0;J--){D+=C.charAt(G[J])}return D}function str2rstr_utf8(C){var B="";var D=-1;var A,E;while(++D<C.length){A=C.charCodeAt(D);E=D+1<C.length?C.charCodeAt(D+1):0;if(55296<=A&&A<=56319&&56320<=E&&E<=57343){A=65536+((A&1023)<<10)+(E&1023);D++}if(A<=127){B+=String.fromCharCode(A)}else{if(A<=2047){B+=String.fromCharCode(192|((A>>>6)&31),128|(A&63))}else{if(A<=65535){B+=String.fromCharCode(224|((A>>>12)&15),128|((A>>>6)&63),128|(A&63))}else{if(A<=2097151){B+=String.fromCharCode(240|((A>>>18)&7),128|((A>>>12)&63),128|((A>>>6)&63),128|(A&63))}}}}}return B}function str2rstr_utf16le(B){var A="";for(var C=0;C<B.length;C++){A+=String.fromCharCode(B.charCodeAt(C)&255,(B.charCodeAt(C)>>>8)&255)}return A}function str2rstr_utf16be(B){var A="";for(var C=0;C<B.length;C++){A+=String.fromCharCode((B.charCodeAt(C)>>>8)&255,B.charCodeAt(C)&255)}return A}function rstr2binl(B){var A=Array(B.length>>2);for(var C=0;C<A.length;C++){A[C]=0}for(var C=0;C<B.length*8;C+=8){A[C>>5]|=(B.charCodeAt(C/8)&255)<<(C%32)}return A}function binl2rstr(B){var A="";for(var C=0;C<B.length*32;C+=8){A+=String.fromCharCode((B[C>>5]>>>(C%32))&255)}return A}function binl_md5(K,F){K[F>>5]|=128<<((F)%32);K[(((F+64)>>>9)<<4)+14]=F;var J=1732584193;var I=-271733879;var H=-1732584194;var G=271733878;for(var C=0;C<K.length;C+=16){var E=J;var D=I;var B=H;var A=G;J=md5_ff(J,I,H,G,K[C+0],7,-680876936);G=md5_ff(G,J,I,H,K[C+1],12,-389564586);H=md5_ff(H,G,J,I,K[C+2],17,606105819);I=md5_ff(I,H,G,J,K[C+3],22,-1044525330);J=md5_ff(J,I,H,G,K[C+4],7,-176418897);G=md5_ff(G,J,I,H,K[C+5],12,1200080426);H=md5_ff(H,G,J,I,K[C+6],17,-1473231341);I=md5_ff(I,H,G,J,K[C+7],22,-45705983);J=md5_ff(J,I,H,G,K[C+8],7,1770035416);G=md5_ff(G,J,I,H,K[C+9],12,-1958414417);H=md5_ff(H,G,J,I,K[C+10],17,-42063);I=md5_ff(I,H,G,J,K[C+11],22,-1990404162);J=md5_ff(J,I,H,G,K[C+12],7,1804603682);G=md5_ff(G,J,I,H,K[C+13],12,-40341101);H=md5_ff(H,G,J,I,K[C+14],17,-1502002290);I=md5_ff(I,H,G,J,K[C+15],22,1236535329);J=md5_gg(J,I,H,G,K[C+1],5,-165796510);G=md5_gg(G,J,I,H,K[C+6],9,-1069501632);H=md5_gg(H,G,J,I,K[C+11],14,643717713);I=md5_gg(I,H,G,J,K[C+0],20,-373897302);J=md5_gg(J,I,H,G,K[C+5],5,-701558691);G=md5_gg(G,J,I,H,K[C+10],9,38016083);H=md5_gg(H,G,J,I,K[C+15],14,-660478335);I=md5_gg(I,H,G,J,K[C+4],20,-405537848);J=md5_gg(J,I,H,G,K[C+9],5,568446438);G=md5_gg(G,J,I,H,K[C+14],9,-1019803690);H=md5_gg(H,G,J,I,K[C+3],14,-187363961);I=md5_gg(I,H,G,J,K[C+8],20,1163531501);J=md5_gg(J,I,H,G,K[C+13],5,-1444681467);G=md5_gg(G,J,I,H,K[C+2],9,-51403784);H=md5_gg(H,G,J,I,K[C+7],14,1735328473);I=md5_gg(I,H,G,J,K[C+12],20,-1926607734);J=md5_hh(J,I,H,G,K[C+5],4,-378558);G=md5_hh(G,J,I,H,K[C+8],11,-2022574463);H=md5_hh(H,G,J,I,K[C+11],16,1839030562);I=md5_hh(I,H,G,J,K[C+14],23,-35309556);J=md5_hh(J,I,H,G,K[C+1],4,-1530992060);G=md5_hh(G,J,I,H,K[C+4],11,1272893353);H=md5_hh(H,G,J,I,K[C+7],16,-155497632);I=md5_hh(I,H,G,J,K[C+10],23,-1094730640);J=md5_hh(J,I,H,G,K[C+13],4,681279174);G=md5_hh(G,J,I,H,K[C+0],11,-358537222);H=md5_hh(H,G,J,I,K[C+3],16,-722521979);I=md5_hh(I,H,G,J,K[C+6],23,76029189);J=md5_hh(J,I,H,G,K[C+9],4,-640364487);G=md5_hh(G,J,I,H,K[C+12],11,-421815835);H=md5_hh(H,G,J,I,K[C+15],16,530742520);I=md5_hh(I,H,G,J,K[C+2],23,-995338651);J=md5_ii(J,I,H,G,K[C+0],6,-198630844);G=md5_ii(G,J,I,H,K[C+7],10,1126891415);H=md5_ii(H,G,J,I,K[C+14],15,-1416354905);I=md5_ii(I,H,G,J,K[C+5],21,-57434055);J=md5_ii(J,I,H,G,K[C+12],6,1700485571);G=md5_ii(G,J,I,H,K[C+3],10,-1894986606);H=md5_ii(H,G,J,I,K[C+10],15,-1051523);I=md5_ii(I,H,G,J,K[C+1],21,-2054922799);J=md5_ii(J,I,H,G,K[C+8],6,1873313359);G=md5_ii(G,J,I,H,K[C+15],10,-30611744);H=md5_ii(H,G,J,I,K[C+6],15,-1560198380);I=md5_ii(I,H,G,J,K[C+13],21,1309151649);J=md5_ii(J,I,H,G,K[C+4],6,-145523070);G=md5_ii(G,J,I,H,K[C+11],10,-1120210379);H=md5_ii(H,G,J,I,K[C+2],15,718787259);I=md5_ii(I,H,G,J,K[C+9],21,-343485551);J=safe_add(J,E);I=safe_add(I,D);H=safe_add(H,B);G=safe_add(G,A)}return Array(J,I,H,G)}function md5_cmn(F,C,B,A,E,D){return safe_add(bit_rol(safe_add(safe_add(C,F),safe_add(A,D)),E),B)}function md5_ff(C,B,G,F,A,E,D){return md5_cmn((B&G)|((~B)&F),C,B,A,E,D)}function md5_gg(C,B,G,F,A,E,D){return md5_cmn((B&F)|(G&(~F)),C,B,A,E,D)}function md5_hh(C,B,G,F,A,E,D){return md5_cmn(B^G^F,C,B,A,E,D)}function md5_ii(C,B,G,F,A,E,D){return md5_cmn(G^(B|(~F)),C,B,A,E,D)}function safe_add(A,D){var C=(A&65535)+(D&65535);var B=(A>>16)+(D>>16)+(C>>16);return(B<<16)|(C&65535)}function bit_rol(A,B){return(A<<B)|(A>>>(32-B))}function desEnc(B,A){return strEnc(B,A,"","")}function desDec(B,A){return strDec(B,A,"","")}function strEnc(W,P,A,D){var G=W.length;var H="";var T,Q,N,X,F,I;if(P!=null&&P!=""){T=getKeyBytes(P);X=T.length}if(A!=null&&A!=""){Q=getKeyBytes(A);F=Q.length}if(D!=null&&D!=""){N=getKeyBytes(D);I=N.length}if(G>0){if(G<4){var U=strToBt(W);var E;if(P!=null&&P!=""&&A!=null&&A!=""&&D!=null&&D!=""){var S;var L,K,J;S=U;for(L=0;L<X;L++){S=enc(S,T[L])}for(K=0;K<F;K++){S=enc(S,Q[K])}for(J=0;J<I;J++){S=enc(S,N[J])}E=S}else{if(P!=null&&P!=""&&A!=null&&A!=""){var S;var L,K;S=U;for(L=0;L<X;L++){S=enc(S,T[L])}for(K=0;K<F;K++){S=enc(S,Q[K])}E=S}else{if(P!=null&&P!=""){var S;var L=0;S=U;for(L=0;L<X;L++){S=enc(S,T[L])}E=S}}}H=bt64ToHex(E)}else{var O=parseInt(G/4);var M=G%4;var R=0;for(R=0;R<O;R++){var C=W.substring(R*4+0,R*4+4);var V=strToBt(C);var E;if(P!=null&&P!=""&&A!=null&&A!=""&&D!=null&&D!=""){var S;var L,K,J;S=V;for(L=0;L<X;L++){S=enc(S,T[L])}for(K=0;K<F;K++){S=enc(S,Q[K])}for(J=0;J<I;J++){S=enc(S,N[J])}E=S}else{if(P!=null&&P!=""&&A!=null&&A!=""){var S;var L,K;S=V;for(L=0;L<X;L++){S=enc(S,T[L])}for(K=0;K<F;K++){S=enc(S,Q[K])}E=S}else{if(P!=null&&P!=""){var S;var L;S=V;for(L=0;L<X;L++){S=enc(S,T[L])}E=S}}}H+=bt64ToHex(E)}if(M>0){var B=W.substring(O*4+0,G);var V=strToBt(B);var E;if(P!=null&&P!=""&&A!=null&&A!=""&&D!=null&&D!=""){var S;var L,K,J;S=V;for(L=0;L<X;L++){S=enc(S,T[L])}for(K=0;K<F;K++){S=enc(S,Q[K])}for(J=0;J<I;J++){S=enc(S,N[J])}E=S}else{if(P!=null&&P!=""&&A!=null&&A!=""){var S;var L,K;S=V;for(L=0;L<X;L++){S=enc(S,T[L])}for(K=0;K<F;K++){S=enc(S,Q[K])}E=S}else{if(P!=null&&P!=""){var S;var L;S=V;for(L=0;L<X;L++){S=enc(S,T[L])}E=S}}}H+=bt64ToHex(E)}}}return H}function strDec(V,O,A,C){var E=V.length;var F="";var T,Q,L,W,D,H;if(O!=null&&O!=""){T=getKeyBytes(O);W=T.length}if(A!=null&&A!=""){Q=getKeyBytes(A);D=Q.length}if(C!=null&&C!=""){L=getKeyBytes(C);H=L.length}var N=parseInt(E/16);var S=0;for(S=0;S<N;S++){var B=V.substring(S*16+0,S*16+16);var G=hexToBt64(B);var U=new Array(64);var P=0;for(P=0;P<64;P++){U[P]=parseInt(G.substring(P,P+1))}var M;if(O!=null&&O!=""&&A!=null&&A!=""&&C!=null&&C!=""){var R;var K,J,I;R=U;for(K=H-1;K>=0;K--){R=dec(R,L[K])}for(J=D-1;J>=0;J--){R=dec(R,Q[J])}for(I=W-1;I>=0;I--){R=dec(R,T[I])}M=R}else{if(O!=null&&O!=""&&A!=null&&A!=""){var R;var K,J,I;R=U;for(K=D-1;K>=0;K--){R=dec(R,Q[K])}for(J=W-1;J>=0;J--){R=dec(R,T[J])}M=R}else{if(O!=null&&O!=""){var R;var K,J,I;R=U;for(K=W-1;K>=0;K--){R=dec(R,T[K])}M=R}}}F+=byteToString(M)}return F}function getKeyBytes(D){var A=new Array();var C=D.length;var E=parseInt(C/4);var F=C%4;var B=0;for(B=0;B<E;B++){A[B]=strToBt(D.substring(B*4+0,B*4+4))}if(F>0){A[B]=strToBt(D.substring(B*4+0,C))}return A}function strToBt(I){var A=I.length;var J=new Array(64);if(A<4){var G=0,F=0,C=0,B=0;for(G=0;G<A;G++){var E=I.charCodeAt(G);for(F=0;F<16;F++){var H=1,D=0;for(D=15;D>F;D--){H*=2}J[16*G+F]=parseInt(E/H)%2}}for(C=A;C<4;C++){var E=0;for(B=0;B<16;B++){var H=1,D=0;for(D=15;D>B;D--){H*=2}J[16*C+B]=parseInt(E/H)%2}}}else{for(G=0;G<4;G++){var E=I.charCodeAt(G);for(F=0;F<16;F++){var H=1;for(D=15;D>F;D--){H*=2}J[16*G+F]=parseInt(E/H)%2}}}return J}function bt4ToHex(B){var A;switch(B){case"0000":A="0";break;case"0001":A="1";break;case"0010":A="2";break;case"0011":A="3";break;case"0100":A="4";break;case"0101":A="5";break;case"0110":A="6";break;case"0111":A="7";break;case"1000":A="8";break;case"1001":A="9";break;case"1010":A="A";break;case"1011":A="B";break;case"1100":A="C";break;case"1101":A="D";break;case"1110":A="E";break;case"1111":A="F";break}return A}function hexToBt4(A){var B;switch(A){case"0":B="0000";break;case"1":B="0001";break;case"2":B="0010";break;case"3":B="0011";break;case"4":B="0100";break;case"5":B="0101";break;case"6":B="0110";break;case"7":B="0111";break;case"8":B="1000";break;case"9":B="1001";break;case"A":B="1010";break;case"B":B="1011";break;case"C":B="1100";break;case"D":B="1101";break;case"E":B="1110";break;case"F":B="1111";break}return B}function byteToString(D){var C="";for(i=0;i<4;i++){var B=0;for(j=0;j<16;j++){var A=1;for(m=15;m>j;m--){A*=2}B+=D[16*i+j]*A}if(B!=0){C+=String.fromCharCode(B)}}return C}function bt64ToHex(C){var B="";for(i=0;i<16;i++){var A="";for(j=0;j<4;j++){A+=C[i*4+j]}B+=bt4ToHex(A)}return B}function hexToBt64(A){var B="";for(i=0;i<16;i++){B+=hexToBt4(A.substring(i,i+1))}return B}function enc(B,L){var O=generateKeys(L);var K=initPermute(B);var C=new Array(32);var N=new Array(32);var G=new Array(32);var J=0,I=0,H=0,F=0,E=0;for(H=0;H<32;H++){C[H]=K[H];N[H]=K[32+H]}for(J=0;J<16;J++){for(I=0;I<32;I++){G[I]=C[I];C[I]=N[I]}var M=new Array(48);for(F=0;F<48;F++){M[F]=O[J][F]}var A=xor(pPermute(sBoxPermute(xor(expandPermute(N),M))),G);for(E=0;E<32;E++){N[E]=A[E]}}var D=new Array(64);for(J=0;J<32;J++){D[J]=N[J];D[32+J]=C[J]}return finallyPermute(D)}function dec(B,L){var O=generateKeys(L);var K=initPermute(B);var C=new Array(32);var N=new Array(32);var G=new Array(32);var J=0,I=0,H=0,F=0,E=0;for(H=0;H<32;H++){C[H]=K[H];N[H]=K[32+H]}for(J=15;J>=0;J--){for(I=0;I<32;I++){G[I]=C[I];C[I]=N[I]}var M=new Array(48);for(F=0;F<48;F++){M[F]=O[J][F]}var A=xor(pPermute(sBoxPermute(xor(expandPermute(N),M))),G);for(E=0;E<32;E++){N[E]=A[E]}}var D=new Array(64);for(J=0;J<32;J++){D[J]=N[J];D[32+J]=C[J]}return finallyPermute(D)}function initPermute(B){var A=new Array(64);for(i=0,m=1,n=0;i<4;i++,m+=2,n+=2){for(j=7,k=0;j>=0;j--,k++){A[i*8+k]=B[j*8+m];A[i*8+k+32]=B[j*8+n]}}return A}function expandPermute(A){var B=new Array(48);for(i=0;i<8;i++){if(i==0){B[i*6+0]=A[31]}else{B[i*6+0]=A[i*4-1]}B[i*6+1]=A[i*4+0];B[i*6+2]=A[i*4+1];B[i*6+3]=A[i*4+2];B[i*6+4]=A[i*4+3];if(i==7){B[i*6+5]=A[0]}else{B[i*6+5]=A[i*4+4]}}return B}function xor(C,B){var A=new Array(C.length);for(i=0;i<C.length;i++){A[i]=C[i]^B[i]}return A}function sBoxPermute(C){var A=new Array(32);var E="";var M=[[14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7],[0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8],[4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0],[15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13]];var L=[[15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10],[3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5],[0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15],[13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9]];var K=[[10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8],[13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1],[13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7],[1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12]];var J=[[7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15],[13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9],[10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4],[3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14]];var I=[[2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9],[14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6],[4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14],[11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3]];var H=[[12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11],[10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8],[9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6],[4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13]];var G=[[4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1],[13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6],[1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2],[6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12]];var F=[[13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7],[1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2],[7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8],[2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11]];for(m=0;m<8;m++){var D=0,B=0;D=C[m*6+0]*2+C[m*6+5];B=C[m*6+1]*2*2*2+C[m*6+2]*2*2+C[m*6+3]*2+C[m*6+4];switch(m){case 0:E=getBoxBinary(M[D][B]);break;case 1:E=getBoxBinary(L[D][B]);break;case 2:E=getBoxBinary(K[D][B]);break;case 3:E=getBoxBinary(J[D][B]);break;case 4:E=getBoxBinary(I[D][B]);break;case 5:E=getBoxBinary(H[D][B]);break;case 6:E=getBoxBinary(G[D][B]);break;case 7:E=getBoxBinary(F[D][B]);break}A[m*4+0]=parseInt(E.substring(0,1));A[m*4+1]=parseInt(E.substring(1,2));A[m*4+2]=parseInt(E.substring(2,3));A[m*4+3]=parseInt(E.substring(3,4))}return A}function pPermute(B){var A=new Array(32);A[0]=B[15];A[1]=B[6];A[2]=B[19];A[3]=B[20];A[4]=B[28];A[5]=B[11];A[6]=B[27];A[7]=B[16];A[8]=B[0];A[9]=B[14];A[10]=B[22];A[11]=B[25];A[12]=B[4];A[13]=B[17];A[14]=B[30];A[15]=B[9];A[16]=B[1];A[17]=B[7];A[18]=B[23];A[19]=B[13];A[20]=B[31];A[21]=B[26];A[22]=B[2];A[23]=B[8];A[24]=B[18];A[25]=B[12];A[26]=B[29];A[27]=B[5];A[28]=B[21];A[29]=B[10];A[30]=B[3];A[31]=B[24];return A}function finallyPermute(A){var B=new Array(64);B[0]=A[39];B[1]=A[7];B[2]=A[47];B[3]=A[15];B[4]=A[55];B[5]=A[23];B[6]=A[63];B[7]=A[31];B[8]=A[38];B[9]=A[6];B[10]=A[46];B[11]=A[14];B[12]=A[54];B[13]=A[22];B[14]=A[62];B[15]=A[30];B[16]=A[37];B[17]=A[5];B[18]=A[45];B[19]=A[13];B[20]=A[53];B[21]=A[21];B[22]=A[61];B[23]=A[29];B[24]=A[36];B[25]=A[4];B[26]=A[44];B[27]=A[12];B[28]=A[52];B[29]=A[20];B[30]=A[60];B[31]=A[28];B[32]=A[35];B[33]=A[3];B[34]=A[43];B[35]=A[11];B[36]=A[51];B[37]=A[19];B[38]=A[59];B[39]=A[27];B[40]=A[34];B[41]=A[2];B[42]=A[42];B[43]=A[10];B[44]=A[50];B[45]=A[18];B[46]=A[58];B[47]=A[26];B[48]=A[33];B[49]=A[1];B[50]=A[41];B[51]=A[9];B[52]=A[49];B[53]=A[17];B[54]=A[57];B[55]=A[25];B[56]=A[32];B[57]=A[0];B[58]=A[40];B[59]=A[8];B[60]=A[48];B[61]=A[16];B[62]=A[56];B[63]=A[24];return B}function getBoxBinary(A){var B="";switch(A){case 0:B="0000";break;case 1:B="0001";break;case 2:B="0010";break;case 3:B="0011";break;case 4:B="0100";break;case 5:B="0101";break;case 6:B="0110";break;case 7:B="0111";break;case 8:B="1000";break;case 9:B="1001";break;case 10:B="1010";break;case 11:B="1011";break;case 12:B="1100";break;case 13:B="1101";break;case 14:B="1110";break;case 15:B="1111";break}return B}function generateKeys(C){var E=new Array(56);var F=new Array();F[0]=new Array();F[1]=new Array();F[2]=new Array();F[3]=new Array();F[4]=new Array();F[5]=new Array();F[6]=new Array();F[7]=new Array();F[8]=new Array();F[9]=new Array();F[10]=new Array();F[11]=new Array();F[12]=new Array();F[13]=new Array();F[14]=new Array();F[15]=new Array();var A=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];for(D=0;D<7;D++){for(j=0,k=7;j<8;j++,k--){E[D*8+j]=C[8*k+D]}}var D=0;for(D=0;D<16;D++){var H=0;var B=0;for(j=0;j<A[D];j++){H=E[0];B=E[28];for(k=0;k<27;k++){E[k]=E[k+1];E[28+k]=E[29+k]}E[27]=H;E[55]=B}var G=new Array(48);G[0]=E[13];G[1]=E[16];G[2]=E[10];G[3]=E[23];G[4]=E[0];G[5]=E[4];G[6]=E[2];G[7]=E[27];G[8]=E[14];G[9]=E[5];G[10]=E[20];G[11]=E[9];G[12]=E[22];G[13]=E[18];G[14]=E[11];G[15]=E[3];G[16]=E[25];G[17]=E[7];G[18]=E[15];G[19]=E[6];G[20]=E[26];G[21]=E[19];G[22]=E[12];G[23]=E[1];G[24]=E[40];G[25]=E[51];G[26]=E[30];G[27]=E[36];G[28]=E[46];G[29]=E[54];G[30]=E[29];G[31]=E[39];G[32]=E[50];G[33]=E[44];G[34]=E[32];G[35]=E[47];G[36]=E[43];G[37]=E[48];G[38]=E[38];G[39]=E[55];G[40]=E[33];G[41]=E[52];G[42]=E[45];G[43]=E[41];G[44]=E[49];G[45]=E[35];G[46]=E[28];G[47]=E[31];switch(D){case 0:for(m=0;m<48;m++){F[0][m]=G[m]}break;case 1:for(m=0;m<48;m++){F[1][m]=G[m]}break;case 2:for(m=0;m<48;m++){F[2][m]=G[m]}break;case 3:for(m=0;m<48;m++){F[3][m]=G[m]}break;case 4:for(m=0;m<48;m++){F[4][m]=G[m]}break;case 5:for(m=0;m<48;m++){F[5][m]=G[m]}break;case 6:for(m=0;m<48;m++){F[6][m]=G[m]}break;case 7:for(m=0;m<48;m++){F[7][m]=G[m]}break;case 8:for(m=0;m<48;m++){F[8][m]=G[m]}break;case 9:for(m=0;m<48;m++){F[9][m]=G[m]}break;case 10:for(m=0;m<48;m++){F[10][m]=G[m]}break;case 11:for(m=0;m<48;m++){F[11][m]=G[m]}break;case 12:for(m=0;m<48;m++){F[12][m]=G[m]}break;case 13:for(m=0;m<48;m++){F[13][m]=G[m]}break;case 14:for(m=0;m<48;m++){F[14][m]=G[m]}break;case 15:for(m=0;m<48;m++){F[15][m]=G[m]}break}}return F}
