var escapeJSONString=(function(){var b=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,a={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return function(c){b.lastIndex=0;return b.test(c)?'"'+c.replace(b,function(d){var e=a[d];return typeof e==="string"?e:"\\u"+("0000"+d.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+c+'"'}})();function toJSON(f){var a="$_$jabsorbed$813492";var h;var e=[];function c(){var i;while(h){i=h[a].prev;delete h[a];h=i}}var g={};var b;function d(k,j,l){var u=[],n,m,t,r,q;if(k===null||k===undefined){return"null"}else{if(typeof k==="string"){return escapeJSONString(k)}else{if(typeof k==="number"){return k.toString()}else{if(typeof k==="boolean"){return k.toString()}else{if(k[a]){n=[l];t=j;while(t){if(m){m.unshift(t[a].ref)}if(t===k){r=t;m=[r[a].ref]}n.unshift(t[a].ref);t=t[a].parent}if(r){if(JSONRpcClient.fixupCircRefs){n.shift();m.shift();e.push([n,m]);return g}else{c();throw new Error("circular reference detected!")}}else{if(JSONRpcClient.fixupDuplicates){m=[k[a].ref];t=k[a].parent;while(t){m.unshift(t[a].ref);t=t[a].parent}n.shift();m.shift();e.push([n,m]);return g}}}else{k[a]={parent:j,prev:h,ref:l};h=k}if(k.constructor===Date){if(k.javaClass){return'{javaClass: "'+k.javaClass+'", time: '+k.valueOf()+"}"}else{return'{javaClass: "java.util.Date", time: '+k.valueOf()+"}"}}else{if(k.constructor===Array){for(q=0;q0){a=JSONRpcClient.async_responses.shift();if(a.canceled){continue}if(a.profile){a.profile.dispatch=new Date()}try{a.cb(a.result,a.ex,a.profile)}catch(c){JSONRpcClient.toplevel_ex_handler(c)}}while(JSONRpcClient.async_requests.length>0&&JSONRpcClient.num_req_active0)){g+='".obj['+h+"]."+c+'"'}else{g+='"'+c+'"'}if(a){f.cb=a}if(JSONRpcClient.profile_async){f.profile={submit:new Date()}}var d=toJSON(e);g+=",params:"+d.json;if(d.fixups){g+=",fixups:"+toJSON(d.fixups).json}f.data=g+"}";return f};JSONRpcClient._sendRequest=function(a,c){var b;if(c.profile){c.profile.start=new Date()}b=JSONRpcClient.poolGetHTTPRequest();JSONRpcClient.num_req_active++;b.open("POST",a.serverURL,!!c.cb,a.user,a.pass);try{b.setRequestHeader("Content-type","text/plain")}catch(d){}if(c.cb){b.onreadystatechange=function(){var f;if(b.readyState==4){b.onreadystatechange=function(){};f={cb:c.cb,result:null,ex:null};if(c.profile){f.profile=c.profile;f.profile.end=new Date()}else{f.profile=false}try{f.result=a._handleResponse(b)}catch(g){f.ex=g}if(!JSONRpcClient.async_inflight[c.requestId].canceled){JSONRpcClient.async_responses.push(f)}delete JSONRpcClient.async_inflight[c.requestId];JSONRpcClient.kick_async()}}}else{b.onreadystatechange=function(){}}JSONRpcClient.async_inflight[c.requestId]=c;try{b.send(c.data)}catch(d){JSONRpcClient.poolReturnHTTPRequest(b);JSONRpcClient.num_req_active--;throw new JSONRpcClient.Exception({code:JSONRpcClient.Exception.CODE_ERR_CLIENT,message:"Connection failed"})}if(!c.cb){delete JSONRpcClient.async_inflight[c.requestId];return a._handleResponse(b)}return null};JSONRpcClient.prototype._handleResponse=function(b){if(!this.charset){this.charset=JSONRpcClient._getCharsetFromHeaders(b)}var a,f,c;try{a=b.status;f=b.statusText;c=b.responseText}catch(d){JSONRpcClient.poolReturnHTTPRequest(b);JSONRpcClient.num_req_active--;JSONRpcClient.kick_async();throw new JSONRpcClient.Exception({code:JSONRpcClient.Exception.CODE_ERR_CLIENT,message:"Connection failed"})}JSONRpcClient.poolReturnHTTPRequest(b);JSONRpcClient.num_req_active--;if(a!=200){throw new JSONRpcClient.Exception({code:a,message:f})}return this.unmarshallResponse(c)};JSONRpcClient.prototype.unmarshallResponse=function(data){function applyFixups(obj,fixups){function findOriginal(ob,original){for(var i=0,j=original.length;i1){return}}}return true}}var i,d;if(obj&&typeof obj==="object"){if((obj.javaClass&&JSONRpcClient.javaDateClasses[obj.javaClass])){d=new Date(obj.time);if(obj.javaClass!=="java.util.Date"){d.javaClass=obj.javaClass}return d}else{if(JSONRpcClient.transformDateWithoutHint&&hasOnlyProperty(obj,"time")){return new Date(obj.time)}else{for(i in obj){if(obj.hasOwnProperty(i)){obj[i]=transformDate(obj[i])}}return obj}}}else{return obj}}var obj;try{eval("obj = "+data)}catch(e){throw new JSONRpcClient.Exception({code:550,message:"error parsing result"})}if(obj.error){throw new JSONRpcClient.Exception(obj.error)}var r=obj.result;var i,tmp;if(r){if(r.objectID&&r.JSONRPCType=="CallableReference"){return this.createCallableProxy(r.objectID,r.javaClass)}else{r=JSONRpcClient.extractCallableReferences(this,JSONRpcClient.transformDates?transformDate(r):r);if(obj.fixups){applyFixups(r,obj.fixups)}}}return r};JSONRpcClient.extractCallableReferences=function(b,a){var d,c,e;for(d in a){if(typeof(a[d])=="object"){c=JSONRpcClient.makeCallableReference(b,a[d]);if(c){a[d]=c}else{c=JSONRpcClient.extractCallableReferences(b,a[d]);a[d]=c}}if(typeof(d)=="object"){c=JSONRpcClient.makeCallableReference(b,d);if(c){e=a[d];delete a[d];a[c]=e}else{c=JSONRpcClient.extractCallableReferences(b,d);e=a[d];delete a[d];a[c]=e}}}return a};JSONRpcClient.makeCallableReference=function(a,b){if(b&&b.objectID&&b.javaClass&&b.JSONRPCType=="CallableReference"){return a.createCallableProxy(b.objectID,b.javaClass)}return null};JSONRpcClient.http_spare=[];JSONRpcClient.http_max_spare=8;JSONRpcClient.poolGetHTTPRequest=function(){var a=JSONRpcClient.http_spare.pop();if(a){return a}return JSONRpcClient.getHTTPRequest()};JSONRpcClient.poolReturnHTTPRequest=function(a){if(JSONRpcClient.http_spare.length>=JSONRpcClient.http_max_spare){delete a}else{JSONRpcClient.http_spare.push(a)}};JSONRpcClient.msxmlNames=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","Microsoft.XMLHTTP"];JSONRpcClient.getHTTPRequest=function(){try{JSONRpcClient.httpObjectName="XMLHttpRequest";return new XMLHttpRequest()}catch(b){}for(var a=0;a