q&&k.apply(this,arguments)}),A=mxUtils.bind(this,function(){window.clearTimeout(v);q&&m.apply(this,arguments)});g=g||{};g.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:x,error:A});c=JSON.stringify({event:"remoteInvoke",funtionName:c,functionArgs:e,msgMarkers:g});null!=this.remoteWin?this.remoteWin.postMessage(c,"*"):this.remoteInvokeQueue.push(c)};EditorUi.prototype.handleRemoteInvoke=function(c,e){var g=mxUtils.bind(this,function(z,L){var M={event:"remoteInvokeResponse",
msgMarkers:c.msgMarkers};null!=L?M.error={errResp:L}:null!=z&&(M.resp=z);this.remoteWin.postMessage(JSON.stringify(M),"*")});try{var k=c.funtionName,m=this.remoteInvokableFns[k];if(null!=m&&"function"===typeof this[k]){if(m.allowedDomains){for(var q=!1,v=0;v<m.allowedDomains.length;v++)if(e=="https://"+m.allowedDomains[v]){q=!0;break}if(!q){g(null,"Invalid Call: "+k+" is not allowed.");return}}var x=c.functionArgs;Array.isArray(x)||(x=[]);if(m.isAsync)x.push(function(){g(Array.prototype.slice.apply(arguments))}),
x.push(function(z){g(null,z||"Unkown Error")}),this[k].apply(this,x);else{var A=this[k].apply(this,x);g([A])}}else g(null,"Invalid Call: "+k+" is not found.")}catch(z){g(null,"Invalid Call: An error occurred, "+z.message)}};EditorUi.prototype.openDatabase=function(c,e){if(null==this.database){var g=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=g)try{var k=g.open("database",2);k.onupgradeneeded=function(m){try{var q=k.result;1>m.oldVersion&&q.createObjectStore("objects",{keyPath:"key"});
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.