/*
 * Crypto-JS v2.4.0
 * http://code.google.com/p/crypto-js/
 * Copyright (c) 2011, Jeff Mott. All rights reserved.
 * http://code.google.com/p/crypto-js/wiki/License
 */
if(typeof Crypto=="undefined"||!Crypto.util)(function(){var i=window.Crypto={},j=i.util={rotl:function(b,c){return b<<c|b>>>32-c},rotr:function(b,c){return b<<32-c|b>>>c},endian:function(b){if(b.constructor==Number)return j.rotl(b,8)&16711935|j.rotl(b,24)&4278255360;for(var c=0;c<b.length;c++)b[c]=j.endian(b[c]);return b},randomBytes:function(b){for(var c=[];b>0;b--)c.push(Math.floor(Math.random()*256));return c},bytesToWords:function(b){for(var c=[],e=0,g=0;e<b.length;e++,g+=8)c[g>>>5]|=b[e]<<24-
g%32;return c},wordsToBytes:function(b){for(var c=[],e=0;e<b.length*32;e+=8)c.push(b[e>>>5]>>>24-e%32&255);return c},bytesToHex:function(b){for(var c=[],e=0;e<b.length;e++){c.push((b[e]>>>4).toString(16));c.push((b[e]&15).toString(16))}return c.join("")},hexToBytes:function(b){for(var c=[],e=0;e<b.length;e+=2)c.push(parseInt(b.substr(e,2),16));return c},bytesToBase64:function(b){if(typeof btoa=="function")return btoa(m.bytesToString(b));for(var c=[],e=0;e<b.length;e+=3)for(var g=b[e]<<16|b[e+1]<<
8|b[e+2],a=0;a<4;a++)e*8+a*6<=b.length*8?c.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g>>>6*(3-a)&63)):c.push("=");return c.join("")},base64ToBytes:function(b){if(typeof atob=="function")return m.stringToBytes(atob(b));b=b.replace(/[^A-Z0-9+\/]/ig,"");for(var c=[],e=0,g=0;e<b.length;g=++e%4)g!=0&&c.push(("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(b.charAt(e-1))&Math.pow(2,-2*g+8)-1)<<g*2|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(b.charAt(e))>>>
6-g*2);return c}};i=i.charenc={};i.UTF8={stringToBytes:function(b){return m.stringToBytes(unescape(encodeURIComponent(b)))},bytesToString:function(b){return decodeURIComponent(escape(m.bytesToString(b)))}};var m=i.Binary={stringToBytes:function(b){for(var c=[],e=0;e<b.length;e++)c.push(b.charCodeAt(e)&255);return c},bytesToString:function(b){for(var c=[],e=0;e<b.length;e++)c.push(String.fromCharCode(b[e]));return c.join("")}}})();
(function(){var i=Crypto,j=i.util,m=i.charenc,b=m.UTF8,c=m.Binary,e=i.SHA1=function(g,a){var d=j.wordsToBytes(e._sha1(g));return a&&a.asBytes?d:a&&a.asString?c.bytesToString(d):j.bytesToHex(d)};e._sha1=function(g){if(g.constructor==String)g=b.stringToBytes(g);var a=j.bytesToWords(g),d=g.length*8;g=[];var h=1732584193,f=-271733879,k=-1732584194,l=271733878,o=-1009589776;a[d>>5]|=128<<24-d%32;a[(d+64>>>9<<4)+15]=d;for(d=0;d<a.length;d+=16){for(var p=h,r=f,s=k,q=l,u=o,n=0;n<80;n++){if(n<16)g[n]=a[d+
n];else{var t=g[n-3]^g[n-8]^g[n-14]^g[n-16];g[n]=t<<1|t>>>31}t=(h<<5|h>>>27)+o+(g[n]>>>0)+(n<20?(f&k|~f&l)+1518500249:n<40?(f^k^l)+1859775393:n<60?(f&k|f&l|k&l)-1894007588:(f^k^l)-899497514);o=l;l=k;k=f<<30|f>>>2;f=h;h=t}h+=p;f+=r;k+=s;l+=q;o+=u}return[h,f,k,l,o]};e._blocksize=16;e._digestsize=20})();
(function(){var i=Crypto,j=i.util,m=i.charenc,b=m.UTF8,c=m.Binary;i.HMAC=function(e,g,a,d){if(g.constructor==String)g=b.stringToBytes(g);if(a.constructor==String)a=b.stringToBytes(a);if(a.length>e._blocksize*4)a=e(a,{asBytes:true});var h=a.slice(0);a=a.slice(0);for(var f=0;f<e._blocksize*4;f++){h[f]^=92;a[f]^=54}e=e(h.concat(e(a.concat(g),{asBytes:true})),{asBytes:true});return d&&d.asBytes?e:d&&d.asString?c.bytesToString(e):j.bytesToHex(e)}})();
(function(){var i=Crypto,j=i.util,m=i.charenc,b=m.UTF8,c=m.Binary;i.PBKDF2=function(e,g,a,d){function h(u,n){return i.HMAC(f,n,u,{asBytes:true})}if(e.constructor==String)e=b.stringToBytes(e);if(g.constructor==String)g=b.stringToBytes(g);for(var f=d&&d.hasher||i.SHA1,k=d&&d.iterations||1,l=[],o=1;l.length<a;){for(var p=h(e,g.concat(j.wordsToBytes([o]))),r=p,s=1;s<k;s++){r=h(e,r);for(var q=0;q<p.length;q++)p[q]^=r[q]}l=l.concat(p);o++}l.length=a;return d&&d.asBytes?l:d&&d.asString?c.bytesToString(l):
j.bytesToHex(l)}})();
(function(){var i=Crypto,j=i.util,m=i.charenc.UTF8,b=[],c=[],e,g=i.Rabbit={encrypt:function(a,d){var h=m.stringToBytes(a),f=j.randomBytes(8),k=d.constructor==String?i.PBKDF2(d,f,32,{asBytes:true}):d;g._rabbit(h,k,j.bytesToWords(f));return j.bytesToBase64(f.concat(h))},decrypt:function(a,d){var h=j.base64ToBytes(a),f=h.splice(0,8),k=d.constructor==String?i.PBKDF2(d,f,32,{asBytes:true}):d;g._rabbit(h,k,j.bytesToWords(f));return m.bytesToString(h)},_rabbit:function(a,d,h){g._keysetup(d);h&&g._ivsetup(h);
d=[];for(h=0;h<a.length;h++){if(h%16==0){g._nextstate();d[0]=b[0]^b[5]>>>16^b[3]<<16;d[1]=b[2]^b[7]>>>16^b[5]<<16;d[2]=b[4]^b[1]>>>16^b[7]<<16;d[3]=b[6]^b[3]>>>16^b[1]<<16;for(var f=0;f<4;f++)d[f]=(d[f]<<8|d[f]>>>24)&16711935|(d[f]<<24|d[f]>>>8)&4278255360;for(f=120;f>=0;f-=8)d[f/8]=d[f>>>5]>>>24-f%32&255}a[h]^=d[h%16]}},_keysetup:function(a){b[0]=a[0];b[2]=a[1];b[4]=a[2];b[6]=a[3];b[1]=a[3]<<16|a[2]>>>16;b[3]=a[0]<<16|a[3]>>>16;b[5]=a[1]<<16|a[0]>>>16;b[7]=a[2]<<16|a[1]>>>16;c[0]=j.rotl(a[2],16);
c[2]=j.rotl(a[3],16);c[4]=j.rotl(a[0],16);c[6]=j.rotl(a[1],16);c[1]=a[0]&4294901760|a[1]&65535;c[3]=a[1]&4294901760|a[2]&65535;c[5]=a[2]&4294901760|a[3]&65535;c[7]=a[3]&4294901760|a[0]&65535;for(a=e=0;a<4;a++)g._nextstate();for(a=0;a<8;a++)c[a]^=b[a+4&7]},_ivsetup:function(a){var d=j.endian(a[0]);a=j.endian(a[1]);var h=d>>>16|a&4294901760,f=a<<16|d&65535;c[0]^=d;c[1]^=h;c[2]^=a;c[3]^=f;c[4]^=d;c[5]^=h;c[6]^=a;c[7]^=f;for(d=0;d<4;d++)g._nextstate()},_nextstate:function(){for(var a=[],d=0;d<8;d++)a[d]=
c[d];c[0]=c[0]+1295307597+e>>>0;c[1]=c[1]+3545052371+(c[0]>>>0<a[0]>>>0?1:0)>>>0;c[2]=c[2]+886263092+(c[1]>>>0<a[1]>>>0?1:0)>>>0;c[3]=c[3]+1295307597+(c[2]>>>0<a[2]>>>0?1:0)>>>0;c[4]=c[4]+3545052371+(c[3]>>>0<a[3]>>>0?1:0)>>>0;c[5]=c[5]+886263092+(c[4]>>>0<a[4]>>>0?1:0)>>>0;c[6]=c[6]+1295307597+(c[5]>>>0<a[5]>>>0?1:0)>>>0;c[7]=c[7]+3545052371+(c[6]>>>0<a[6]>>>0?1:0)>>>0;e=c[7]>>>0<a[7]>>>0?1:0;a=[];for(d=0;d<8;d++){var h=b[d]+c[d]>>>0,f=h&65535,k=h>>>16;a[d]=((f*f>>>17)+f*k>>>15)+k*k^((h&4294901760)*
h>>>0)+((h&65535)*h>>>0)>>>0}b[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16);b[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7];b[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16);b[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1];b[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16);b[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3];b[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16);b[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]}}})();
