var base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
function base64encode(_1){
var _2,i,_4;
var c1,c2,c3;
_4=_1.length;
i=0;
_2="";
while(i<_4){
c1=_1.charCodeAt(i++)&255;
if(i==_4){
_2+=base64EncodeChars.charAt(c1>>2);
_2+=base64EncodeChars.charAt((c1&3)<<4);
_2+="==";
break;
}
c2=_1.charCodeAt(i++);
if(i==_4){
_2+=base64EncodeChars.charAt(c1>>2);
_2+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));
_2+=base64EncodeChars.charAt((c2&15)<<2);
_2+="=";
break;
}
c3=_1.charCodeAt(i++);
_2+=base64EncodeChars.charAt(c1>>2);
_2+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));
_2+=base64EncodeChars.charAt(((c2&15)<<2)|((c3&192)>>6));
_2+=base64EncodeChars.charAt(c3&63);
}
return _2;
}
function base64decode(_8){
var c1,c2,c3,c4;
var i,_e,_f;
_e=_8.length;
i=0;
_f="";
while(i<_e){
do{
c1=base64DecodeChars[_8.charCodeAt(i++)&255];
}while(i<_e&&c1==-1);
if(c1==-1){
break;
}
do{
c2=base64DecodeChars[_8.charCodeAt(i++)&255];
}while(i<_e&&c2==-1);
if(c2==-1){
break;
}
_f+=String.fromCharCode((c1<<2)|((c2&48)>>4));
do{
c3=_8.charCodeAt(i++)&255;
if(c3==61){
return _f;
}
c3=base64DecodeChars[c3];
}while(i<_e&&c3==-1);
if(c3==-1){
break;
}
_f+=String.fromCharCode(((c2&15)<<4)|((c3&60)>>2));
do{
c4=_8.charCodeAt(i++)&255;
if(c4==61){
return _f;
}
c4=base64DecodeChars[c4];
}while(i<_e&&c4==-1);
if(c4==-1){
break;
}
_f+=String.fromCharCode(((c3&3)<<6)|c4);
}
return _f;
}


