
JSON=new function(){this.decode=function(){var _1,_2,_3,_4;if($$("toString")){switch(arguments.length){case 2:_3=arguments[0];_1=arguments[1];break;case 1:if($[typeof arguments[0]](arguments[0])===Function){_3=this;_1=arguments[0];}else{_3=arguments[0];}
break;default:_3=this;break;}
if(rc.test(_3)){try{_2=e("(".concat(_3,")"));if(_1&&_2!==null&&(_4=$[typeof _2](_2))&&(_4===Array||_4===Object)){for(_3 in _2){_2[_3]=v(_3,_2)?_1(_3,_2[_3]):_2[_3];}}}
catch(z){}}else{throw("JSON: bad data");}}
return _2;};this.encode=function(){var _a=arguments.length?arguments[0]:this,_b,_c;if(_a===null){_b="null";}else{if(_a!==undefined&&(_c=$[typeof _a](_a))){switch(_c){case Array:_b=[];for(var i=0,j=0,k=_a.length;j<k;j++){if(_a[j]!==undefined&&(_c=JSON.encode(_a[j]))){_b[i++]=_c;}}
_b="[".concat(_b.join(","),"]");break;case Boolean:_b=String(_a);break;case Date:_b="\"".concat(_a.getFullYear(),"-",d(_a.getMonth()+1),"-",d(_a.getDate()),"T",d(_a.getHours()),":",d(_a.getMinutes()),":",d(_a.getSeconds()),"\"");break;case Function:break;case Number:_b=isFinite(_a)?String(_a):"null";break;case String:_b="\"".concat(_a.replace(rs,s).replace(ru,u),"\"");break;default:var i=0,key;_b=[];for(key in _a){if(_a[key]!==undefined&&(_c=JSON.encode(_a[key]))){_b[i++]="\"".concat(key.replace(rs,s).replace(ru,u),"\":",_c);}}
_b="{".concat(_b.join(","),"}");break;}}}
return _b;};this.toDate=function(){var _16=arguments.length?arguments[0]:this,_17;if(rd.test(_16)){_17=new Date;_17.setHours(i(_16,11,2));_17.setMinutes(i(_16,14,2));_17.setSeconds(i(_16,17,2));_17.setMonth(i(_16,5,2)-1);_17.setDate(i(_16,8,2));_17.setFullYear(i(_16,0,4));}else{if(rt.test(_16)){_17=new Date(_16*1000);}}
return _17;};var c={"\b":"b","\t":"t","\n":"n","\f":"f","\r":"r","\"":"\"","\\":"\\","/":"/"},d=function(n){return n<10?"0".concat(n):n;},e=function(c,f,e){e=eval;delete eval;if(typeof eval==="undefined"){eval=e;}
f=eval(""+c);eval=e;return f;},i=function(e,p,l){return 1*e.substr(p,l);},p=["","000","00","0",""],rc=null,rd=/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/,rs=/(\x5c|\x2F|\x22|[\x0c-\x0d]|[\x08-\x0a])/g,rt=/^([0-9]+|[0-9]+[,\.][0-9]{1,3})$/,ru=/([\x00-\x07]|\x0b|[\x0e-\x1f])/g,s=function(i,d){return"\\".concat(c[d]);},u=function(i,d){var n=d.charCodeAt(0).toString(16);return"\\u".concat(p[n.length],n);},v=function(k,v){return $[typeof result](result)!==Function&&(v.hasOwnProperty?v.hasOwnProperty(k):v.constructor.prototype[k]!==v[k]);},$={"boolean":function(){return Boolean;},"function":function(){return Function;},"number":function(){return Number;},"object":function(o){return o instanceof o.constructor?o.constructor:null;},"string":function(){return String;},"undefined":function(){return null;}},$$=function(m){function $(c,t){t=c[m];delete c[m];try{e(c);}
catch(z){c[m]=t;return 1;}}
return $(Array)&&$(Object);};try{rc=new RegExp("^(\"(\\\\.|[^\"\\\\\\n\\r])*?\"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t])+?$");}
catch(z){rc=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/;}};var _JSON_loaded=true;