Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson <david@draw.io>2022-08-04 01:54:39 +0300
committerDavid Benson <david@draw.io>2022-08-04 01:54:39 +0300
commita9c448a8f794d05c567e7d49f3dbec7026c1b5ba (patch)
treebe964de7e179c71e975364da5518a1c97b8835ff
parentbb75e49d3a8e3dfdfc031cadb9363d4263ffc749 (diff)
20.2.3 releasev20.2.3
-rw-r--r--ChangeLog9
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/js/app.min.js108
-rw-r--r--src/main/webapp/js/diagramly/Dialogs.js2
-rw-r--r--src/main/webapp/js/diagramly/Editor.js7
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js9
-rw-r--r--src/main/webapp/js/integrate.min.js1024
-rw-r--r--src/main/webapp/js/viewer-static.min.js64
-rw-r--r--src/main/webapp/js/viewer.min.js64
-rw-r--r--src/main/webapp/mxgraph/mxClient.js2
-rw-r--r--src/main/webapp/resources/dia_nl.txt34
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
13 files changed, 667 insertions, 662 deletions
diff --git a/ChangeLog b/ChangeLog
index f5bfee9f..4502ebfa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+03-AUG-2022: 20.2.3
+
+- [conf cloud] Fixes adding diagrams to unsaved global templates [DID-5761]
+
+26-JUL-2022: 20.2.2
+
+- Uses proxy for loading from template URL [DND-629]
+- [conf cloud] Fixes issue in page update of pageIDs import [DID-5641]
+
26-JUL-2022: 20.2.1
- Adds statistics to realtime CF worker
diff --git a/VERSION b/VERSION
index f32c8fc2..95f14bfa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-20.2.1 \ No newline at end of file
+20.2.3 \ No newline at end of file
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index aff23b76..7b092003 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -470,7 +470,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,ADD_ATTR:["target","content"]};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;
-window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -11182,9 +11182,9 @@ A+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";mxEven
ja.getElementsByTagName("add"),ca=[],na=0;na<da.length;na++)ca.push(encodeURIComponent(mxUtils.getTextContent(da[na])));null!=ta&&0<ca.length&&(va[ta]=ca.join(";"))}else if(ca=ja.getAttribute("url"),null!=ca){da=ja.getAttribute("section");ta=ja.getAttribute("subsection");if(null==da&&(na=ca.indexOf("/"),da=ca.substring(0,na),null==ta)){var ea=ca.indexOf("/",na+1);-1<ea&&(ta=ca.substring(na+1,ea))}na=Aa[da];null==na&&(na=[],Aa[da]=na);ca=ja.getAttribute("clibs");null!=va[ca]&&(ca=va[ca]);ca={url:ja.getAttribute("url"),
libs:ja.getAttribute("libs"),title:ja.getAttribute("title"),tooltip:ja.getAttribute("name")||ja.getAttribute("url"),preview:ja.getAttribute("preview"),clibs:ca,tags:ja.getAttribute("tags")};na.push(ca);null!=ta&&(na=Ma[da],null==na&&(na={},Ma[da]=na),da=na[ta],null==da&&(da=[],na[ta]=da),da.push(ca))}ja=ja.nextSibling}P.stop();u()}})};I.appendChild(fa);I.appendChild(la);I.appendChild(ba);var ya=!1,Ia=g;/^https?:\/\//.test(Ia)&&!b.editor.isCorsEnabledForUrl(Ia)&&(Ia=PROXY_URL+"?url="+encodeURIComponent(Ia));
P.spin(ba);null!=E?E(function(ja,va){za=ja;q=Da=va;Ha()},Ha):Ha();W=Aa}mxEvent.addListener(H,"keypress",function(ja){b.dialog.container.firstChild==I&&13==ja.keyCode&&J()});E=document.createElement("div");E.style.marginTop=d?"4px":"16px";E.style.textAlign="right";E.style.position="absolute";E.style.left="40px";E.style.bottom="24px";E.style.right="40px";d||b.isOffline()||!f||null!=c||l||(A=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),
-A.className="geBtn",E.appendChild(A));A=mxUtils.button(mxResources.get("cancel"),function(){null!=m&&m();b.hideDialog(!0)});A.className="geBtn";!b.editor.cancelFirst||l&&null==m||E.appendChild(A);d||"1"==urlParams.embed||l||mxClient.IS_ANDROID||mxClient.IS_IOS||"1"==urlParams.noDevice||(d=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var ja=new FilenameDialog(b,"",mxResources.get("create"),function(va){null!=va&&0<va.length&&b.editor.loadUrl(va,function(ta){S=ta;O=null;templateRealURl=
-va;b.hideDialog();J()},function(ta){b.handleError(ta)})},mxResources.get("url"),null,null,null,!1);b.showDialog(ja.container,300,80,!0,!0);ja.init()}),d.className="geBtn",E.appendChild(d));Graph.fileSupport&&p&&(p=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var ja=document.createElement("input");ja.setAttribute("multiple","multiple");ja.setAttribute("type","file");mxEvent.addListener(ja,"change",function(va){b.openFiles(ja.files,!0);ja.value=""});ja.style.display=
-"none";document.body.appendChild(ja);b.newDlgFileInputElt=ja}b.newDlgFileInputElt.click()}),p.className="geBtn",E.appendChild(p));E.appendChild(U);b.editor.cancelFirst||null!=c||l&&null==m||E.appendChild(A);I.appendChild(E);this.container=I};NewDialog.tagsList={};
+A.className="geBtn",E.appendChild(A));A=mxUtils.button(mxResources.get("cancel"),function(){null!=m&&m();b.hideDialog(!0)});A.className="geBtn";!b.editor.cancelFirst||l&&null==m||E.appendChild(A);d||"1"==urlParams.embed||l||mxClient.IS_ANDROID||mxClient.IS_IOS||"1"==urlParams.noDevice||(d=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var ja=new FilenameDialog(b,"",mxResources.get("create"),function(va){null!=va&&0<va.length&&b.editor.loadUrl(b.editor.getProxiedUrl(va),function(ta){S=
+ta;O=null;templateRealURl=va;b.hideDialog();J()},function(ta){b.handleError(ta)})},mxResources.get("url"),null,null,null,!1);b.showDialog(ja.container,300,80,!0,!0);ja.init()}),d.className="geBtn",E.appendChild(d));Graph.fileSupport&&p&&(p=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var ja=document.createElement("input");ja.setAttribute("multiple","multiple");ja.setAttribute("type","file");mxEvent.addListener(ja,"change",function(va){b.openFiles(ja.files,!0);
+ja.value=""});ja.style.display="none";document.body.appendChild(ja);b.newDlgFileInputElt=ja}b.newDlgFileInputElt.click()}),p.className="geBtn",E.appendChild(p));E.appendChild(U);b.editor.cancelFirst||null!=c||l&&null==m||E.appendChild(A);I.appendChild(E);this.container=I};NewDialog.tagsList={};
var CreateDialog=function(b,d,f,c,l,m,x,z,C,e,g,k,n,t,p,A,E){function y(M,K,H,F){function P(){mxEvent.addListener(U,"click",function(){var D=H;if(x){var L=N.value,R=L.lastIndexOf(".");if(0>d.lastIndexOf(".")&&0>R){D=null!=D?D:I.value;var O="";D==App.MODE_GOOGLE?O=b.drive.extension:D==App.MODE_GITHUB?O=b.gitHub.extension:D==App.MODE_GITLAB?O=b.gitLab.extension:D==App.MODE_TRELLO?O=b.trello.extension:D==App.MODE_DROPBOX?O=b.dropbox.extension:D==App.MODE_ONEDRIVE?O=b.oneDrive.extension:D==App.MODE_DEVICE&&
(O=".drawio");0<=R&&(L=L.substring(0,R));N.value=L+O}}B(H)})}var U=document.createElement("a");U.style.overflow="hidden";var T=document.createElement("img");T.src=M;T.setAttribute("border","0");T.setAttribute("align","absmiddle");T.style.width="60px";T.style.height="60px";T.style.paddingBottom="6px";U.style.display="inline-block";U.className="geBaseButton";U.style.position="relative";U.style.margin="4px";U.style.padding="8px 8px 10px 8px";U.style.whiteSpace="nowrap";U.appendChild(T);U.style.color=
"gray";U.style.fontSize="11px";var V=document.createElement("div");U.appendChild(V);mxUtils.write(V,K);if(null!=F&&null==b[F]){T.style.visibility="hidden";mxUtils.setOpacity(V,10);var W=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});W.spin(U);var q=window.setTimeout(function(){null==b[F]&&(W.stop(),U.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[F]&&(window.clearTimeout(q),
@@ -11548,33 +11548,33 @@ f.apply(this,arguments)};var c=Editor.prototype.updateGraphComponents;Editor.pro
MathJax.typeset([O]),Editor.onMathJaxDone()}catch(Q){MathJax.typesetClear([O]),null!=Q.retry?Q.retry.then(function(){MathJax.typesetPromise([O]).then(Editor.onMathJaxDone)}):null!=window.console&&console.log("Error in MathJax: "+Q.toString())}};window.MathJax=null!=D?D:{options:{skipHtmlTags:{"[+]":["text"]}},loader:{load:["html"==urlParams["math-output"]?"output/chtml":"output/svg","input/tex","input/asciimath"]},startup:{pageReady:function(){for(var O=0;O<Editor.mathJaxQueue.length;O++)Editor.doMathJaxRender(Editor.mathJaxQueue[O])}}};
Editor.MathJaxRender=function(O){"undefined"!==typeof MathJax&&"function"===typeof MathJax.typeset?Editor.doMathJaxRender(O):Editor.mathJaxQueue.push(O)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.onMathJaxDone=function(){};var L=Editor.prototype.init;Editor.prototype.init=function(){L.apply(this,arguments);var O=mxUtils.bind(this,function(Q,S){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)});this.graph.model.addListener(mxEvent.CHANGE,
O);this.graph.addListener(mxEvent.REFRESH,O)};D=document.getElementsByTagName("script");if(null!=D&&0<D.length){var R=document.createElement("script");R.setAttribute("type","text/javascript");R.setAttribute("src",q);D[0].parentNode.appendChild(R)}}};Editor.prototype.csvToArray=function(q){if(0<q.length){var D="",L=[""],R=0,O=!0,Q;q=$jscomp.makeIterator(q);for(Q=q.next();!Q.done;Q=q.next())Q=Q.value,'"'===Q?(O&&Q===D&&(L[R]+=Q),O=!O):","===Q&&O?Q=L[++R]="":L[R]+=Q,D=Q;return L}return[]};Editor.prototype.getProxiedUrl=
-function(q){if(!this.isCorsEnabledForUrl(q)){var D=/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q);D=/\.png$/i.test(q)||/\.pdf$/i.test(q)||D;var L="t="+(new Date).getTime();q=PROXY_URL+"?url="+encodeURIComponent(q)+"&"+L+(D?"&base64=1":"")}return q};Editor.prototype.isCorsEnabledForUrl=function(q){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||q.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=
-new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(q)||"https://raw.githubusercontent.com/"===q.substring(0,34)||"https://fonts.googleapis.com/"===q.substring(0,29)||"https://fonts.gstatic.com/"===q.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var q=new mxUrlConverter;q.updateBaseUrl();var D=q.convert,L=this;q.convert=function(R){if(null!=R){var O="http://"==R.substring(0,7)||"https://"==R.substring(0,8);O&&!navigator.onLine?
-R=Editor.svgBrokenImage.src:!O||R.substring(0,q.baseUrl.length)==q.baseUrl||L.crossOriginImages&&L.isCorsEnabledForUrl(R)?"chrome-extension://"==R.substring(0,19)||mxClient.IS_CHROMEAPP||(R=D.apply(this,arguments)):R=PROXY_URL+"?url="+encodeURIComponent(R)}return R};return q};Editor.createSvgDataUri=function(q){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(q)))};Editor.prototype.convertImageToDataUri=function(q,D){try{var L=!0,R=window.setTimeout(mxUtils.bind(this,function(){L=
-!1;D(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(q))mxUtils.get(q,mxUtils.bind(this,function(Q){window.clearTimeout(R);L&&D(Editor.createSvgDataUri(Q.getText()))}),function(){window.clearTimeout(R);L&&D(Editor.svgBrokenImage.src)});else{var O=new Image;this.crossOriginImages&&(O.crossOrigin="anonymous");O.onload=function(){window.clearTimeout(R);if(L)try{var Q=document.createElement("canvas"),S=Q.getContext("2d");Q.height=O.height;Q.width=O.width;S.drawImage(O,0,0);D(Q.toDataURL())}catch(X){D(Editor.svgBrokenImage.src)}};
-O.onerror=function(){window.clearTimeout(R);L&&D(Editor.svgBrokenImage.src)};O.src=q}}catch(Q){D(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(q,D,L,R){null==R&&(R=this.createImageUrlConverter());var O=0,Q=L||{};L=mxUtils.bind(this,function(S,X){S=q.getElementsByTagName(S);for(var aa=0;aa<S.length;aa++)mxUtils.bind(this,function(Y){try{if(null!=Y){var Z=R.convert(Y.getAttribute(X));if(null!=Z&&"data:"!=Z.substring(0,5)){var ba=Q[Z];null==ba?(O++,this.convertImageToDataUri(Z,
-function(fa){null!=fa&&(Q[Z]=fa,Y.setAttribute(X,fa));O--;0==O&&D(q)})):Y.setAttribute(X,ba)}else null!=Z&&Y.setAttribute(X,Z)}}catch(fa){}})(S[aa])});L("image","xlink:href");L("img","src");0==O&&D(q)};Editor.base64Encode=function(q){for(var D="",L=0,R=q.length,O,Q,S;L<R;){O=q.charCodeAt(L++)&255;if(L==R){D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4);D+="==";break}Q=q.charCodeAt(L++);
-if(L==R){D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(Q&240)>>4);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&15)<<2);D+="=";break}S=q.charCodeAt(L++);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(Q&240)>>4);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&
-15)<<2|(S&192)>>6);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(S&63)}return D};Editor.prototype.loadUrl=function(q,D,L,R,O,Q,S,X){try{var aa=!S&&(R||/(\.png)($|\?)/i.test(q)||/(\.jpe?g)($|\?)/i.test(q)||/(\.gif)($|\?)/i.test(q)||/(\.pdf)($|\?)/i.test(q));O=null!=O?O:!0;var Y=mxUtils.bind(this,function(){mxUtils.get(q,mxUtils.bind(this,function(Z){if(200<=Z.getStatus()&&299>=Z.getStatus()){if(null!=D){var ba=Z.getText();if(aa){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){Z=mxUtilsBinaryToArray(Z.request.responseBody).toArray();ba=Array(Z.length);for(var fa=0;fa<Z.length;fa++)ba[fa]=String.fromCharCode(Z[fa]);ba=ba.join("")}Q=null!=Q?Q:"data:image/png;base64,";ba=Q+Editor.base64Encode(ba)}D(ba)}}else null!=L&&(0==Z.getStatus()?L({message:mxResources.get("accessDenied")},Z):404==Z.getStatus()?L({code:Z.getStatus()},Z):L({message:mxResources.get("error")+" "+Z.getStatus()},Z))}),function(Z){null!=L&&L({message:mxResources.get("error")+
-" "+Z.getStatus()})},aa,this.timeout,function(){O&&null!=L&&L({code:App.ERROR_TIMEOUT,retry:Y})},X)});Y()}catch(Z){null!=L&&L(Z)}};Editor.prototype.absoluteCssFonts=function(q){var D=null;if(null!=q){var L=q.split("url(");if(0<L.length){D=[L[0]];q=window.location.pathname;var R=null!=q?q.lastIndexOf("/"):-1;0<=R&&(q=q.substring(0,R+1));R=document.getElementsByTagName("base");var O=null;null!=R&&0<R.length&&(O=R[0].getAttribute("href"));for(var Q=1;Q<L.length;Q++)if(R=L[Q].indexOf(")"),0<R){var S=
-Editor.trimCssUrl(L[Q].substring(0,R));this.graph.isRelativeUrl(S)&&(S=null!=O?O+S:window.location.protocol+"//"+window.location.hostname+("/"==S.charAt(0)?"":q)+S);D.push('url("'+S+'"'+L[Q].substring(R))}else D.push(L[Q])}else D=[q]}return null!=D?D.join(""):null};Editor.prototype.mapFontUrl=function(q,D,L){/^https?:\/\//.test(D)&&!this.isCorsEnabledForUrl(D)&&(D=PROXY_URL+"?url="+encodeURIComponent(D));L(q,D)};Editor.prototype.embedCssFonts=function(q,D){var L=q.split("url("),R=0;null==this.cachedFonts&&
-(this.cachedFonts={});var O=mxUtils.bind(this,function(){if(0==R){for(var aa=[L[0]],Y=1;Y<L.length;Y++){var Z=L[Y].indexOf(")");aa.push('url("');aa.push(this.cachedFonts[Editor.trimCssUrl(L[Y].substring(0,Z))]);aa.push('"'+L[Y].substring(Z))}D(aa.join(""))}});if(0<L.length){for(q=1;q<L.length;q++){var Q=L[q].indexOf(")"),S=null,X=L[q].indexOf("format(",Q);0<X&&(S=Editor.trimCssUrl(L[q].substring(X+7,L[q].indexOf(")",X))));mxUtils.bind(this,function(aa){if(null==this.cachedFonts[aa]){this.cachedFonts[aa]=
-aa;R++;var Y="application/x-font-ttf";if("svg"==S||/(\.svg)($|\?)/i.test(aa))Y="image/svg+xml";else if("otf"==S||"embedded-opentype"==S||/(\.otf)($|\?)/i.test(aa))Y="application/x-font-opentype";else if("woff"==S||/(\.woff)($|\?)/i.test(aa))Y="application/font-woff";else if("woff2"==S||/(\.woff2)($|\?)/i.test(aa))Y="application/font-woff2";else if("eot"==S||/(\.eot)($|\?)/i.test(aa))Y="application/vnd.ms-fontobject";else if("sfnt"==S||/(\.sfnt)($|\?)/i.test(aa))Y="application/font-sfnt";this.mapFontUrl(Y,
-aa,mxUtils.bind(this,function(Z,ba){this.loadUrl(ba,mxUtils.bind(this,function(fa){this.cachedFonts[aa]=fa;R--;O()}),mxUtils.bind(this,function(fa){R--;O()}),!0,null,"data:"+Z+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(L[q].substring(0,Q)),S)}O()}else D(q)};Editor.prototype.loadFonts=function(q){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(D){this.resolvedFontCss=D;null!=q&&q()})):null!=q&&q()};Editor.prototype.createGoogleFontCache=
-function(){var q={},D;for(D in Graph.fontMapping)Graph.isCssFontUrl(D)&&(q[D]=Graph.fontMapping[D]);return q};Editor.prototype.embedExtFonts=function(q){var D=this.graph.getCustomFonts();if(0<D.length){var L=[],R=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var O=mxUtils.bind(this,function(){0==R&&this.embedCssFonts(L.join(""),q)}),Q=0;Q<D.length;Q++)mxUtils.bind(this,function(S,X){Graph.isCssFontUrl(X)?null==this.cachedGoogleFonts[X]?(R++,this.loadUrl(X,
-mxUtils.bind(this,function(aa){this.cachedGoogleFonts[X]=aa;L.push(aa+"\n");R--;O()}),mxUtils.bind(this,function(aa){R--;L.push("@import url("+X+");\n");O()}))):L.push(this.cachedGoogleFonts[X]+"\n"):L.push('@font-face {font-family: "'+S+'";src: url("'+X+'")}\n')})(D[Q].name,D[Q].url);O()}else q()};Editor.prototype.addMathCss=function(q){q=q.getElementsByTagName("defs");if(null!=q&&0<q.length)for(var D=document.getElementsByTagName("style"),L=0;L<D.length;L++){var R=mxUtils.getTextContent(D[L]);0>
-R.indexOf("mxPageSelector")&&0<R.indexOf("MathJax")&&q[0].appendChild(D[L].cloneNode(!0))}};Editor.prototype.addFontCss=function(q,D){D=null!=D?D:this.absoluteCssFonts(this.fontCss);if(null!=D){var L=q.getElementsByTagName("defs"),R=q.ownerDocument;0==L.length?(L=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,"defs"):R.createElement("defs"),null!=q.firstChild?q.insertBefore(L,q.firstChild):q.appendChild(L)):L=L[0];q=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,"style"):
-R.createElement("style");q.setAttribute("type","text/css");mxUtils.setTextContent(q,D);L.appendChild(q)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(q,D,L){var R=mxClient.IS_FF?8192:16384;return Math.min(L,Math.min(R/q,R/D))};Editor.prototype.exportToCanvas=function(q,D,L,R,O,Q,S,X,aa,Y,Z,ba,fa,ka,ha,ra,la,Fa){try{Q=null!=Q?Q:!0;S=null!=S?S:!0;ba=null!=ba?ba:this.graph;fa=null!=fa?fa:0;var Ga=aa?null:
-ba.background;Ga==mxConstants.NONE&&(Ga=null);null==Ga&&(Ga=R);null==Ga&&0==aa&&(Ga=ra?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(ba.getSvg(null,null,fa,ka,null,S,null,null,null,Y,null,ra,la,Fa),mxUtils.bind(this,function(Aa){try{var Ma=new Image;Ma.onload=mxUtils.bind(this,function(){try{var Da=function(){mxClient.IS_SF?window.setTimeout(function(){wa.drawImage(Ma,0,0);q(Ca,Aa)},0):(wa.drawImage(Ma,0,0),q(Ca,Aa))},Ca=document.createElement("canvas"),pa=parseInt(Aa.getAttribute("width")),
-qa=parseInt(Aa.getAttribute("height"));X=null!=X?X:1;null!=D&&(X=Q?Math.min(1,Math.min(3*D/(4*qa),D/pa)):D/pa);X=this.getMaxCanvasScale(pa,qa,X);pa=Math.ceil(X*pa);qa=Math.ceil(X*qa);Ca.setAttribute("width",pa);Ca.setAttribute("height",qa);var wa=Ca.getContext("2d");null!=Ga&&(wa.beginPath(),wa.rect(0,0,pa,qa),wa.fillStyle=Ga,wa.fill());1!=X&&wa.scale(X,X);if(ha){var Ha=ba.view,ya=Ha.scale;Ha.scale=1;var Ia=btoa(unescape(encodeURIComponent(Ha.createSvgGrid(Ha.gridColor))));Ha.scale=ya;Ia="data:image/svg+xml;base64,"+
-Ia;var ja=ba.gridSize*Ha.gridSteps*X,va=ba.getGraphBounds(),ta=Ha.translate.x*ya,da=Ha.translate.y*ya,ca=ta+(va.x-ta)/ya-fa,na=da+(va.y-da)/ya-fa,ea=new Image;ea.onload=function(){try{for(var ia=-Math.round(ja-mxUtils.mod((ta-ca)*X,ja)),oa=-Math.round(ja-mxUtils.mod((da-na)*X,ja));ia<pa;ia+=ja)for(var ma=oa;ma<qa;ma+=ja)wa.drawImage(ea,ia/X,ma/X);Da()}catch(xa){null!=O&&O(xa)}};ea.onerror=function(ia){null!=O&&O(ia)};ea.src=Ia}else Da()}catch(ia){null!=O&&O(ia)}});Ma.onerror=function(Da){null!=O&&
-O(Da)};Y&&this.graph.addSvgShadow(Aa);this.graph.mathEnabled&&this.addMathCss(Aa);var za=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(Aa,this.resolvedFontCss),Ma.src=Editor.createSvgDataUri(mxUtils.getXml(Aa))}catch(Da){null!=O&&O(Da)}});this.embedExtFonts(mxUtils.bind(this,function(Da){try{null!=Da&&this.addFontCss(Aa,Da),this.loadFonts(za)}catch(Ca){null!=O&&O(Ca)}}))}catch(Da){null!=O&&O(Da)}}),L,Z)}catch(Aa){null!=O&&O(Aa)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=
-l,x=0;8>x;x++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(q,D,L,R){for(var O=0;O<R;O++)q=Editor.crcTable[(q^D.charCodeAt(L+O))&255]^q>>>8;return q};Editor.crc32=function(q){for(var D=-1,L=0;L<q.length;L++)D=D>>>8^Editor.crcTable[(D^q.charCodeAt(L))&255];return(D^-1)>>>0};Editor.writeGraphModelToPng=function(q,D,L,R,O){function Q(Z,ba){var fa=aa;aa+=ba;return Z.substring(fa,aa)}function S(Z){Z=Q(Z,4);return Z.charCodeAt(3)+(Z.charCodeAt(2)<<8)+(Z.charCodeAt(1)<<
-16)+(Z.charCodeAt(0)<<24)}function X(Z){return String.fromCharCode(Z>>24&255,Z>>16&255,Z>>8&255,Z&255)}q=q.substring(q.indexOf(",")+1);q=window.atob?atob(q):Base64.decode(q,!0);var aa=0;if(Q(q,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=O&&O();else if(Q(q,4),"IHDR"!=Q(q,4))null!=O&&O();else{Q(q,17);O=q.substring(0,aa);do{var Y=S(q);if("IDAT"==Q(q,4)){O=q.substring(0,aa-8);"pHYs"==D&&"dpi"==L?(L=Math.round(R/.0254),L=X(L)+X(L)+String.fromCharCode(1)):L=L+String.fromCharCode(0)+
-("zTXt"==D?String.fromCharCode(0):"")+R;R=4294967295;R=Editor.updateCRC(R,D,0,4);R=Editor.updateCRC(R,L,0,L.length);O+=X(L.length)+D+L+X(R^4294967295);O+=q.substring(aa-8,q.length);break}O+=q.substring(aa-8,aa-4+Y);Q(q,Y);Q(q,4)}while(Y);return"data:image/png;base64,"+(window.btoa?btoa(O):Base64.encode(O,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var z=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(q,D){z.apply(this,
-arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var C=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){C.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(q,D){var L=null;null!=q.editor.graph.getModel().getParent(D)?L=D.getId():null!=q.currentPage&&(L=q.currentPage.getId());return L});if(null!=window.StyleFormatPanel){var e=Format.prototype.init;
-Format.prototype.init=function(){e.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var q=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=q&&q.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=
+function(q){if((/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))&&!this.isCorsEnabledForUrl(q)){var D=/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q);D=/\.png$/i.test(q)||/\.pdf$/i.test(q)||D;var L="t="+(new Date).getTime();q=PROXY_URL+"?url="+encodeURIComponent(q)+"&"+L+(D?"&base64=1":"")}return q};Editor.prototype.isCorsEnabledForUrl=function(q){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||q.substring(0,window.location.origin.length)==
+window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(q)||"https://raw.githubusercontent.com/"===q.substring(0,34)||"https://fonts.googleapis.com/"===q.substring(0,29)||"https://fonts.gstatic.com/"===q.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var q=new mxUrlConverter;q.updateBaseUrl();var D=q.convert,L=this;q.convert=function(R){if(null!=
+R){var O="http://"==R.substring(0,7)||"https://"==R.substring(0,8);O&&!navigator.onLine?R=Editor.svgBrokenImage.src:!O||R.substring(0,q.baseUrl.length)==q.baseUrl||L.crossOriginImages&&L.isCorsEnabledForUrl(R)?"chrome-extension://"==R.substring(0,19)||mxClient.IS_CHROMEAPP||(R=D.apply(this,arguments)):R=PROXY_URL+"?url="+encodeURIComponent(R)}return R};return q};Editor.createSvgDataUri=function(q){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(q)))};Editor.prototype.convertImageToDataUri=
+function(q,D){try{var L=!0,R=window.setTimeout(mxUtils.bind(this,function(){L=!1;D(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(q))mxUtils.get(q,mxUtils.bind(this,function(Q){window.clearTimeout(R);L&&D(Editor.createSvgDataUri(Q.getText()))}),function(){window.clearTimeout(R);L&&D(Editor.svgBrokenImage.src)});else{var O=new Image;this.crossOriginImages&&(O.crossOrigin="anonymous");O.onload=function(){window.clearTimeout(R);if(L)try{var Q=document.createElement("canvas"),S=Q.getContext("2d");
+Q.height=O.height;Q.width=O.width;S.drawImage(O,0,0);D(Q.toDataURL())}catch(X){D(Editor.svgBrokenImage.src)}};O.onerror=function(){window.clearTimeout(R);L&&D(Editor.svgBrokenImage.src)};O.src=q}}catch(Q){D(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(q,D,L,R){null==R&&(R=this.createImageUrlConverter());var O=0,Q=L||{};L=mxUtils.bind(this,function(S,X){S=q.getElementsByTagName(S);for(var aa=0;aa<S.length;aa++)mxUtils.bind(this,function(Y){try{if(null!=Y){var Z=R.convert(Y.getAttribute(X));
+if(null!=Z&&"data:"!=Z.substring(0,5)){var ba=Q[Z];null==ba?(O++,this.convertImageToDataUri(Z,function(fa){null!=fa&&(Q[Z]=fa,Y.setAttribute(X,fa));O--;0==O&&D(q)})):Y.setAttribute(X,ba)}else null!=Z&&Y.setAttribute(X,Z)}}catch(fa){}})(S[aa])});L("image","xlink:href");L("img","src");0==O&&D(q)};Editor.base64Encode=function(q){for(var D="",L=0,R=q.length,O,Q,S;L<R;){O=q.charCodeAt(L++)&255;if(L==R){D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&
+3)<<4);D+="==";break}Q=q.charCodeAt(L++);if(L==R){D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(Q&240)>>4);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&15)<<2);D+="=";break}S=q.charCodeAt(L++);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&
+3)<<4|(Q&240)>>4);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&15)<<2|(S&192)>>6);D+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(S&63)}return D};Editor.prototype.loadUrl=function(q,D,L,R,O,Q,S,X){try{var aa=!S&&(R||/(\.png)($|\?)/i.test(q)||/(\.jpe?g)($|\?)/i.test(q)||/(\.gif)($|\?)/i.test(q)||/(\.pdf)($|\?)/i.test(q));O=null!=O?O:!0;var Y=mxUtils.bind(this,function(){mxUtils.get(q,mxUtils.bind(this,function(Z){if(200<=Z.getStatus()&&
+299>=Z.getStatus()){if(null!=D){var ba=Z.getText();if(aa){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){Z=mxUtilsBinaryToArray(Z.request.responseBody).toArray();ba=Array(Z.length);for(var fa=0;fa<Z.length;fa++)ba[fa]=String.fromCharCode(Z[fa]);ba=ba.join("")}Q=null!=Q?Q:"data:image/png;base64,";ba=Q+Editor.base64Encode(ba)}D(ba)}}else null!=L&&(0==Z.getStatus()?L({message:mxResources.get("accessDenied")},Z):404==Z.getStatus()?L({code:Z.getStatus()},
+Z):L({message:mxResources.get("error")+" "+Z.getStatus()},Z))}),function(Z){null!=L&&L({message:mxResources.get("error")+" "+Z.getStatus()})},aa,this.timeout,function(){O&&null!=L&&L({code:App.ERROR_TIMEOUT,retry:Y})},X)});Y()}catch(Z){null!=L&&L(Z)}};Editor.prototype.absoluteCssFonts=function(q){var D=null;if(null!=q){var L=q.split("url(");if(0<L.length){D=[L[0]];q=window.location.pathname;var R=null!=q?q.lastIndexOf("/"):-1;0<=R&&(q=q.substring(0,R+1));R=document.getElementsByTagName("base");var O=
+null;null!=R&&0<R.length&&(O=R[0].getAttribute("href"));for(var Q=1;Q<L.length;Q++)if(R=L[Q].indexOf(")"),0<R){var S=Editor.trimCssUrl(L[Q].substring(0,R));this.graph.isRelativeUrl(S)&&(S=null!=O?O+S:window.location.protocol+"//"+window.location.hostname+("/"==S.charAt(0)?"":q)+S);D.push('url("'+S+'"'+L[Q].substring(R))}else D.push(L[Q])}else D=[q]}return null!=D?D.join(""):null};Editor.prototype.mapFontUrl=function(q,D,L){/^https?:\/\//.test(D)&&!this.isCorsEnabledForUrl(D)&&(D=PROXY_URL+"?url="+
+encodeURIComponent(D));L(q,D)};Editor.prototype.embedCssFonts=function(q,D){var L=q.split("url("),R=0;null==this.cachedFonts&&(this.cachedFonts={});var O=mxUtils.bind(this,function(){if(0==R){for(var aa=[L[0]],Y=1;Y<L.length;Y++){var Z=L[Y].indexOf(")");aa.push('url("');aa.push(this.cachedFonts[Editor.trimCssUrl(L[Y].substring(0,Z))]);aa.push('"'+L[Y].substring(Z))}D(aa.join(""))}});if(0<L.length){for(q=1;q<L.length;q++){var Q=L[q].indexOf(")"),S=null,X=L[q].indexOf("format(",Q);0<X&&(S=Editor.trimCssUrl(L[q].substring(X+
+7,L[q].indexOf(")",X))));mxUtils.bind(this,function(aa){if(null==this.cachedFonts[aa]){this.cachedFonts[aa]=aa;R++;var Y="application/x-font-ttf";if("svg"==S||/(\.svg)($|\?)/i.test(aa))Y="image/svg+xml";else if("otf"==S||"embedded-opentype"==S||/(\.otf)($|\?)/i.test(aa))Y="application/x-font-opentype";else if("woff"==S||/(\.woff)($|\?)/i.test(aa))Y="application/font-woff";else if("woff2"==S||/(\.woff2)($|\?)/i.test(aa))Y="application/font-woff2";else if("eot"==S||/(\.eot)($|\?)/i.test(aa))Y="application/vnd.ms-fontobject";
+else if("sfnt"==S||/(\.sfnt)($|\?)/i.test(aa))Y="application/font-sfnt";this.mapFontUrl(Y,aa,mxUtils.bind(this,function(Z,ba){this.loadUrl(ba,mxUtils.bind(this,function(fa){this.cachedFonts[aa]=fa;R--;O()}),mxUtils.bind(this,function(fa){R--;O()}),!0,null,"data:"+Z+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(L[q].substring(0,Q)),S)}O()}else D(q)};Editor.prototype.loadFonts=function(q){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(D){this.resolvedFontCss=
+D;null!=q&&q()})):null!=q&&q()};Editor.prototype.createGoogleFontCache=function(){var q={},D;for(D in Graph.fontMapping)Graph.isCssFontUrl(D)&&(q[D]=Graph.fontMapping[D]);return q};Editor.prototype.embedExtFonts=function(q){var D=this.graph.getCustomFonts();if(0<D.length){var L=[],R=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var O=mxUtils.bind(this,function(){0==R&&this.embedCssFonts(L.join(""),q)}),Q=0;Q<D.length;Q++)mxUtils.bind(this,function(S,X){Graph.isCssFontUrl(X)?
+null==this.cachedGoogleFonts[X]?(R++,this.loadUrl(X,mxUtils.bind(this,function(aa){this.cachedGoogleFonts[X]=aa;L.push(aa+"\n");R--;O()}),mxUtils.bind(this,function(aa){R--;L.push("@import url("+X+");\n");O()}))):L.push(this.cachedGoogleFonts[X]+"\n"):L.push('@font-face {font-family: "'+S+'";src: url("'+X+'")}\n')})(D[Q].name,D[Q].url);O()}else q()};Editor.prototype.addMathCss=function(q){q=q.getElementsByTagName("defs");if(null!=q&&0<q.length)for(var D=document.getElementsByTagName("style"),L=0;L<
+D.length;L++){var R=mxUtils.getTextContent(D[L]);0>R.indexOf("mxPageSelector")&&0<R.indexOf("MathJax")&&q[0].appendChild(D[L].cloneNode(!0))}};Editor.prototype.addFontCss=function(q,D){D=null!=D?D:this.absoluteCssFonts(this.fontCss);if(null!=D){var L=q.getElementsByTagName("defs"),R=q.ownerDocument;0==L.length?(L=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,"defs"):R.createElement("defs"),null!=q.firstChild?q.insertBefore(L,q.firstChild):q.appendChild(L)):L=L[0];q=null!=R.createElementNS?
+R.createElementNS(mxConstants.NS_SVG,"style"):R.createElement("style");q.setAttribute("type","text/css");mxUtils.setTextContent(q,D);L.appendChild(q)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(q,D,L){var R=mxClient.IS_FF?8192:16384;return Math.min(L,Math.min(R/q,R/D))};Editor.prototype.exportToCanvas=function(q,D,L,R,O,Q,S,X,aa,Y,Z,ba,fa,ka,ha,ra,la,Fa){try{Q=null!=Q?Q:!0;S=null!=S?S:!0;ba=null!=
+ba?ba:this.graph;fa=null!=fa?fa:0;var Ga=aa?null:ba.background;Ga==mxConstants.NONE&&(Ga=null);null==Ga&&(Ga=R);null==Ga&&0==aa&&(Ga=ra?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(ba.getSvg(null,null,fa,ka,null,S,null,null,null,Y,null,ra,la,Fa),mxUtils.bind(this,function(Aa){try{var Ma=new Image;Ma.onload=mxUtils.bind(this,function(){try{var Da=function(){mxClient.IS_SF?window.setTimeout(function(){wa.drawImage(Ma,0,0);q(Ca,Aa)},0):(wa.drawImage(Ma,0,0),q(Ca,Aa))},Ca=document.createElement("canvas"),
+pa=parseInt(Aa.getAttribute("width")),qa=parseInt(Aa.getAttribute("height"));X=null!=X?X:1;null!=D&&(X=Q?Math.min(1,Math.min(3*D/(4*qa),D/pa)):D/pa);X=this.getMaxCanvasScale(pa,qa,X);pa=Math.ceil(X*pa);qa=Math.ceil(X*qa);Ca.setAttribute("width",pa);Ca.setAttribute("height",qa);var wa=Ca.getContext("2d");null!=Ga&&(wa.beginPath(),wa.rect(0,0,pa,qa),wa.fillStyle=Ga,wa.fill());1!=X&&wa.scale(X,X);if(ha){var Ha=ba.view,ya=Ha.scale;Ha.scale=1;var Ia=btoa(unescape(encodeURIComponent(Ha.createSvgGrid(Ha.gridColor))));
+Ha.scale=ya;Ia="data:image/svg+xml;base64,"+Ia;var ja=ba.gridSize*Ha.gridSteps*X,va=ba.getGraphBounds(),ta=Ha.translate.x*ya,da=Ha.translate.y*ya,ca=ta+(va.x-ta)/ya-fa,na=da+(va.y-da)/ya-fa,ea=new Image;ea.onload=function(){try{for(var ia=-Math.round(ja-mxUtils.mod((ta-ca)*X,ja)),oa=-Math.round(ja-mxUtils.mod((da-na)*X,ja));ia<pa;ia+=ja)for(var ma=oa;ma<qa;ma+=ja)wa.drawImage(ea,ia/X,ma/X);Da()}catch(xa){null!=O&&O(xa)}};ea.onerror=function(ia){null!=O&&O(ia)};ea.src=Ia}else Da()}catch(ia){null!=
+O&&O(ia)}});Ma.onerror=function(Da){null!=O&&O(Da)};Y&&this.graph.addSvgShadow(Aa);this.graph.mathEnabled&&this.addMathCss(Aa);var za=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(Aa,this.resolvedFontCss),Ma.src=Editor.createSvgDataUri(mxUtils.getXml(Aa))}catch(Da){null!=O&&O(Da)}});this.embedExtFonts(mxUtils.bind(this,function(Da){try{null!=Da&&this.addFontCss(Aa,Da),this.loadFonts(za)}catch(Ca){null!=O&&O(Ca)}}))}catch(Da){null!=O&&O(Da)}}),L,Z)}catch(Aa){null!=O&&
+O(Aa)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,x=0;8>x;x++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(q,D,L,R){for(var O=0;O<R;O++)q=Editor.crcTable[(q^D.charCodeAt(L+O))&255]^q>>>8;return q};Editor.crc32=function(q){for(var D=-1,L=0;L<q.length;L++)D=D>>>8^Editor.crcTable[(D^q.charCodeAt(L))&255];return(D^-1)>>>0};Editor.writeGraphModelToPng=function(q,D,L,R,O){function Q(Z,ba){var fa=aa;aa+=ba;return Z.substring(fa,aa)}function S(Z){Z=Q(Z,4);return Z.charCodeAt(3)+
+(Z.charCodeAt(2)<<8)+(Z.charCodeAt(1)<<16)+(Z.charCodeAt(0)<<24)}function X(Z){return String.fromCharCode(Z>>24&255,Z>>16&255,Z>>8&255,Z&255)}q=q.substring(q.indexOf(",")+1);q=window.atob?atob(q):Base64.decode(q,!0);var aa=0;if(Q(q,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=O&&O();else if(Q(q,4),"IHDR"!=Q(q,4))null!=O&&O();else{Q(q,17);O=q.substring(0,aa);do{var Y=S(q);if("IDAT"==Q(q,4)){O=q.substring(0,aa-8);"pHYs"==D&&"dpi"==L?(L=Math.round(R/.0254),L=X(L)+X(L)+String.fromCharCode(1)):
+L=L+String.fromCharCode(0)+("zTXt"==D?String.fromCharCode(0):"")+R;R=4294967295;R=Editor.updateCRC(R,D,0,4);R=Editor.updateCRC(R,L,0,L.length);O+=X(L.length)+D+L+X(R^4294967295);O+=q.substring(aa-8,q.length);break}O+=q.substring(aa-8,aa-4+Y);Q(q,Y);Q(q,4)}while(Y);return"data:image/png;base64,"+(window.btoa?btoa(O):Base64.encode(O,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var z=ColorDialog.addRecentColor;ColorDialog.addRecentColor=
+function(q,D){z.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var C=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){C.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(q,D){var L=null;null!=q.editor.graph.getModel().getParent(D)?L=D.getId():null!=q.currentPage&&(L=q.currentPage.getId());return L});if(null!=window.StyleFormatPanel){var e=
+Format.prototype.init;Format.prototype.init=function(){e.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var q=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=q&&q.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=
function(q){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(q){q=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var D=this.editorUi,L=D.editor.graph,R=this.createOption(mxResources.get("shadow"),function(){return L.shadowVisible},function(O){var Q=new ChangePageSetup(D);Q.ignoreColor=!0;Q.ignoreImage=!0;Q.shadowVisible=O;L.model.execute(Q)},{install:function(O){this.listener=function(){O(L.shadowVisible)};
D.addListener("shadowVisibleChanged",this.listener)},destroy:function(){D.removeListener(this.listener)}});Editor.enableShadowOption||(R.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(R,60));q.appendChild(R)}return q};var n=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(q){q=n.apply(this,arguments);var D=this.editorUi,L=D.editor.graph;if(L.isEnabled()){var R=D.getCurrentFile();if(null!=R&&R.isAutosaveOptional()){var O=
this.createOption(mxResources.get("autosave"),function(){return D.editor.autosave},function(S){D.editor.setAutosave(S);D.editor.autosave&&R.isModified()&&R.fileChanged()},{install:function(S){this.listener=function(){S(D.editor.autosave)};D.editor.addListener("autosaveChanged",this.listener)},destroy:function(){D.editor.removeListener(this.listener)}});q.appendChild(O)}}if(this.isMathOptionVisible()&&L.isEnabled()&&"undefined"!==typeof MathJax){O=this.createOption(mxResources.get("mathematicalTypesetting"),
@@ -11726,7 +11726,7 @@ D.appendChild(S);Q.appendChild(D);this.container=Q};var T=ChangePageSetup.protot
this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else T.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=
!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var V=document.createElement("canvas"),W=new Image;W.onload=function(){try{V.getContext("2d").drawImage(W,0,0);var q=V.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=q&&6<q.length}catch(D){}};W.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(q){}Editor.prototype.useCanvasForExport=
!1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(d,f,c){c.ui=d.ui;return f};b.afterDecode=function(d,f,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(d,f,c){c.ui=d.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(d,f,c){c.ui=d.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&
"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,
mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(e,g,k,n,t,p,A){p=null!=p?p:0<=e.indexOf("NetworkError")||0<=e.indexOf("SecurityError")||0<=e.indexOf("NS_ERROR_FAILURE")||0<=e.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -11785,28 +11785,28 @@ B=B?"1":"0";"pdf"==g&&(null!=J?M="&from="+J.from+"&to="+J.to:0==p&&(M="&allPages
(t.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+g+I+M+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+n+"&embedXml="+B+"&xml="+encodeURIComponent(k)+(null!=e?"&filename="+encodeURIComponent(e):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(null!=A?"&scale="+A:"")+(null!=E?"&border="+E:"")+(N&&isFinite(N)?"&w="+N:"")+(v&&isFinite(v)?"&h="+v:""))};EditorUi.prototype.setMode=function(e,g){this.mode=e};EditorUi.prototype.loadDescriptor=function(e,g,k){var n=
window.location.hash,t=mxUtils.bind(this,function(A){var E=null!=e.data?e.data:"";null!=A&&0<A.length&&(0<E.length&&(E+="\n"),E+=A);A=new LocalFile(this,"csv"!=e.format&&0<E.length?E:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);A.getHash=function(){return n};this.fileLoaded(A);"csv"==e.format&&this.importCsv(E,mxUtils.bind(this,function(v){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=e.update){var y=
null!=e.interval?parseInt(e.interval):6E4,B=null,J=mxUtils.bind(this,function(){var v=this.currentPage;mxUtils.post(e.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(u){v===this.currentPage&&(200<=u.getStatus()&&300>=u.getStatus()?(this.updateDiagram(u.getText()),N()):this.handleError({message:mxResources.get("error")+" "+u.getStatus()}))}),mxUtils.bind(this,function(u){this.handleError(u)}))}),N=mxUtils.bind(this,function(){window.clearTimeout(B);
-B=window.setTimeout(J,y)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){N();J()}));N();J()}null!=g&&g()});if(null!=e.url&&0<e.url.length){var p=e.url;if(/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))p=this.editor.getProxiedUrl(p);this.editor.loadUrl(p,mxUtils.bind(this,function(A){t(A)}),mxUtils.bind(this,function(A){null!=k&&k(A)}))}else t("")};EditorUi.prototype.updateDiagram=function(e){function g(F){var P=new mxCellOverlay(F.image||
-t.warningImage,F.tooltip,F.align,F.valign,F.offset);P.addListener(mxEvent.CLICK,function(U,T){n.alert(F.tooltip)});return P}var k=null,n=this;if(null!=e&&0<e.length&&(k=mxUtils.parseXml(e),e=null!=k?k.documentElement:null,null!=e&&"updates"==e.nodeName)){var t=this.editor.graph,p=t.getModel();p.beginUpdate();var A=null;try{for(e=e.firstChild;null!=e;){if("update"==e.nodeName){var E=p.getCell(e.getAttribute("id"));if(null!=E){try{var y=e.getAttribute("value");if(null!=y){var B=mxUtils.parseXml(y).documentElement;
-if(null!=B)if("1"==B.getAttribute("replace-value"))p.setValue(E,B);else for(var J=B.attributes,N=0;N<J.length;N++)t.setAttributeForCell(E,J[N].nodeName,0<J[N].nodeValue.length?J[N].nodeValue:null)}}catch(F){null!=window.console&&console.log("Error in value for "+E.id+": "+F)}try{var v=e.getAttribute("style");null!=v&&t.model.setStyle(E,v)}catch(F){null!=window.console&&console.log("Error in style for "+E.id+": "+F)}try{var u=e.getAttribute("icon");if(null!=u){var G=0<u.length?JSON.parse(u):null;null!=
-G&&G.append||t.removeCellOverlays(E);null!=G&&t.addCellOverlay(E,g(G))}}catch(F){null!=window.console&&console.log("Error in icon for "+E.id+": "+F)}try{var I=e.getAttribute("geometry");if(null!=I){I=JSON.parse(I);var M=t.getCellGeometry(E);if(null!=M){M=M.clone();for(key in I){var K=parseFloat(I[key]);"dx"==key?M.x+=K:"dy"==key?M.y+=K:"dw"==key?M.width+=K:"dh"==key?M.height+=K:M[key]=parseFloat(I[key])}t.model.setGeometry(E,M)}}}catch(F){null!=window.console&&console.log("Error in icon for "+E.id+
-": "+F)}}}else if("model"==e.nodeName){for(var H=e.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(e.firstChild)).decode(H,p)}else if("view"==e.nodeName){if(e.hasAttribute("scale")&&(t.view.scale=parseFloat(e.getAttribute("scale"))),e.hasAttribute("dx")||e.hasAttribute("dy"))t.view.translate=new mxPoint(parseFloat(e.getAttribute("dx")||0),parseFloat(e.getAttribute("dy")||0))}else"fit"==e.nodeName&&(A=e.hasAttribute("max-scale")?parseFloat(e.getAttribute("max-scale")):
-1);e=e.nextSibling}}finally{p.endUpdate()}null!=A&&this.chromelessResize&&this.chromelessResize(!0,A)}return k};EditorUi.prototype.getCopyFilename=function(e,g){var k=null!=e&&null!=e.getTitle()?e.getTitle():this.defaultFilename;e="";var n=k.lastIndexOf(".");0<=n&&(e=k.substring(n),k=k.substring(0,n));if(g){g=k;var t=new Date;k=t.getFullYear();n=t.getMonth()+1;var p=t.getDate(),A=t.getHours(),E=t.getMinutes();t=t.getSeconds();k=g+(" "+(k+"-"+n+"-"+p+"-"+A+"-"+E+"-"+t))}return k=mxResources.get("copyOf",
-[k])+e};EditorUi.prototype.fileLoaded=function(e,g){var k=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var n=!1;this.hideDialog();null!=k&&(EditorUi.debug("File.closed",[k]),k.removeListener(this.descriptorChangedListener),k.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var t=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=k&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
-this.setBackgroundImage(null);!g&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();g||this.showSplash()});if(null!=e)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(e);e.addListener("descriptorChanged",this.descriptorChangedListener);
-e.addListener("contentChanged",this.descriptorChangedListener);e.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(e.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();e.isEditable()?e.isModified()?(e.addUnsavedStatus(),null!=e.backupPatch&&e.patch([e.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");
-!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));n=!0;if(!this.isOffline()&&null!=e.getMode()){var p="1"==urlParams.sketch?"sketch":uiTheme;if(null==p)p="default";else if("sketch"==p||"min"==p)p+=Editor.isDarkMode()?
-"-dark":"-light";EditorUi.logEvent({category:e.getMode().toUpperCase()+"-OPEN-FILE-"+e.getHash(),action:"size_"+e.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+p})}EditorUi.debug("File.opened",[e]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==e.getMode()&&e.getMode()!=App.MODE_DEVICE&&null!=e.getMode())try{this.addRecent({id:e.getHash(),title:e.getTitle(),mode:e.getMode()})}catch(A){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+
-1),mxSettings.save()}catch(A){}}catch(A){this.fileLoadedError=A;if(null!=e)try{e.close()}catch(E){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=e?e.getHash():"none"),action:"message_"+A.message,label:"stack_"+A.stack})}catch(E){}e=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=k?this.fileLoaded(k)||t():t()});g?e():this.handleError(A,
-mxResources.get("errorLoadingFile"),e,!0,null,null,!0)}else t();return n};EditorUi.prototype.getHashValueForPages=function(e,g){var k=0,n=new mxGraphModel,t=new mxCodec;null!=g&&(g.byteCount=0,g.attrCount=0,g.eltCount=0,g.nodeCount=0);for(var p=0;p<e.length;p++){this.updatePageRoot(e[p]);var A=e[p].node.cloneNode(!1);A.removeAttribute("name");n.root=e[p].root;var E=t.encode(n);this.editor.graph.saveViewState(e[p].viewState,E,!0);E.removeAttribute("pageWidth");E.removeAttribute("pageHeight");A.appendChild(E);
-null!=g&&(g.eltCount+=A.getElementsByTagName("*").length,g.nodeCount+=A.getElementsByTagName("mxCell").length);k=(k<<5)-k+this.hashValue(A,function(y,B,J,N){return!N||"mxGeometry"!=y.nodeName&&"mxPoint"!=y.nodeName||"x"!=B&&"y"!=B&&"width"!=B&&"height"!=B?N&&"mxCell"==y.nodeName&&"previous"==B?null:J:Math.round(J)},g)<<0}return k};EditorUi.prototype.hashValue=function(e,g,k){var n=0;if(null!=e&&"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName&&"function"===typeof e.getAttribute){null!=
-e.nodeName&&(n^=this.hashValue(e.nodeName,g,k));if(null!=e.attributes){null!=k&&(k.attrCount+=e.attributes.length);for(var t=0;t<e.attributes.length;t++){var p=e.attributes[t].name,A=null!=g?g(e,p,e.attributes[t].value,!0):e.attributes[t].value;null!=A&&(n^=this.hashValue(p,g,k)+this.hashValue(A,g,k))}}if(null!=e.childNodes)for(t=0;t<e.childNodes.length;t++)n=(n<<5)-n+this.hashValue(e.childNodes[t],g,k)<<0}else if(null!=e&&"function"!==typeof e){e=String(e);g=0;null!=k&&(k.byteCount+=e.length);for(t=
-0;t<e.length;t++)g=(g<<5)-g+e.charCodeAt(t)<<0;n^=g}return n};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(e,g,k,n,t,p,A){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(e){null==e&&(e=this.emptyLibraryXml);
-this.loadLibrary(new StorageLibrary(this,e,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(e){var g=mxUtils.createXmlDocument(),k=g.createElement("mxlibrary");mxUtils.setTextContent(k,JSON.stringify(e));g.appendChild(k);return mxUtils.getXml(g)};EditorUi.prototype.closeLibrary=function(e){null!=e&&(this.removeLibrarySidebar(e.getHash()),e.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(e.getHash()),".scratchpad"==e.title&&(this.scratchpad=
-null))};EditorUi.prototype.removeLibrarySidebar=function(e){var g=this.sidebar.palettes[e];if(null!=g){for(var k=0;k<g.length;k++)g[k].parentNode.removeChild(g[k]);delete this.sidebar.palettes[e]}};EditorUi.prototype.repositionLibrary=function(e){var g=this.sidebar.container;if(null==e){var k=this.sidebar.palettes["L.scratchpad"];null==k&&(k=this.sidebar.palettes.search);null!=k&&(e=k[k.length-1].nextSibling)}e=null!=e?e:g.firstChild.nextSibling.nextSibling;k=g.lastChild;var n=k.previousSibling;g.insertBefore(k,
-e);g.insertBefore(n,k)};EditorUi.prototype.loadLibrary=function(e,g){var k=mxUtils.parseXml(e.getData());if("mxlibrary"==k.documentElement.nodeName){var n=JSON.parse(mxUtils.getTextContent(k.documentElement));this.libraryLoaded(e,n,k.documentElement.getAttribute("title"),g)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(e){return""};EditorUi.prototype.libraryLoaded=function(e,g,k,n){if(null!=this.sidebar){e.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(e.getHash());
-".scratchpad"==e.title&&(this.scratchpad=e);var t=this.sidebar.palettes[e.getHash()];t=null!=t?t[t.length-1].nextSibling:null;this.removeLibrarySidebar(e.getHash());var p=null,A=mxUtils.bind(this,function(H,F){0==H.length&&e.isEditable()?(null==p&&(p=document.createElement("div"),p.className="geDropTarget",mxUtils.write(p,mxResources.get("dragElementsHere"))),F.appendChild(p)):this.addLibraryEntries(H,F)});null!=this.sidebar&&null!=g&&this.sidebar.addEntries(g);null==k&&(k=e.getTitle(),null!=k&&/(\.xml)$/i.test(k)&&
-(k=k.substring(0,k.lastIndexOf("."))));var E=this.sidebar.addPalette(e.getHash(),k,null!=n?n:!0,mxUtils.bind(this,function(H){A(g,H)}));this.repositionLibrary(t);var y=E.parentNode.previousSibling;n=y.getAttribute("title");null!=n&&0<n.length&&".scratchpad"!=e.title&&y.setAttribute("title",this.getLibraryStorageHint(e)+"\n"+n);var B=document.createElement("div");B.style.position="absolute";B.style.right="0px";B.style.top="0px";B.style.padding="8px";B.style.backgroundColor="inherit";y.style.position=
-"relative";var J=document.createElement("img");J.className="geAdaptiveAsset";J.setAttribute("src",Editor.crossImage);J.setAttribute("title",mxResources.get("close"));J.setAttribute("valign","absmiddle");J.setAttribute("border","0");J.style.position="relative";J.style.top="2px";J.style.width="14px";J.style.cursor="pointer";J.style.margin="0 3px";var N=null;if(".scratchpad"!=e.title||this.closableScratchpad)B.appendChild(J),mxEvent.addListener(J,"click",mxUtils.bind(this,function(H){if(!mxEvent.isConsumed(H)){var F=
+B=window.setTimeout(J,y)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){N();J()}));N();J()}null!=g&&g()});if(null!=e.url&&0<e.url.length){var p=this.editor.getProxiedUrl(e.url);this.editor.loadUrl(p,mxUtils.bind(this,function(A){t(A)}),mxUtils.bind(this,function(A){null!=k&&k(A)}))}else t("")};EditorUi.prototype.updateDiagram=function(e){function g(F){var P=new mxCellOverlay(F.image||t.warningImage,F.tooltip,F.align,F.valign,F.offset);P.addListener(mxEvent.CLICK,function(U,
+T){n.alert(F.tooltip)});return P}var k=null,n=this;if(null!=e&&0<e.length&&(k=mxUtils.parseXml(e),e=null!=k?k.documentElement:null,null!=e&&"updates"==e.nodeName)){var t=this.editor.graph,p=t.getModel();p.beginUpdate();var A=null;try{for(e=e.firstChild;null!=e;){if("update"==e.nodeName){var E=p.getCell(e.getAttribute("id"));if(null!=E){try{var y=e.getAttribute("value");if(null!=y){var B=mxUtils.parseXml(y).documentElement;if(null!=B)if("1"==B.getAttribute("replace-value"))p.setValue(E,B);else for(var J=
+B.attributes,N=0;N<J.length;N++)t.setAttributeForCell(E,J[N].nodeName,0<J[N].nodeValue.length?J[N].nodeValue:null)}}catch(F){null!=window.console&&console.log("Error in value for "+E.id+": "+F)}try{var v=e.getAttribute("style");null!=v&&t.model.setStyle(E,v)}catch(F){null!=window.console&&console.log("Error in style for "+E.id+": "+F)}try{var u=e.getAttribute("icon");if(null!=u){var G=0<u.length?JSON.parse(u):null;null!=G&&G.append||t.removeCellOverlays(E);null!=G&&t.addCellOverlay(E,g(G))}}catch(F){null!=
+window.console&&console.log("Error in icon for "+E.id+": "+F)}try{var I=e.getAttribute("geometry");if(null!=I){I=JSON.parse(I);var M=t.getCellGeometry(E);if(null!=M){M=M.clone();for(key in I){var K=parseFloat(I[key]);"dx"==key?M.x+=K:"dy"==key?M.y+=K:"dw"==key?M.width+=K:"dh"==key?M.height+=K:M[key]=parseFloat(I[key])}t.model.setGeometry(E,M)}}}catch(F){null!=window.console&&console.log("Error in icon for "+E.id+": "+F)}}}else if("model"==e.nodeName){for(var H=e.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=
+H.nextSibling;null!=H&&(new mxCodec(e.firstChild)).decode(H,p)}else if("view"==e.nodeName){if(e.hasAttribute("scale")&&(t.view.scale=parseFloat(e.getAttribute("scale"))),e.hasAttribute("dx")||e.hasAttribute("dy"))t.view.translate=new mxPoint(parseFloat(e.getAttribute("dx")||0),parseFloat(e.getAttribute("dy")||0))}else"fit"==e.nodeName&&(A=e.hasAttribute("max-scale")?parseFloat(e.getAttribute("max-scale")):1);e=e.nextSibling}}finally{p.endUpdate()}null!=A&&this.chromelessResize&&this.chromelessResize(!0,
+A)}return k};EditorUi.prototype.getCopyFilename=function(e,g){var k=null!=e&&null!=e.getTitle()?e.getTitle():this.defaultFilename;e="";var n=k.lastIndexOf(".");0<=n&&(e=k.substring(n),k=k.substring(0,n));if(g){g=k;var t=new Date;k=t.getFullYear();n=t.getMonth()+1;var p=t.getDate(),A=t.getHours(),E=t.getMinutes();t=t.getSeconds();k=g+(" "+(k+"-"+n+"-"+p+"-"+A+"-"+E+"-"+t))}return k=mxResources.get("copyOf",[k])+e};EditorUi.prototype.fileLoaded=function(e,g){var k=this.getCurrentFile();this.fileEditable=
+this.fileLoadedError=null;this.setCurrentFile(null);var n=!1;this.hideDialog();null!=k&&(EditorUi.debug("File.closed",[k]),k.removeListener(this.descriptorChangedListener),k.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var t=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=k&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!g&&null!=window.location.hash&&0<window.location.hash.length&&
+(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();g||this.showSplash()});if(null!=e)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(e);e.addListener("descriptorChanged",this.descriptorChangedListener);e.addListener("contentChanged",this.descriptorChangedListener);e.open();
+delete this.openingFile;this.setGraphEnabled(!0);this.setMode(e.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();e.isEditable()?e.isModified()?(e.addUnsavedStatus(),null!=e.backupPatch&&e.patch([e.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),
+this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));n=!0;if(!this.isOffline()&&null!=e.getMode()){var p="1"==urlParams.sketch?"sketch":uiTheme;if(null==p)p="default";else if("sketch"==p||"min"==p)p+=Editor.isDarkMode()?"-dark":"-light";EditorUi.logEvent({category:e.getMode().toUpperCase()+"-OPEN-FILE-"+e.getHash(),
+action:"size_"+e.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+p})}EditorUi.debug("File.opened",[e]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==e.getMode()&&e.getMode()!=App.MODE_DEVICE&&null!=e.getMode())try{this.addRecent({id:e.getHash(),title:e.getTitle(),mode:e.getMode()})}catch(A){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(A){}}catch(A){this.fileLoadedError=
+A;if(null!=e)try{e.close()}catch(E){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=e?e.getHash():"none"),action:"message_"+A.message,label:"stack_"+A.stack})}catch(E){}e=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=k?this.fileLoaded(k)||t():t()});g?e():this.handleError(A,mxResources.get("errorLoadingFile"),e,!0,null,null,
+!0)}else t();return n};EditorUi.prototype.getHashValueForPages=function(e,g){var k=0,n=new mxGraphModel,t=new mxCodec;null!=g&&(g.byteCount=0,g.attrCount=0,g.eltCount=0,g.nodeCount=0);for(var p=0;p<e.length;p++){this.updatePageRoot(e[p]);var A=e[p].node.cloneNode(!1);A.removeAttribute("name");n.root=e[p].root;var E=t.encode(n);this.editor.graph.saveViewState(e[p].viewState,E,!0);E.removeAttribute("pageWidth");E.removeAttribute("pageHeight");A.appendChild(E);null!=g&&(g.eltCount+=A.getElementsByTagName("*").length,
+g.nodeCount+=A.getElementsByTagName("mxCell").length);k=(k<<5)-k+this.hashValue(A,function(y,B,J,N){return!N||"mxGeometry"!=y.nodeName&&"mxPoint"!=y.nodeName||"x"!=B&&"y"!=B&&"width"!=B&&"height"!=B?N&&"mxCell"==y.nodeName&&"previous"==B?null:J:Math.round(J)},g)<<0}return k};EditorUi.prototype.hashValue=function(e,g,k){var n=0;if(null!=e&&"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName&&"function"===typeof e.getAttribute){null!=e.nodeName&&(n^=this.hashValue(e.nodeName,
+g,k));if(null!=e.attributes){null!=k&&(k.attrCount+=e.attributes.length);for(var t=0;t<e.attributes.length;t++){var p=e.attributes[t].name,A=null!=g?g(e,p,e.attributes[t].value,!0):e.attributes[t].value;null!=A&&(n^=this.hashValue(p,g,k)+this.hashValue(A,g,k))}}if(null!=e.childNodes)for(t=0;t<e.childNodes.length;t++)n=(n<<5)-n+this.hashValue(e.childNodes[t],g,k)<<0}else if(null!=e&&"function"!==typeof e){e=String(e);g=0;null!=k&&(k.byteCount+=e.length);for(t=0;t<e.length;t++)g=(g<<5)-g+e.charCodeAt(t)<<
+0;n^=g}return n};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(e,g,k,n,t,p,A){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(e){null==e&&(e=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,
+e,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(e){var g=mxUtils.createXmlDocument(),k=g.createElement("mxlibrary");mxUtils.setTextContent(k,JSON.stringify(e));g.appendChild(k);return mxUtils.getXml(g)};EditorUi.prototype.closeLibrary=function(e){null!=e&&(this.removeLibrarySidebar(e.getHash()),e.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(e.getHash()),".scratchpad"==e.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=
+function(e){var g=this.sidebar.palettes[e];if(null!=g){for(var k=0;k<g.length;k++)g[k].parentNode.removeChild(g[k]);delete this.sidebar.palettes[e]}};EditorUi.prototype.repositionLibrary=function(e){var g=this.sidebar.container;if(null==e){var k=this.sidebar.palettes["L.scratchpad"];null==k&&(k=this.sidebar.palettes.search);null!=k&&(e=k[k.length-1].nextSibling)}e=null!=e?e:g.firstChild.nextSibling.nextSibling;k=g.lastChild;var n=k.previousSibling;g.insertBefore(k,e);g.insertBefore(n,k)};EditorUi.prototype.loadLibrary=
+function(e,g){var k=mxUtils.parseXml(e.getData());if("mxlibrary"==k.documentElement.nodeName){var n=JSON.parse(mxUtils.getTextContent(k.documentElement));this.libraryLoaded(e,n,k.documentElement.getAttribute("title"),g)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(e){return""};EditorUi.prototype.libraryLoaded=function(e,g,k,n){if(null!=this.sidebar){e.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(e.getHash());".scratchpad"==e.title&&
+(this.scratchpad=e);var t=this.sidebar.palettes[e.getHash()];t=null!=t?t[t.length-1].nextSibling:null;this.removeLibrarySidebar(e.getHash());var p=null,A=mxUtils.bind(this,function(H,F){0==H.length&&e.isEditable()?(null==p&&(p=document.createElement("div"),p.className="geDropTarget",mxUtils.write(p,mxResources.get("dragElementsHere"))),F.appendChild(p)):this.addLibraryEntries(H,F)});null!=this.sidebar&&null!=g&&this.sidebar.addEntries(g);null==k&&(k=e.getTitle(),null!=k&&/(\.xml)$/i.test(k)&&(k=k.substring(0,
+k.lastIndexOf("."))));var E=this.sidebar.addPalette(e.getHash(),k,null!=n?n:!0,mxUtils.bind(this,function(H){A(g,H)}));this.repositionLibrary(t);var y=E.parentNode.previousSibling;n=y.getAttribute("title");null!=n&&0<n.length&&".scratchpad"!=e.title&&y.setAttribute("title",this.getLibraryStorageHint(e)+"\n"+n);var B=document.createElement("div");B.style.position="absolute";B.style.right="0px";B.style.top="0px";B.style.padding="8px";B.style.backgroundColor="inherit";y.style.position="relative";var J=
+document.createElement("img");J.className="geAdaptiveAsset";J.setAttribute("src",Editor.crossImage);J.setAttribute("title",mxResources.get("close"));J.setAttribute("valign","absmiddle");J.setAttribute("border","0");J.style.position="relative";J.style.top="2px";J.style.width="14px";J.style.cursor="pointer";J.style.margin="0 3px";var N=null;if(".scratchpad"!=e.title||this.closableScratchpad)B.appendChild(J),mxEvent.addListener(J,"click",mxUtils.bind(this,function(H){if(!mxEvent.isConsumed(H)){var F=
mxUtils.bind(this,function(){this.closeLibrary(e)});null!=N?this.confirm(mxResources.get("allChangesLost"),null,F,mxResources.get("cancel"),mxResources.get("discardChanges")):F();mxEvent.consume(H)}}));if(e.isEditable()){var v=this.editor.graph,u=null,G=mxUtils.bind(this,function(H){this.showLibraryDialog(e.getTitle(),E,g,e,e.getMode());mxEvent.consume(H)}),I=mxUtils.bind(this,function(H){e.setModified(!0);e.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=J.cloneNode(!1),
u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",B.insertBefore(u,B.firstChild),y.style.paddingRight=18*B.childNodes.length+"px",this.saveLibrary(e.getTitle(),g,e,e.getMode(),!0,!0,function(){null!=u&&null!=u.parentNode&&(u.parentNode.removeChild(u),y.style.paddingRight=18*B.childNodes.length+"px")})):null==N&&(N=J.cloneNode(!1),N.setAttribute("src",Editor.saveImage),N.setAttribute("title",
mxResources.get("save")),B.insertBefore(N,B.firstChild),mxEvent.addListener(N,"click",mxUtils.bind(this,function(F){this.saveLibrary(e.getTitle(),g,e,e.getMode(),e.constructor==LocalLibrary,!0,function(){null==N||e.isModified()||(y.style.paddingRight=18*B.childNodes.length+"px",N.parentNode.removeChild(N),N=null)});mxEvent.consume(F)})),y.style.paddingRight=18*B.childNodes.length+"px")}),M=mxUtils.bind(this,function(H,F,P,U){H=v.cloneCells(mxUtils.sortCells(v.model.getTopmostCells(H)));for(var T=
diff --git a/src/main/webapp/js/diagramly/Dialogs.js b/src/main/webapp/js/diagramly/Dialogs.js
index 2098debf..ddf15d06 100644
--- a/src/main/webapp/js/diagramly/Dialogs.js
+++ b/src/main/webapp/js/diagramly/Dialogs.js
@@ -4036,7 +4036,7 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
{
if (fileUrl != null && fileUrl.length > 0)
{
- editorUi.editor.loadUrl(fileUrl, function(data)
+ editorUi.editor.loadUrl(editorUi.editor.getProxiedUrl(fileUrl), function(data)
{
templateXml = data;
templateLibs = null;
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index f9aea8f0..8fe307a7 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -2512,11 +2512,14 @@
};
/**
- * Returns an URL that is proxied if the given URL is blocked.
+ * Returns an URL that is proxied if the given URL is blocked. Uses
+ * direct URL if no CSP is used as proxy blocks unknown text content.
*/
Editor.prototype.getProxiedUrl = function(url)
{
- if (!this.isCorsEnabledForUrl(url))
+ if ((/test\.draw\.io$/.test(window.location.hostname) ||
+ /app\.diagrams\.net$/.test(window.location.hostname)) &&
+ !this.isCorsEnabledForUrl(url))
{
var isVisioFilename = /(\.v(dx|sdx?))($|\?)/i.test(url) ||
/(\.vs(x|sx?))($|\?)/i.test(url);
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 8c3252f5..c915e2da 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -2295,14 +2295,7 @@
if (desc.url != null && desc.url.length > 0)
{
- var url = desc.url;
-
- // Bypass proxy if no CSP is used as it blocks unknown text content
- if ((/test\.draw\.io$/.test(window.location.hostname)) ||
- (/app\.diagrams\.net$/.test(window.location.hostname)))
- {
- url = this.editor.getProxiedUrl(url);
- }
+ var url = this.editor.getProxiedUrl(desc.url);
// LATER: Remove cache-control header
this.editor.loadUrl(url, mxUtils.bind(this, function(data)
diff --git a/src/main/webapp/js/integrate.min.js b/src/main/webapp/js/integrate.min.js
index 848cb650..64cc1e72 100644
--- a/src/main/webapp/js/integrate.min.js
+++ b/src/main/webapp/js/integrate.min.js
@@ -470,7 +470,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,ADD_ATTR:["target","content"]};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;
-window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -10968,15 +10968,15 @@ DrawioFile.prototype.getShadowPages=function(){null==this.shadowPages&&(this.sha
DrawioFile.prototype.updateFile=function(b,f,k,d){null!=k&&k()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=f&&f():this.getLatestVersion(mxUtils.bind(this,function(v){try{null!=k&&k()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum,"latestFile",[v]),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=f&&f():null!=v?this.mergeFile(v,b,f,d):this.reloadFile(b,
f))}catch(x){null!=f&&f(x)}}),f))};
DrawioFile.prototype.mergeFile=function(b,f,k,d){var v=!0;try{this.stats.fileMerged++;var x=this.getShadowPages(),B=b.getShadowPages();if(null!=B&&0<B.length){var D=[this.ui.diffPages(null!=d?d:x,B)],K=this.ignorePatches(D);this.setShadowPages(B);if(K)EditorUi.debug("File.mergeFile",[this],"file",[b],"ignored",K);else{null!=this.sync&&this.sync.sendLocalChanges();this.backupPatch=this.isModified()?this.ui.diffPages(x,this.ui.pages):null;d={};K={};var c=this.ui.patchPages(x,D[0]),e=this.ui.getHashValueForPages(c,
-d),g=this.ui.getHashValueForPages(B,K);EditorUi.debug("File.mergeFile",[this],"file",[b],"shadow",x,"pages",this.ui.pages,"patches",D,"backup",this.backupPatch,"checksum",e,"current",g,"valid",e==g,"from",this.getCurrentRevisionId(),"to",b.getCurrentRevisionId(),"modified",this.isModified());if(null!=e&&e!=g){var q=this.compressReportData(this.getAnonymizedXmlForPages(B)),n=this.compressReportData(this.getAnonymizedXmlForPages(c)),m=this.ui.hashValue(b.getCurrentEtag()),z=this.ui.hashValue(this.getCurrentEtag());
-this.checksumError(k,D,"Shadow Details: "+JSON.stringify(d)+"\nChecksum: "+e+"\nCurrent: "+g+"\nCurrent Details: "+JSON.stringify(K)+"\nFrom: "+m+"\nTo: "+z+"\n\nFile Data:\n"+q+"\nPatched Shadow:\n"+n,null,"mergeFile",e,g,b.getCurrentRevisionId());return}if(null!=this.sync){var C=this.sync.patchRealtime(D,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null);null==C||mxUtils.isEmptyObject(C)||D.push(C)}this.patch(D,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw v=!1,Error(mxResources.get("notADiagramFile"));
+d),g=this.ui.getHashValueForPages(B,K);EditorUi.debug("File.mergeFile",[this],"file",[b],"shadow",x,"pages",this.ui.pages,"patches",D,"backup",this.backupPatch,"checksum",e,"current",g,"valid",e==g,"from",this.getCurrentRevisionId(),"to",b.getCurrentRevisionId(),"modified",this.isModified());if(null!=e&&e!=g){var q=this.compressReportData(this.getAnonymizedXmlForPages(B)),m=this.compressReportData(this.getAnonymizedXmlForPages(c)),n=this.ui.hashValue(b.getCurrentEtag()),z=this.ui.hashValue(this.getCurrentEtag());
+this.checksumError(k,D,"Shadow Details: "+JSON.stringify(d)+"\nChecksum: "+e+"\nCurrent: "+g+"\nCurrent Details: "+JSON.stringify(K)+"\nFrom: "+n+"\nTo: "+z+"\n\nFile Data:\n"+q+"\nPatched Shadow:\n"+m,null,"mergeFile",e,g,b.getCurrentRevisionId());return}if(null!=this.sync){var C=this.sync.patchRealtime(D,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null);null==C||mxUtils.isEmptyObject(C)||D.push(C)}this.patch(D,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw v=!1,Error(mxResources.get("notADiagramFile"));
this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=f&&f()}catch(I){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=k&&k(I);try{if(v)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,I);else{var u=this.getCurrentUser(),y=null!=u?u.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),y,I)}}catch(N){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var f=new mxCodec(mxUtils.createXmlDocument()),k=f.document.createElement("mxfile");if(null!=b)for(var d=0;d<b.length;d++){var v=f.encode(new mxGraphModel(b[d].root));"1"!=urlParams.dev&&(v=this.ui.anonymizeNode(v,!0));v.setAttribute("id",b[d].getId());b[d].viewState&&this.ui.editor.graph.saveViewState(b[d].viewState,v,!0);k.appendChild(v)}return mxUtils.getPrettyXml(k)};
DrawioFile.prototype.compressReportData=function(b,f,k){f=null!=f?f:1E4;null!=k&&null!=b&&b.length>k?b=b.substring(0,k)+"[...]":null!=b&&b.length>f&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,f,k,d,v,x,B,D){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{if(this.errorReportsEnabled){if(null!=f)for(var K=0;K<f.length;K++)this.ui.anonymizePatch(f[K]);var c=mxUtils.bind(this,function(z){var C=this.compressReportData(JSON.stringify(f,null,2));z=null==z?"n/a":this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForXml(z.data)),
-25E3);this.sendErrorReport("Checksum Error in "+v+" "+this.getHash(),(null!=k?k:"")+"\n\nPatches:\n"+C+(null!=z?"\n\nRemote:\n"+z:""),null,7E4)});null==d?c(null):this.getLatestVersion(mxUtils.bind(this,function(z){null!=z&&z.getCurrentEtag()==d?c(z):c(null)}),function(){})}else{var e=this.getCurrentUser(),g=null!=e?e.id:"unknown",q=""!=this.getId()?this.getId():"("+this.ui.hashValue(this.getTitle())+")",n=JSON.stringify(f).length,m=null;if(null!=f&&this.constructor==DriveFile&&400>n){for(K=0;K<f.length;K++)this.ui.anonymizePatch(f[K]);
-m=JSON.stringify(f);m=null!=m&&250>m.length?Graph.compress(m):null}this.getLatestVersion(mxUtils.bind(this,function(z){try{var C=null!=m?"Report":"Error",u=this.ui.getHashValueForPages(z.getShadowPages());EditorUi.logError("Checksum "+C+" in "+v+" "+q,null,this.getMode()+"."+this.getId(),"user_"+g+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+n+"-patches_"+f.length+(null!=m?"-json_"+m:"")+"-size_"+this.getSize()+(null!=x?"-expected_"+x:"")+(null!=B?"-current_"+B:"")+(null!=D?
-"-rev_"+this.ui.hashValue(D):"")+(null!=u?"-latest_"+u:"")+(null!=z?"-latestRev_"+this.ui.hashValue(z.getCurrentRevisionId()):""));EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+q,action:v,label:"user_"+g+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+n+"-patches_"+f.length+"-size_"+this.getSize()})}catch(y){}}),b)}}catch(z){}};
+25E3);this.sendErrorReport("Checksum Error in "+v+" "+this.getHash(),(null!=k?k:"")+"\n\nPatches:\n"+C+(null!=z?"\n\nRemote:\n"+z:""),null,7E4)});null==d?c(null):this.getLatestVersion(mxUtils.bind(this,function(z){null!=z&&z.getCurrentEtag()==d?c(z):c(null)}),function(){})}else{var e=this.getCurrentUser(),g=null!=e?e.id:"unknown",q=""!=this.getId()?this.getId():"("+this.ui.hashValue(this.getTitle())+")",m=JSON.stringify(f).length,n=null;if(null!=f&&this.constructor==DriveFile&&400>m){for(K=0;K<f.length;K++)this.ui.anonymizePatch(f[K]);
+n=JSON.stringify(f);n=null!=n&&250>n.length?Graph.compress(n):null}this.getLatestVersion(mxUtils.bind(this,function(z){try{var C=null!=n?"Report":"Error",u=this.ui.getHashValueForPages(z.getShadowPages());EditorUi.logError("Checksum "+C+" in "+v+" "+q,null,this.getMode()+"."+this.getId(),"user_"+g+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+m+"-patches_"+f.length+(null!=n?"-json_"+n:"")+"-size_"+this.getSize()+(null!=x?"-expected_"+x:"")+(null!=B?"-current_"+B:"")+(null!=D?
+"-rev_"+this.ui.hashValue(D):"")+(null!=u?"-latest_"+u:"")+(null!=z?"-latestRev_"+this.ui.hashValue(z.getCurrentRevisionId()):""));EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+q,action:v,label:"user_"+g+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+m+"-patches_"+f.length+"-size_"+this.getSize()})}catch(y){}}),b)}}catch(z){}};
DrawioFile.prototype.sendErrorReport=function(b,f,k,d){try{var v=this.compressReportData(this.getAnonymizedXmlForPages(this.getShadowPages()),25E3),x=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),B=this.getCurrentUser(),D=null!=B?this.ui.hashValue(B.id):"unknown",K=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",c=this.getTitle(),e=c.lastIndexOf(".");B="xml";0<e&&(B=c.substring(e));var g=null!=k?k.stack:Error().stack;EditorUi.sendReport(b+" "+(new Date).toISOString()+
":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+B+")\nUser="+D+K+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=f?"\n\n"+f:
"")+(null!=k?"\n\nError: "+k.message:"")+"\n\nStack:\n"+g+"\n\nShadow:\n"+v+"\n\nData:\n"+x,d)}catch(q){}};
@@ -11042,8 +11042,8 @@ DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.proto
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(b,f,k){this.saveAs(this.title,f,k)};LocalFile.prototype.saveAs=function(b,f,k){this.saveFile(b,!1,f,k)};LocalFile.prototype.saveAs=function(b,f,k){this.saveFile(b,!1,f,k)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(b){this.desc=b};
LocalFile.prototype.getLatestVersion=function(b,f){null==this.fileHandle?b(null):this.ui.loadFileSystemEntry(this.fileHandle,b,f)};
LocalFile.prototype.saveFile=function(b,f,k,d,v){b!=this.title&&(this.desc=this.fileHandle=null);this.title=b;v||this.updateFileData();var x=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var B=this.getData(),D=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=k&&k()}),K=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var e=mxUtils.bind(this,
-function(q){this.savingFile=!1;null!=d&&d({error:q})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(q){this.fileHandle.getFile().then(mxUtils.bind(this,function(n){this.invalidFileHandle=null;EditorUi.debug("LocalFile.saveFile",[this],"desc",[this.desc],"newDesc",[n],"conflict",this.desc.lastModified!=n.lastModified);this.desc.lastModified==n.lastModified?q.write(x?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){q.close().then(mxUtils.bind(this,
-function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(m){try{var z=this.desc;this.savingFile=!1;this.desc=m;this.fileSaved(B,z,D,e);this.removeDraft()}catch(C){e(C)}}),e)}),e)}),e):(this.inConflictState=!0,e())}),mxUtils.bind(this,function(n){this.invalidFileHandle=!0;e(n)}))}),e)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,x?"image/png":"text/xml",x);else if(c.length<MAX_REQUEST_SIZE){var g=b.lastIndexOf(".");g=0<g?b.substring(g+1):"xml";
+function(q){this.savingFile=!1;null!=d&&d({error:q})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(q){this.fileHandle.getFile().then(mxUtils.bind(this,function(m){this.invalidFileHandle=null;EditorUi.debug("LocalFile.saveFile",[this],"desc",[this.desc],"newDesc",[m],"conflict",this.desc.lastModified!=m.lastModified);this.desc.lastModified==m.lastModified?q.write(x?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){q.close().then(mxUtils.bind(this,
+function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(n){try{var z=this.desc;this.savingFile=!1;this.desc=n;this.fileSaved(B,z,D,e);this.removeDraft()}catch(C){e(C)}}),e)}),e)}),e):(this.inConflictState=!0,e())}),mxUtils.bind(this,function(m){this.invalidFileHandle=!0;e(m)}))}),e)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,x?"image/png":"text/xml",x);else if(c.length<MAX_REQUEST_SIZE){var g=b.lastIndexOf(".");g=0<g?b.substring(g+1):"xml";
(new mxXmlRequest(SAVE_URL,"format="+g+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(b)+(x?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));D()}});x?(f=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(c){K(c)}),d,this.ui.getCurrentFile()!=this?B:null,f.scale,f.border)):K(B)};
LocalFile.prototype.rename=function(b,f,k){this.title=b;this.descriptorChanged();null!=f&&f()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};LocalLibrary=function(b,f,k){LocalFile.call(this,b,f,k)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(b,f,k){this.saveFile(b,!1,f,k)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(b,f,k){DrawioFile.call(this,b,f);this.title=k};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.type="F";StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title};
StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.save=function(b,f,k){this.saveAs(this.getTitle(),f,k)};StorageFile.prototype.saveAs=function(b,f,k){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(b,!1,f,k)};
@@ -11059,11 +11059,11 @@ StorageFile.listFiles=function(b,f,k,d){b.getDatabaseItems(function(v){var x=[];
StorageLibrary.prototype.isRenamable=function(b,f,k){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};RemoteFile=function(b,f,k){DrawioFile.call(this,b,f);this.title=k;this.mode=null};mxUtils.extend(RemoteFile,DrawioFile);RemoteFile.prototype.isAutosave=function(){return!1};RemoteFile.prototype.getMode=function(){return this.mode};RemoteFile.prototype.getTitle=function(){return this.title};RemoteFile.prototype.isRenamable=function(){return!1};RemoteFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};RemoteLibrary=function(b,f,k){RemoteFile.call(this,b,f,k.title);this.libObj=k};mxUtils.extend(RemoteLibrary,LocalFile);RemoteLibrary.prototype.getHash=function(){return"R"+encodeURIComponent(JSON.stringify([this.libObj.id,this.libObj.title,this.libObj.downloadUrl]))};RemoteLibrary.prototype.isEditable=function(){return!1};RemoteLibrary.prototype.isRenamable=function(){return!1};RemoteLibrary.prototype.isAutosave=function(){return!1};RemoteLibrary.prototype.save=function(b,f,k){};
RemoteLibrary.prototype.saveAs=function(b,f,k){};RemoteLibrary.prototype.updateFileData=function(){};RemoteLibrary.prototype.open=function(){};UrlLibrary=function(b,f,k){StorageFile.call(this,b,f,k);b=k;f=b.lastIndexOf("/");0<=f&&(b=b.substring(f+1));this.fname=b};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(b,f,k){return!1};UrlLibrary.prototype.saveAs=function(b,f,k){};UrlLibrary.prototype.open=function(){};EmbedFile=function(b,f,k){DrawioFile.call(this,b,f);this.desc=k||{};this.mode=App.MODE_EMBED};mxUtils.extend(EmbedFile,DrawioFile);EmbedFile.prototype.getMode=function(){return this.mode};EmbedFile.prototype.getTitle=function(){return this.desc.title||""};/*
mxClient.IS_IOS || */
-var StorageDialog=function(b,f,k){function d(g,q,n,m,z,C){function u(){mxEvent.addListener(y,"click",null!=C?C:function(){n!=App.MODE_GOOGLE||b.isDriveDomain()?n==App.MODE_GOOGLE&&b.spinner.spin(document.body,mxResources.get("authorizing"))?b.drive.checkToken(mxUtils.bind(this,function(){b.spinner.stop();b.setMode(n,!0);f()})):n==App.MODE_ONEDRIVE&&b.spinner.spin(document.body,mxResources.get("authorizing"))?b.oneDrive.checkToken(mxUtils.bind(this,function(){b.spinner.stop();b.setMode(n,!0);f()}),
-function(F){b.spinner.stop();b.handleError(F)}):(b.setMode(n,!0),f()):window.location.hostname=DriveClient.prototype.newAppHostname})}D++;++B>k&&(mxUtils.br(K),B=1);var y=document.createElement("a");y.style.overflow="hidden";y.style.display="inline-block";y.className="geBaseButton";y.style.boxSizing="border-box";y.style.fontSize="11px";y.style.position="relative";y.style.margin="4px";y.style.marginTop="8px";y.style.marginBottom="0px";y.style.padding="8px 10px 8px 10px";y.style.width="88px";y.style.height=
+var StorageDialog=function(b,f,k){function d(g,q,m,n,z,C){function u(){mxEvent.addListener(y,"click",null!=C?C:function(){m!=App.MODE_GOOGLE||b.isDriveDomain()?m==App.MODE_GOOGLE&&b.spinner.spin(document.body,mxResources.get("authorizing"))?b.drive.checkToken(mxUtils.bind(this,function(){b.spinner.stop();b.setMode(m,!0);f()})):m==App.MODE_ONEDRIVE&&b.spinner.spin(document.body,mxResources.get("authorizing"))?b.oneDrive.checkToken(mxUtils.bind(this,function(){b.spinner.stop();b.setMode(m,!0);f()}),
+function(F){b.spinner.stop();b.handleError(F)}):(b.setMode(m,!0),f()):window.location.hostname=DriveClient.prototype.newAppHostname})}D++;++B>k&&(mxUtils.br(K),B=1);var y=document.createElement("a");y.style.overflow="hidden";y.style.display="inline-block";y.className="geBaseButton";y.style.boxSizing="border-box";y.style.fontSize="11px";y.style.position="relative";y.style.margin="4px";y.style.marginTop="8px";y.style.marginBottom="0px";y.style.padding="8px 10px 8px 10px";y.style.width="88px";y.style.height=
"100px";y.style.whiteSpace="nowrap";y.setAttribute("title",q);var I=document.createElement("div");I.style.textOverflow="ellipsis";I.style.overflow="hidden";I.style.position="absolute";I.style.bottom="8px";I.style.left="0px";I.style.right="0px";mxUtils.write(I,q);y.appendChild(I);if(null!=g){var N=document.createElement("img");N.setAttribute("src",g);N.setAttribute("border","0");N.setAttribute("align","absmiddle");N.style.width="60px";N.style.height="60px";N.style.paddingBottom="6px";y.appendChild(N)}else I.style.paddingTop=
-"5px",I.style.whiteSpace="normal",mxClient.IS_IOS?(y.style.padding="0px 10px 20px 10px",y.style.top="6px"):mxClient.IS_FF&&(I.style.paddingTop="0px",I.style.marginTop="-2px");if(null!=z)for(g=0;g<z.length;g++)mxUtils.br(I),mxUtils.write(I,z[g]);if(null!=m&&null==b[m]){N.style.visibility="hidden";mxUtils.setOpacity(I,10);var t=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});t.spin(y);
-var p=window.setTimeout(function(){null==b[m]&&(t.stop(),y.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(F,J){null!=b[m]&&J.getProperty("client")==b[m]&&(window.clearTimeout(p),mxUtils.setOpacity(I,100),N.style.visibility="",t.stop(),u(),"drive"==m&&null!=c.parentNode&&c.parentNode.removeChild(c))}))}else u();K.appendChild(y)}k=null!=k?k:2;var v=document.createElement("div");v.style.textAlign="center";v.style.whiteSpace="nowrap";v.style.paddingTop="0px";v.style.paddingBottom=
+"5px",I.style.whiteSpace="normal",mxClient.IS_IOS?(y.style.padding="0px 10px 20px 10px",y.style.top="6px"):mxClient.IS_FF&&(I.style.paddingTop="0px",I.style.marginTop="-2px");if(null!=z)for(g=0;g<z.length;g++)mxUtils.br(I),mxUtils.write(I,z[g]);if(null!=n&&null==b[n]){N.style.visibility="hidden";mxUtils.setOpacity(I,10);var t=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});t.spin(y);
+var p=window.setTimeout(function(){null==b[n]&&(t.stop(),y.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(F,J){null!=b[n]&&J.getProperty("client")==b[n]&&(window.clearTimeout(p),mxUtils.setOpacity(I,100),N.style.visibility="",t.stop(),u(),"drive"==n&&null!=c.parentNode&&c.parentNode.removeChild(c))}))}else u();K.appendChild(y)}k=null!=k?k:2;var v=document.createElement("div");v.style.textAlign="center";v.style.whiteSpace="nowrap";v.style.paddingTop="0px";v.style.paddingBottom=
"20px";var x=document.createElement("div");x.style.border="1px solid #d3d3d3";x.style.borderWidth="1px 0px 1px 0px";x.style.padding="10px 0px 20px 0px";var B=0,D=0,K=document.createElement("div");K.style.paddingTop="2px";x.appendChild(K);var c=document.createElement("p"),e=document.createElement("p");e.style.cssText="font-size:22px;padding:4px 0 16px 0;margin:0;color:gray;";mxUtils.write(e,mxResources.get("saveDiagramsTo")+":");v.appendChild(e);v.appendChild(x);B=0;"function"===typeof window.DriveClient&&
d(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&d(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");"1"!=urlParams.noDevice&&d(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||d(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);"function"===typeof window.DropboxClient&&
d(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox");null!=b.gitHub&&d(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub");null!=b.gitLab&&d(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab");x=document.createElement("span");x.style.position="absolute";x.style.cursor="pointer";x.style.bottom="27px";x.style.color="gray";x.style.userSelect="none";x.style.textAlign="center";x.style.left="50%";mxUtils.setPrefixedStyle(x.style,
@@ -11075,30 +11075,30 @@ b.addLanguageMenu(f,!0);null!=k&&(k.style.bottom="19px")}var d=document.createEl
D=document.createElement("tbody"),K=document.createElement("tr"),c=document.createElement("td"),e=document.createElement("td");B.setAttribute("align","center");c.appendChild(d);d=document.createElement("div");d.style.fontSize="22px";d.style.paddingBottom="6px";d.style.color="gray";mxUtils.write(d,k);e.style.textAlign="left";e.appendChild(d);K.appendChild(c);K.appendChild(e);D.appendChild(K);B.appendChild(D);f.appendChild(B);k=document.createElement("span");k.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";
mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,0)");mxUtils.write(k,mxResources.get("changeStorage"));mxEvent.addListener(k,"click",function(){b.hideDialog(!1);b.setMode(null);b.clearMode();b.showSplash(!0)});f.appendChild(k)}mxUtils.write(x,mxResources.get("createNewDiagram"));mxEvent.addListener(x,"click",function(){b.hideDialog();b.actions.get("new").funct()});v.appendChild(x);mxUtils.br(v);x=document.createElement("button");x.className="geBigButton";x.style.marginBottom="22px";x.style.fontSize=
"18px";x.style.padding="10px";x.style.width="340px";mxUtils.write(x,mxResources.get("openExistingDiagram"));mxEvent.addListener(x,"click",function(){b.actions.get("open").funct()});v.appendChild(x);b.mode==App.MODE_GOOGLE?mxResources.get("googleDrive"):b.mode==App.MODE_DROPBOX?mxResources.get("dropbox"):b.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):b.mode==App.MODE_GITHUB?mxResources.get("github"):b.mode==App.MODE_GITLAB?mxResources.get("gitlab"):b.mode==App.MODE_TRELLO?mxResources.get("trello"):
-b.mode==App.MODE_DEVICE?mxResources.get("device"):b.mode==App.MODE_BROWSER&&mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(k=function(n){x.style.marginBottom="24px";var m=document.createElement("a");m.style.display="inline-block";m.style.color="gray";m.style.cursor="pointer";m.style.marginTop="6px";mxUtils.write(m,mxResources.get("signOut"));x.style.marginBottom="16px";v.style.paddingBottom="18px";mxEvent.addListener(m,"click",function(){b.confirm(mxResources.get("areYouSure"),
-function(){n()})});v.appendChild(m)},b.mode==App.MODE_GOOGLE&&null!=b.drive){var g=b.drive.getUsersList();if(0<g.length){d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+":");x.style.marginBottom="16px";v.style.paddingBottom="18px";v.appendChild(d);var q=document.createElement("select");q.style.marginLeft="4px";q.style.width="140px";for(k=0;k<g.length;k++)B=document.createElement("option"),mxUtils.write(B,g[k].displayName),B.value=k,q.appendChild(B),
-B=document.createElement("option"),B.innerHTML="&nbsp;&nbsp;&nbsp;",mxUtils.write(B,"<"+g[k].email+">"),B.setAttribute("disabled","disabled"),q.appendChild(B);B=document.createElement("option");mxUtils.write(B,mxResources.get("addAccount"));B.value=g.length;q.appendChild(B);mxEvent.addListener(q,"change",function(){var n=q.value,m=g.length!=n;m&&b.drive.setUser(g[n]);b.drive.authorize(m,function(){b.setMode(App.MODE_GOOGLE);b.hideDialog();b.showSplash()},function(z){b.handleError(z,null,function(){b.hideDialog();
+b.mode==App.MODE_DEVICE?mxResources.get("device"):b.mode==App.MODE_BROWSER&&mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(k=function(m){x.style.marginBottom="24px";var n=document.createElement("a");n.style.display="inline-block";n.style.color="gray";n.style.cursor="pointer";n.style.marginTop="6px";mxUtils.write(n,mxResources.get("signOut"));x.style.marginBottom="16px";v.style.paddingBottom="18px";mxEvent.addListener(n,"click",function(){b.confirm(mxResources.get("areYouSure"),
+function(){m()})});v.appendChild(n)},b.mode==App.MODE_GOOGLE&&null!=b.drive){var g=b.drive.getUsersList();if(0<g.length){d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+":");x.style.marginBottom="16px";v.style.paddingBottom="18px";v.appendChild(d);var q=document.createElement("select");q.style.marginLeft="4px";q.style.width="140px";for(k=0;k<g.length;k++)B=document.createElement("option"),mxUtils.write(B,g[k].displayName),B.value=k,q.appendChild(B),
+B=document.createElement("option"),B.innerHTML="&nbsp;&nbsp;&nbsp;",mxUtils.write(B,"<"+g[k].email+">"),B.setAttribute("disabled","disabled"),q.appendChild(B);B=document.createElement("option");mxUtils.write(B,mxResources.get("addAccount"));B.value=g.length;q.appendChild(B);mxEvent.addListener(q,"change",function(){var m=q.value,n=g.length!=m;n&&b.drive.setUser(g[m]);b.drive.authorize(n,function(){b.setMode(App.MODE_GOOGLE);b.hideDialog();b.showSplash()},function(z){b.handleError(z,null,function(){b.hideDialog();
b.showSplash()})},!0)});v.appendChild(q)}else k(function(){b.drive.logout()})}else b.mode!=App.MODE_ONEDRIVE||null==b.oneDrive||b.oneDrive.noLogout?b.mode==App.MODE_GITHUB&&null!=b.gitHub?k(function(){b.gitHub.logout();b.openLink("https://www.github.com/logout")}):b.mode==App.MODE_GITLAB&&null!=b.gitLab?k(function(){b.gitLab.logout();b.openLink(DRAWIO_GITLAB_URL+"/users/sign_out")}):b.mode==App.MODE_TRELLO&&null!=b.trello?b.trello.isAuthorized()&&k(function(){b.trello.logout()}):b.mode==App.MODE_DROPBOX&&
null!=b.dropbox&&k(function(){b.dropbox.logout();b.openLink("https://www.dropbox.com/logout")}):k(function(){b.oneDrive.logout()});f.appendChild(v);this.container=f},EmbedDialog=function(b,f,k,d,v,x,B,D,K){B=null!=B?B:"Check out the diagram I made using @drawio";d=document.createElement("div");var c=/^https?:\/\//.test(f)||/^mailto:\/\//.test(f);null!=x?mxUtils.write(d,x):mxUtils.write(d,mxResources.get(5E5>f.length?c?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(d);x=document.createElement("div");
x.style.position="absolute";x.style.top="30px";x.style.right="30px";x.style.color="gray";mxUtils.write(x,b.formatFileSize(f.length));d.appendChild(x);var e=document.createElement("textarea");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck","false");e.style.fontFamily="monospace";e.style.wordBreak="break-all";e.style.marginTop="10px";e.style.resize="none";e.style.height="150px";e.style.width="440px";e.style.border=
"1px solid gray";e.value=mxResources.get("updatingDocument");d.appendChild(e);mxUtils.br(d);this.init=function(){window.setTimeout(function(){5E5>f.length?(e.value=f,e.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():document.execCommand("selectAll",!1,null)):(e.setAttribute("readonly","true"),e.value=mxResources.get("tooLargeUseDownload"))},0)};x=document.createElement("div");x.style.position="absolute";x.style.bottom="36px";x.style.right="32px";var g=null;!EmbedDialog.showPreviewOption||
-mxClient.IS_CHROMEAPP&&!c||navigator.standalone||!(c||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(g=mxUtils.button(null!=D?D:mxResources.get(5E5>f.length?"preview":"openInNewWindow"),function(){var n=5E5>f.length?e.value:f;if(null!=v)v(n);else if(c)try{var m=b.openLink(n);null!=m&&(null==k||0<k)&&window.setTimeout(mxUtils.bind(this,function(){try{null!=m&&null!=m.location.href&&m.location.href.substring(0,8)!=n.substring(0,8)&&(m.close(),b.handleError({message:mxResources.get("drawingTooLarge")}))}catch(C){}}),
+mxClient.IS_CHROMEAPP&&!c||navigator.standalone||!(c||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(g=mxUtils.button(null!=D?D:mxResources.get(5E5>f.length?"preview":"openInNewWindow"),function(){var m=5E5>f.length?e.value:f;if(null!=v)v(m);else if(c)try{var n=b.openLink(m);null!=n&&(null==k||0<k)&&window.setTimeout(mxUtils.bind(this,function(){try{null!=n&&null!=n.location.href&&n.location.href.substring(0,8)!=m.substring(0,8)&&(n.close(),b.handleError({message:mxResources.get("drawingTooLarge")}))}catch(C){}}),
k||500)}catch(C){b.handleError({message:C.message||mxResources.get("drawingTooLarge")})}else{var z=window.open();z=null!=z?z.document:null;null!=z?(z.writeln("<html><head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head><body>'+f+"</body></html>"),z.close()):b.handleError({message:mxResources.get("errorUpdatingPreview")})}}),g.className="geBtn",x.appendChild(g));if(!c||7500<f.length)D=mxUtils.button(mxResources.get("download"),function(){b.hideDialog();
-b.saveData(null!=K?K:"embed.txt","txt",f,"text/plain")}),D.className="geBtn",x.appendChild(D);if(c&&(!b.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>f.length){var q=mxUtils.button("",function(){try{var n="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(e.value);b.openLink(n)}catch(m){b.handleError({message:m.message||mxResources.get("drawingTooLarge")})}});D=document.createElement("img");D.setAttribute("src",Editor.facebookImage);D.setAttribute("width","18");D.setAttribute("height",
-"18");D.setAttribute("border","0");q.appendChild(D);q.setAttribute("title",mxResources.get("facebook")+" ("+b.formatFileSize(51200)+" max)");q.style.verticalAlign="bottom";q.style.paddingTop="4px";q.style.minWidth="46px";q.className="geBtn";x.appendChild(q)}7168>f.length&&(q=mxUtils.button("",function(){try{var n="https://twitter.com/intent/tweet?text="+encodeURIComponent(B)+"&url="+encodeURIComponent(e.value);b.openLink(n)}catch(m){b.handleError({message:m.message||mxResources.get("drawingTooLarge")})}}),
-D=document.createElement("img"),D.setAttribute("src",Editor.tweetImage),D.setAttribute("width","18"),D.setAttribute("height","18"),D.setAttribute("border","0"),D.style.marginBottom="5px",q.appendChild(D),q.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+" max)"),q.style.verticalAlign="bottom",q.style.paddingTop="4px",q.style.minWidth="46px",q.className="geBtn",x.appendChild(q))}!b.isOffline()&&5E5>f.length&&(q=mxUtils.button("",function(){try{var n="mailto:?subject="+encodeURIComponent(K||
-b.defaultFilename)+"&body="+encodeURIComponent(e.value);b.openLink(n)}catch(m){b.handleError({message:m.message||mxResources.get("drawingTooLarge")})}}),D=document.createElement("img"),D.className="geAdaptiveAsset",D.setAttribute("src",Editor.mailImage),D.setAttribute("width","18"),D.setAttribute("height","18"),D.setAttribute("border","0"),D.style.marginBottom="5px",q.appendChild(D),q.style.verticalAlign="bottom",q.style.paddingTop="4px",q.style.minWidth="46px",q.className="geBtn",x.appendChild(q));
+b.saveData(null!=K?K:"embed.txt","txt",f,"text/plain")}),D.className="geBtn",x.appendChild(D);if(c&&(!b.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>f.length){var q=mxUtils.button("",function(){try{var m="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(e.value);b.openLink(m)}catch(n){b.handleError({message:n.message||mxResources.get("drawingTooLarge")})}});D=document.createElement("img");D.setAttribute("src",Editor.facebookImage);D.setAttribute("width","18");D.setAttribute("height",
+"18");D.setAttribute("border","0");q.appendChild(D);q.setAttribute("title",mxResources.get("facebook")+" ("+b.formatFileSize(51200)+" max)");q.style.verticalAlign="bottom";q.style.paddingTop="4px";q.style.minWidth="46px";q.className="geBtn";x.appendChild(q)}7168>f.length&&(q=mxUtils.button("",function(){try{var m="https://twitter.com/intent/tweet?text="+encodeURIComponent(B)+"&url="+encodeURIComponent(e.value);b.openLink(m)}catch(n){b.handleError({message:n.message||mxResources.get("drawingTooLarge")})}}),
+D=document.createElement("img"),D.setAttribute("src",Editor.tweetImage),D.setAttribute("width","18"),D.setAttribute("height","18"),D.setAttribute("border","0"),D.style.marginBottom="5px",q.appendChild(D),q.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+" max)"),q.style.verticalAlign="bottom",q.style.paddingTop="4px",q.style.minWidth="46px",q.className="geBtn",x.appendChild(q))}!b.isOffline()&&5E5>f.length&&(q=mxUtils.button("",function(){try{var m="mailto:?subject="+encodeURIComponent(K||
+b.defaultFilename)+"&body="+encodeURIComponent(e.value);b.openLink(m)}catch(n){b.handleError({message:n.message||mxResources.get("drawingTooLarge")})}}),D=document.createElement("img"),D.className="geAdaptiveAsset",D.setAttribute("src",Editor.mailImage),D.setAttribute("width","18"),D.setAttribute("height","18"),D.setAttribute("border","0"),D.style.marginBottom="5px",q.appendChild(D),q.style.verticalAlign="bottom",q.style.paddingTop="4px",q.style.minWidth="46px",q.className="geBtn",x.appendChild(q));
D=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});x.appendChild(D);q=mxUtils.button(mxResources.get("copy"),function(){e.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");b.alert(mxResources.get("copiedToClipboard"))});5E5>f.length?mxClient.IS_SF||null!=document.documentMode?D.className="geBtn gePrimaryBtn":(x.appendChild(q),q.className="geBtn gePrimaryBtn",D.className="geBtn"):(x.appendChild(g),
D.className="geBtn",g.className="geBtn gePrimaryBtn");d.appendChild(x);this.container=d};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(b,f){function k(){var F=null!=p&&null!=p.getTitle()?p.getTitle():this.defaultFilename;if(N.checked&&""!=q.value){var J="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=F&&(J+="&title="+encodeURIComponent(F));0<t.length&&(J+="&s="+t);""!=n.value&&"0"!=n.value&&(J+="&border="+n.value);""!=g.value&&(J+="&height="+g.value);J+="&pan="+(m.checked?"1":"0");J+="&zoom="+(z.checked?"1":"0");J+="&fit="+(I.checked?"1":"0");
+var GoogleSitesDialog=function(b,f){function k(){var F=null!=p&&null!=p.getTitle()?p.getTitle():this.defaultFilename;if(N.checked&&""!=q.value){var J="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=F&&(J+="&title="+encodeURIComponent(F));0<t.length&&(J+="&s="+t);""!=m.value&&"0"!=m.value&&(J+="&border="+m.value);""!=g.value&&(J+="&height="+g.value);J+="&pan="+(n.checked?"1":"0");J+="&zoom="+(z.checked?"1":"0");J+="&fit="+(I.checked?"1":"0");
J+="&resize="+(y.checked?"1":"0");J+="&x0="+Number(e.value);J+="&y0="+K;v.mathEnabled&&(J+="&math=1");u.checked?J+="&edit=_blank":C.checked&&(J+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));c.value=J}else p.constructor==DriveFile||p.constructor==DropboxFile?(J="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?J+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(J+=p.getHash().substring(1),J=p.constructor==DropboxFile?J+"&type=2":J+"&type=1"),null!=
F&&(J+="&title="+encodeURIComponent(F)),""!=g.value&&(F=parseInt(g.value)+parseInt(e.value),J+="&height="+F),c.value=J):c.value=""}var d=document.createElement("div"),v=b.editor.graph,x=v.getGraphBounds(),B=v.view.scale,D=Math.floor(x.x/B-v.view.translate.x),K=Math.floor(x.y/B-v.view.translate.y);mxUtils.write(d,mxResources.get("googleGadget")+":");mxUtils.br(d);var c=document.createElement("input");c.setAttribute("type","text");c.style.marginBottom="8px";c.style.marginTop="2px";c.style.width="410px";
d.appendChild(c);mxUtils.br(d);this.init=function(){c.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?c.select():document.execCommand("selectAll",!1,null)};mxUtils.write(d,mxResources.get("top")+":");var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","4");e.style.marginRight="16px";e.style.marginLeft="4px";e.value=D;d.appendChild(e);mxUtils.write(d,mxResources.get("height")+":");var g=document.createElement("input");g.setAttribute("type","text");
g.setAttribute("size","4");g.style.marginLeft="4px";g.value=Math.ceil(x.height/B);d.appendChild(g);mxUtils.br(d);x=document.createElement("hr");x.setAttribute("size","1");x.style.marginBottom="16px";x.style.marginTop="16px";d.appendChild(x);mxUtils.write(d,mxResources.get("publicDiagramUrl")+":");mxUtils.br(d);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";q.value=f||"";d.appendChild(q);
-mxUtils.br(d);mxUtils.write(d,mxResources.get("borderWidth")+":");var n=document.createElement("input");n.setAttribute("type","text");n.setAttribute("size","3");n.style.marginBottom="8px";n.style.marginLeft="4px";n.value="0";d.appendChild(n);mxUtils.br(d);var m=document.createElement("input");m.setAttribute("type","checkbox");m.setAttribute("checked","checked");m.defaultChecked=!0;m.style.marginLeft="16px";d.appendChild(m);mxUtils.write(d,mxResources.get("pan")+" ");var z=document.createElement("input");
+mxUtils.br(d);mxUtils.write(d,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.setAttribute("size","3");m.style.marginBottom="8px";m.style.marginLeft="4px";m.value="0";d.appendChild(m);mxUtils.br(d);var n=document.createElement("input");n.setAttribute("type","checkbox");n.setAttribute("checked","checked");n.defaultChecked=!0;n.style.marginLeft="16px";d.appendChild(n);mxUtils.write(d,mxResources.get("pan")+" ");var z=document.createElement("input");
z.setAttribute("type","checkbox");z.setAttribute("checked","checked");z.defaultChecked=!0;z.style.marginLeft="8px";d.appendChild(z);mxUtils.write(d,mxResources.get("zoom")+" ");var C=document.createElement("input");C.setAttribute("type","checkbox");C.style.marginLeft="8px";C.setAttribute("title",window.location.href);d.appendChild(C);mxUtils.write(d,mxResources.get("edit")+" ");var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginLeft="8px";d.appendChild(u);mxUtils.write(d,
mxResources.get("asNew")+" ");mxUtils.br(d);var y=document.createElement("input");y.setAttribute("type","checkbox");y.setAttribute("checked","checked");y.defaultChecked=!0;y.style.marginLeft="16px";d.appendChild(y);mxUtils.write(d,mxResources.get("resize")+" ");var I=document.createElement("input");I.setAttribute("type","checkbox");I.style.marginLeft="8px";d.appendChild(I);mxUtils.write(d,mxResources.get("fit")+" ");var N=document.createElement("input");N.setAttribute("type","checkbox");N.style.marginLeft=
-"8px";d.appendChild(N);mxUtils.write(d,mxResources.get("embed")+" ");var t=b.getBasenames().join(";"),p=b.getCurrentFile();mxEvent.addListener(m,"change",k);mxEvent.addListener(z,"change",k);mxEvent.addListener(y,"change",k);mxEvent.addListener(I,"change",k);mxEvent.addListener(C,"change",k);mxEvent.addListener(u,"change",k);mxEvent.addListener(N,"change",k);mxEvent.addListener(g,"change",k);mxEvent.addListener(e,"change",k);mxEvent.addListener(n,"change",k);mxEvent.addListener(q,"change",k);k();
+"8px";d.appendChild(N);mxUtils.write(d,mxResources.get("embed")+" ");var t=b.getBasenames().join(";"),p=b.getCurrentFile();mxEvent.addListener(n,"change",k);mxEvent.addListener(z,"change",k);mxEvent.addListener(y,"change",k);mxEvent.addListener(I,"change",k);mxEvent.addListener(C,"change",k);mxEvent.addListener(u,"change",k);mxEvent.addListener(N,"change",k);mxEvent.addListener(g,"change",k);mxEvent.addListener(e,"change",k);mxEvent.addListener(m,"change",k);mxEvent.addListener(q,"change",k);k();
mxEvent.addListener(c,"click",function(){c.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?c.select():document.execCommand("selectAll",!1,null)});f=document.createElement("div");f.style.paddingTop="12px";f.style.textAlign="right";x=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});x.className="geBtn gePrimaryBtn";f.appendChild(x);d.appendChild(f);this.container=d},CreateGraphDialog=function(b,f,k){var d=document.createElement("div");d.style.textAlign="right";this.init=
function(){var v=document.createElement("div");v.style.position="relative";v.style.border="1px solid gray";v.style.width="100%";v.style.height="360px";v.style.overflow="hidden";v.style.marginBottom="16px";mxEvent.disableContextMenu(v);d.appendChild(v);var x=new Graph(v);x.setCellsCloneable(!0);x.setPanning(!0);x.setAllowDanglingEdges(!1);x.connectionHandler.select=!1;x.view.setTranslate(20,20);x.border=20;x.panningHandler.useLeftButtonForPanning=!0;var B="curved=1;";x.cellRenderer.installCellOverlayListeners=
function(z,C,u){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(u.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(y){C.fireEvent(new mxEventObject("pointerdown","event",y,"state",z))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(u.node,"touchstart",function(y){C.fireEvent(new mxEventObject("pointerdown","event",y,"state",z))})};x.getAllConnectionConstraints=function(){return null};x.connectionHandler.marker.highlight.keepOnTop=
@@ -11106,35 +11106,35 @@ function(z,C,u){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,
x.insertEdge(D,null,"",z,N,B)},function(){x.scrollCellToVisible(N)})});C.addListener("pointerdown",function(u,y){u=y.getProperty("event");y=y.getProperty("state");x.popupMenuHandler.hideMenu();x.stopEditing(!1);var I=mxUtils.convertPoint(x.container,mxEvent.getClientX(u),mxEvent.getClientY(u));x.connectionHandler.start(y,I.x,I.y);x.isMouseDown=!0;x.isMouseTrigger=mxEvent.isMouseEvent(u);mxEvent.consume(u)});x.addCellOverlay(z,C)});x.getModel().beginUpdate();try{var c=x.insertVertex(D,null,"Start",
0,0,80,30,"ellipse");K(c)}finally{x.getModel().endUpdate()}if("horizontalTree"==k){var e=new mxCompactTreeLayout(x);e.edgeRouting=!1;e.levelDistance=30;B="edgeStyle=elbowEdgeStyle;elbow=horizontal;"}else"verticalTree"==k?(e=new mxCompactTreeLayout(x,!1),e.edgeRouting=!1,e.levelDistance=30,B="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==k?(e=new mxRadialTreeLayout(x,!1),e.edgeRouting=!1,e.levelDistance=80):"verticalFlow"==k?e=new mxHierarchicalLayout(x,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
k?e=new mxHierarchicalLayout(x,mxConstants.DIRECTION_WEST):"organic"==k?(e=new mxFastOrganicLayout(x,!1),e.forceConstant=80):"circle"==k&&(e=new mxCircleLayout(x));if(null!=e){var g=function(z,C){x.getModel().beginUpdate();try{null!=z&&z(),e.execute(x.getDefaultParent(),c)}catch(u){throw u;}finally{z=new mxMorphing(x),z.addListener(mxEvent.DONE,mxUtils.bind(this,function(){x.getModel().endUpdate();null!=C&&C()})),z.startAnimation()}},q=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
-function(z,C,u,y,I){q.apply(this,arguments);g()};x.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);g()};x.connectionHandler.addListener(mxEvent.CONNECT,function(){g()})}var n=mxUtils.button(mxResources.get("close"),function(){b.confirm(mxResources.get("areYouSure"),function(){null!=v.parentNode&&(x.destroy(),v.parentNode.removeChild(v));b.hideDialog()})});n.className="geBtn";b.editor.cancelFirst&&d.appendChild(n);var m=mxUtils.button(mxResources.get("insert"),function(z){x.clearCellOverlays();
-var C=x.getModel().getChildren(x.getDefaultParent());z=mxEvent.isAltDown(z)?b.editor.graph.getFreeInsertPoint():b.editor.graph.getCenterInsertPoint(x.getBoundingBoxFromGeometry(C,!0));C=b.editor.graph.importCells(C,z.x,z.y);z=b.editor.graph.view;var u=z.getBounds(C);u.x-=z.translate.x;u.y-=z.translate.y;b.editor.graph.scrollRectToVisible(u);b.editor.graph.setSelectionCells(C);null!=v.parentNode&&(x.destroy(),v.parentNode.removeChild(v));b.hideDialog()});d.appendChild(m);m.className="geBtn gePrimaryBtn";
-b.editor.cancelFirst||d.appendChild(n)};this.container=d};
+function(z,C,u,y,I){q.apply(this,arguments);g()};x.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);g()};x.connectionHandler.addListener(mxEvent.CONNECT,function(){g()})}var m=mxUtils.button(mxResources.get("close"),function(){b.confirm(mxResources.get("areYouSure"),function(){null!=v.parentNode&&(x.destroy(),v.parentNode.removeChild(v));b.hideDialog()})});m.className="geBtn";b.editor.cancelFirst&&d.appendChild(m);var n=mxUtils.button(mxResources.get("insert"),function(z){x.clearCellOverlays();
+var C=x.getModel().getChildren(x.getDefaultParent());z=mxEvent.isAltDown(z)?b.editor.graph.getFreeInsertPoint():b.editor.graph.getCenterInsertPoint(x.getBoundingBoxFromGeometry(C,!0));C=b.editor.graph.importCells(C,z.x,z.y);z=b.editor.graph.view;var u=z.getBounds(C);u.x-=z.translate.x;u.y-=z.translate.y;b.editor.graph.scrollRectToVisible(u);b.editor.graph.setSelectionCells(C);null!=v.parentNode&&(x.destroy(),v.parentNode.removeChild(v));b.hideDialog()});d.appendChild(n);n.className="geBtn gePrimaryBtn";
+b.editor.cancelFirst||d.appendChild(m)};this.container=d};
CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg==":IMAGE_PATH+
"/handle-connect.png",26,26);
var BackgroundImageDialog=function(b,f,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var v=document.createElement("h2");mxUtils.write(v,mxResources.get("backgroundImage"));v.style.marginTop="0px";d.appendChild(v);var x=null!=k&&null!=k.originalSrc;v=!1;var B=document.createElement("input");B.style.cssText="margin-right:8px;margin-bottom:8px;";B.setAttribute("value","url");B.setAttribute("type","radio");B.setAttribute("name","geBackgroundImageDialogOption");var D=document.createElement("input");
D.style.cssText="margin-right:8px;margin-bottom:8px;";D.setAttribute("value","url");D.setAttribute("type","radio");D.setAttribute("name","geBackgroundImageDialogOption");var K=document.createElement("input");K.setAttribute("type","text");K.style.marginBottom="8px";K.style.width="360px";K.value=x||null==k?"":k.src;var c=document.createElement("select");c.style.width="360px";if(null!=b.pages)for(var e=0;e<b.pages.length;e++){var g=document.createElement("option");mxUtils.write(g,b.pages[e].getName()||
-mxResources.get("pageWithNumber",[e+1]));g.setAttribute("value","data:page/id,"+b.pages[e].getId());b.pages[e]==b.currentPage&&g.setAttribute("disabled","disabled");null!=k&&k.originalSrc==g.getAttribute("value")&&(g.setAttribute("selected","selected"),v=!0);c.appendChild(g)}x||null!=b.pages&&1!=b.pages.length||(B.style.display="none",D.style.display="none",c.style.display="none");var q=document.createElement("option"),n=!1,m=!1,z=function(N,t){n||null!=N&&m||(D.checked?null!=t&&t(q.selected?null:
+mxResources.get("pageWithNumber",[e+1]));g.setAttribute("value","data:page/id,"+b.pages[e].getId());b.pages[e]==b.currentPage&&g.setAttribute("disabled","disabled");null!=k&&k.originalSrc==g.getAttribute("value")&&(g.setAttribute("selected","selected"),v=!0);c.appendChild(g)}x||null!=b.pages&&1!=b.pages.length||(B.style.display="none",D.style.display="none",c.style.display="none");var q=document.createElement("option"),m=!1,n=!1,z=function(N,t){m||null!=N&&n||(D.checked?null!=t&&t(q.selected?null:
c.value):""==K.value||b.isOffline()?(u.value="",y.value="",null!=t&&t("")):(K.value=mxUtils.trim(K.value),b.loadImage(K.value,function(p){u.value=p.width;y.value=p.height;null!=t&&t(K.value)},function(){b.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));u.value="";y.value="";null!=t&&t(null)})))},C=mxUtils.bind(this,function(N){b.importFiles(N,0,0,b.maxBackgroundSize,function(t,p,F,J,M,H){K.value=t;z();K.focus()},function(){},function(t){return"image/"==t.type.substring(0,
6)},function(t){for(var p=0;p<t.length;p++)t[p]()},!0,b.maxBackgroundBytes,b.maxBackgroundBytes,!0)});this.init=function(){x?c.focus():K.focus();mxEvent.addListener(c,"focus",function(){B.removeAttribute("checked");D.setAttribute("checked","checked");D.checked=!0});mxEvent.addListener(K,"focus",function(){D.removeAttribute("checked");B.setAttribute("checked","checked");B.checked=!0});if(Graph.fileSupport){K.setAttribute("placeholder",mxResources.get("dragImagesHere"));var N=d.parentNode,t=null;mxEvent.addListener(N,
"dragleave",function(p){null!=t&&(t.parentNode.removeChild(t),t=null);p.stopPropagation();p.preventDefault()});mxEvent.addListener(N,"dragover",mxUtils.bind(this,function(p){null==t&&(!mxClient.IS_IE||10<document.documentMode)&&(t=b.highlightElement(N));p.stopPropagation();p.preventDefault()}));mxEvent.addListener(N,"drop",mxUtils.bind(this,function(p){null!=t&&(t.parentNode.removeChild(t),t=null);if(0<p.dataTransfer.files.length)C(p.dataTransfer.files);else if(0<=mxUtils.indexOf(p.dataTransfer.types,
"text/uri-list")){var F=p.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(F)&&(K.value=decodeURIComponent(F),z())}p.stopPropagation();p.preventDefault()}),!1)}};d.appendChild(B);d.appendChild(K);mxUtils.br(d);e=document.createElement("span");e.style.marginLeft="30px";mxUtils.write(e,mxResources.get("width")+":");d.appendChild(e);var u=document.createElement("input");u.setAttribute("type","text");u.style.width="60px";u.style.marginLeft="8px";u.style.marginRight="16px";
u.value=null==k||x?"":k.width;d.appendChild(u);mxUtils.write(d,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="60px";y.style.marginLeft="8px";y.style.marginRight="16px";y.value=null==k||x?"":k.height;d.appendChild(y);mxUtils.br(d);mxUtils.br(d);mxEvent.addListener(K,"change",z);ImageDialog.filePicked=function(N){N.action==google.picker.Action.PICKED&&null!=N.docs[0].thumbnails&&(N=N.docs[0].thumbnails[N.docs[0].thumbnails.length-1],
null!=N&&(K.value=N.url,z()));K.focus()};d.appendChild(D);d.appendChild(c);mxUtils.br(d);x?(D.setAttribute("checked","checked"),D.checked=!0):(B.setAttribute("checked","checked"),B.checked=!0);!v&&D.checked&&(mxUtils.write(q,mxResources.get("pageNotFound")),q.setAttribute("disabled","disabled"),q.setAttribute("selected","selected"),q.setAttribute("value","pageNotFound"),c.appendChild(q),mxEvent.addListener(c,"change",function(){null==q.parentNode||q.selected||q.parentNode.removeChild(q)}));k=document.createElement("div");
-k.style.marginTop="30px";k.style.textAlign="right";v=mxUtils.button(mxResources.get("cancel"),function(){n=!0;b.hideDialog()});v.className="geBtn";b.editor.cancelFirst&&k.appendChild(v);e=mxUtils.button(mxResources.get("reset"),function(){K.value="";u.value="";y.value="";B.checked=!0;n=!1});mxEvent.addGestureListeners(e,function(){n=!0});e.className="geBtn";e.width="100";k.appendChild(e);if(Graph.fileSupport){var I=document.createElement("input");I.setAttribute("multiple","multiple");I.setAttribute("type",
-"file");mxEvent.addListener(I,"change",function(N){null!=I.files&&(C(I.files),I.type="",I.type="file",I.value="")});I.style.display="none";d.appendChild(I);e=mxUtils.button(mxResources.get("open"),function(){I.click()});e.className="geBtn";k.appendChild(e)}applyBtn=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();z(null,function(N){f(""!=N&&null!=N?new mxImage(N,u.value,y.value):null,null==N)})});mxEvent.addGestureListeners(applyBtn,function(){m=!0});applyBtn.className="geBtn gePrimaryBtn";
-k.appendChild(applyBtn);b.editor.cancelFirst||k.appendChild(v);d.appendChild(k);this.container=d},ParseDialog=function(b,f,k){function d(n,m,z){var C=n.split("\n");if("plantUmlPng"==m||"plantUmlSvg"==m||"plantUmlTxt"==m){if(b.spinner.spin(document.body,mxResources.get("inserting"))){var u=function(T,W,U,V,l){x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(new mxRectangle(0,0,V,l));var A=null;y.getModel().beginUpdate();try{A="txt"==W?b.insertAsPreText(U,x.x,x.y):y.insertVertex(null,null,null,x.x,x.y,
-V,l,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b.convertDataUri(U)+";"),y.setAttributeForCell(A,"plantUmlData",JSON.stringify({data:T,format:W},null,2))}finally{y.getModel().endUpdate()}null!=A&&(y.setSelectionCell(A),y.scrollCellToVisible(A))},y=b.editor.graph,I="plantUmlTxt"==m?"txt":"plantUmlPng"==m?"png":"svg";"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==
-n&&"svg"==I?window.setTimeout(function(){b.spinner.stop();u(n,I,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=",
-295,212)},200):b.generatePlantUmlImage(n,I,function(T,W,U){b.spinner.stop();u(n,I,T,W,U)},function(T){b.handleError(T)})}}else if("mermaid"==m)b.spinner.spin(document.body,mxResources.get("inserting"))&&(y=b.editor.graph,b.generateMermaidImage(n,I,function(T,W,U){x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(new mxRectangle(0,0,W,U));b.spinner.stop();var V=null;y.getModel().beginUpdate();try{V=y.insertVertex(null,null,null,x.x,x.y,W,U,"shape=image;noLabel=1;verticalAlign=top;imageAspect=1;image="+
-T+";"),y.setAttributeForCell(V,"mermaidData",JSON.stringify({data:n,config:EditorUi.defaultMermaidConfig},null,2))}finally{y.getModel().endUpdate()}null!=V&&(y.setSelectionCell(V),y.scrollCellToVisible(V))},function(T){b.handleError(T)}));else if("table"==m){m=null;for(var N=[],t=0,p={},F=0;F<C.length;F++){var J=mxUtils.trim(C[F]);if("primary key"==J.substring(0,11).toLowerCase()){var M=J.match(/\((.+)\)/);M&&M[1]&&(p[M[1]]=!0);C.splice(F,1)}else 0<J.toLowerCase().indexOf("primary key")&&(p[J.split(" ")[0]]=
-!0,C[F]=mxUtils.trim(J.replace(/primary key/i,"")))}for(F=0;F<C.length;F++)if(J=mxUtils.trim(C[F]),"create table"==J.substring(0,12).toLowerCase())J=mxUtils.trim(J.substring(12)),"("==J.charAt(J.length-1)&&(J=mxUtils.trim(J.substring(0,J.length-1))),m=new mxCell(J,new mxGeometry(t,0,160,40),"shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;"),m.vertex=!0,N.push(m),J=b.editor.graph.getPreferredSizeForCell(H),null!=
-J&&(m.geometry.width=J.width+10);else if(null!=m&&")"==J.charAt(0))t+=m.geometry.width+40,m=null;else if("("!=J&&null!=m){J=J.substring(0,","==J.charAt(J.length-1)?J.length-1:J.length);M=p[J.split(" ")[0]];var H=new mxCell("",new mxGeometry(0,0,160,30),"shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom="+(M?"1":"0")+";");H.vertex=!0;var G=new mxCell(M?"PK":"",
-new mxGeometry(0,0,30,30),"shape=partialRectangle;overflow=hidden;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;"+(M?"fontStyle=1;":""));G.vertex=!0;H.insert(G);J=new mxCell(J,new mxGeometry(30,0,130,30),"shape=partialRectangle;overflow=hidden;connectable=0;fillColor=none;align=left;top=0;left=0;bottom=0;right=0;spacingLeft=6;"+(M?"fontStyle=5;":""));J.vertex=!0;H.insert(J);J=b.editor.graph.getPreferredSizeForCell(J);null!=J&&m.geometry.width<J.width+30&&(m.geometry.width=Math.min(320,
-Math.max(m.geometry.width,J.width+30)));m.insert(H,M?0:null);m.geometry.height+=30}0<N.length&&(y=b.editor.graph,x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(y.getBoundingBoxFromGeometry(N,!0)),y.setSelectionCells(y.importCells(N,x.x,x.y)),y.scrollCellToVisible(y.getSelectionCell()))}else if("list"==m){if(0<C.length){y=b.editor.graph;H=null;N=[];for(F=m=0;F<C.length;F++)";"!=C[F].charAt(0)&&(0==C[F].length?H=null:null==H?(H=new mxCell(C[F],new mxGeometry(m,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),
-H.vertex=!0,N.push(H),J=y.getPreferredSizeForCell(H),null!=J&&H.geometry.width<J.width+10&&(H.geometry.width=J.width+10),m+=H.geometry.width+40):"--"==C[F]?(J=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),J.vertex=!0,H.geometry.height+=J.geometry.height,H.insert(J)):0<C[F].length&&(t=new mxCell(C[F],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
+k.style.marginTop="30px";k.style.textAlign="right";v=mxUtils.button(mxResources.get("cancel"),function(){m=!0;b.hideDialog()});v.className="geBtn";b.editor.cancelFirst&&k.appendChild(v);e=mxUtils.button(mxResources.get("reset"),function(){K.value="";u.value="";y.value="";B.checked=!0;m=!1});mxEvent.addGestureListeners(e,function(){m=!0});e.className="geBtn";e.width="100";k.appendChild(e);if(Graph.fileSupport){var I=document.createElement("input");I.setAttribute("multiple","multiple");I.setAttribute("type",
+"file");mxEvent.addListener(I,"change",function(N){null!=I.files&&(C(I.files),I.type="",I.type="file",I.value="")});I.style.display="none";d.appendChild(I);e=mxUtils.button(mxResources.get("open"),function(){I.click()});e.className="geBtn";k.appendChild(e)}applyBtn=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();z(null,function(N){f(""!=N&&null!=N?new mxImage(N,u.value,y.value):null,null==N)})});mxEvent.addGestureListeners(applyBtn,function(){n=!0});applyBtn.className="geBtn gePrimaryBtn";
+k.appendChild(applyBtn);b.editor.cancelFirst||k.appendChild(v);d.appendChild(k);this.container=d},ParseDialog=function(b,f,k){function d(m,n,z){var C=m.split("\n");if("plantUmlPng"==n||"plantUmlSvg"==n||"plantUmlTxt"==n){if(b.spinner.spin(document.body,mxResources.get("inserting"))){var u=function(T,W,U,V,l){x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(new mxRectangle(0,0,V,l));var A=null;y.getModel().beginUpdate();try{A="txt"==W?b.insertAsPreText(U,x.x,x.y):y.insertVertex(null,null,null,x.x,x.y,
+V,l,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b.convertDataUri(U)+";"),y.setAttributeForCell(A,"plantUmlData",JSON.stringify({data:T,format:W},null,2))}finally{y.getModel().endUpdate()}null!=A&&(y.setSelectionCell(A),y.scrollCellToVisible(A))},y=b.editor.graph,I="plantUmlTxt"==n?"txt":"plantUmlPng"==n?"png":"svg";"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==
+m&&"svg"==I?window.setTimeout(function(){b.spinner.stop();u(m,I,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=",
+295,212)},200):b.generatePlantUmlImage(m,I,function(T,W,U){b.spinner.stop();u(m,I,T,W,U)},function(T){b.handleError(T)})}}else if("mermaid"==n)b.spinner.spin(document.body,mxResources.get("inserting"))&&(y=b.editor.graph,b.generateMermaidImage(m,I,function(T,W,U){x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(new mxRectangle(0,0,W,U));b.spinner.stop();var V=null;y.getModel().beginUpdate();try{V=y.insertVertex(null,null,null,x.x,x.y,W,U,"shape=image;noLabel=1;verticalAlign=top;imageAspect=1;image="+
+T+";"),y.setAttributeForCell(V,"mermaidData",JSON.stringify({data:m,config:EditorUi.defaultMermaidConfig},null,2))}finally{y.getModel().endUpdate()}null!=V&&(y.setSelectionCell(V),y.scrollCellToVisible(V))},function(T){b.handleError(T)}));else if("table"==n){n=null;for(var N=[],t=0,p={},F=0;F<C.length;F++){var J=mxUtils.trim(C[F]);if("primary key"==J.substring(0,11).toLowerCase()){var M=J.match(/\((.+)\)/);M&&M[1]&&(p[M[1]]=!0);C.splice(F,1)}else 0<J.toLowerCase().indexOf("primary key")&&(p[J.split(" ")[0]]=
+!0,C[F]=mxUtils.trim(J.replace(/primary key/i,"")))}for(F=0;F<C.length;F++)if(J=mxUtils.trim(C[F]),"create table"==J.substring(0,12).toLowerCase())J=mxUtils.trim(J.substring(12)),"("==J.charAt(J.length-1)&&(J=mxUtils.trim(J.substring(0,J.length-1))),n=new mxCell(J,new mxGeometry(t,0,160,40),"shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;"),n.vertex=!0,N.push(n),J=b.editor.graph.getPreferredSizeForCell(H),null!=
+J&&(n.geometry.width=J.width+10);else if(null!=n&&")"==J.charAt(0))t+=n.geometry.width+40,n=null;else if("("!=J&&null!=n){J=J.substring(0,","==J.charAt(J.length-1)?J.length-1:J.length);M=p[J.split(" ")[0]];var H=new mxCell("",new mxGeometry(0,0,160,30),"shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom="+(M?"1":"0")+";");H.vertex=!0;var G=new mxCell(M?"PK":"",
+new mxGeometry(0,0,30,30),"shape=partialRectangle;overflow=hidden;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;"+(M?"fontStyle=1;":""));G.vertex=!0;H.insert(G);J=new mxCell(J,new mxGeometry(30,0,130,30),"shape=partialRectangle;overflow=hidden;connectable=0;fillColor=none;align=left;top=0;left=0;bottom=0;right=0;spacingLeft=6;"+(M?"fontStyle=5;":""));J.vertex=!0;H.insert(J);J=b.editor.graph.getPreferredSizeForCell(J);null!=J&&n.geometry.width<J.width+30&&(n.geometry.width=Math.min(320,
+Math.max(n.geometry.width,J.width+30)));n.insert(H,M?0:null);n.geometry.height+=30}0<N.length&&(y=b.editor.graph,x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(y.getBoundingBoxFromGeometry(N,!0)),y.setSelectionCells(y.importCells(N,x.x,x.y)),y.scrollCellToVisible(y.getSelectionCell()))}else if("list"==n){if(0<C.length){y=b.editor.graph;H=null;N=[];for(F=n=0;F<C.length;F++)";"!=C[F].charAt(0)&&(0==C[F].length?H=null:null==H?(H=new mxCell(C[F],new mxGeometry(n,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),
+H.vertex=!0,N.push(H),J=y.getPreferredSizeForCell(H),null!=J&&H.geometry.width<J.width+10&&(H.geometry.width=J.width+10),n+=H.geometry.width+40):"--"==C[F]?(J=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),J.vertex=!0,H.geometry.height+=J.geometry.height,H.insert(J)):0<C[F].length&&(t=new mxCell(C[F],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
t.vertex=!0,J=y.getPreferredSizeForCell(t),null!=J&&t.geometry.width<J.width&&(t.geometry.width=J.width),H.geometry.width=Math.max(H.geometry.width,t.geometry.width),H.geometry.height+=t.geometry.height,H.insert(t)));if(0<N.length){x=mxEvent.isAltDown(z)?x:y.getCenterInsertPoint(y.getBoundingBoxFromGeometry(N,!0));y.getModel().beginUpdate();try{N=y.importCells(N,x.x,x.y);J=[];for(F=0;F<N.length;F++)J.push(N[F]),J=J.concat(N[F].children);y.fireEvent(new mxEventObject("cellsInserted","cells",J))}finally{y.getModel().endUpdate()}y.setSelectionCells(N);
y.scrollCellToVisible(y.getSelectionCell())}}}else{H=function(T){var W=E[T];null==W&&(W=new mxCell(T,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),W.vertex=!0,E[T]=W,N.push(W));return W};var E={};N=[];for(F=0;F<C.length;F++)if(";"!=C[F].charAt(0)){var P=C[F].split("->");2<=P.length&&(M=H(P[0]),G=H(P[P.length-1]),P=new mxCell(2<P.length?P[1]:"",new mxGeometry),P.edge=!0,M.insertEdge(P,!0),G.insertEdge(P,!1),N.push(P))}if(0<N.length){C=document.createElement("div");C.style.visibility="hidden";
-document.body.appendChild(C);y=new Graph(C);y.getModel().beginUpdate();try{N=y.importCells(N);for(F=0;F<N.length;F++)y.getModel().isVertex(N[F])&&(J=y.getPreferredSizeForCell(N[F]),N[F].geometry.width=Math.max(N[F].geometry.width,J.width),N[F].geometry.height=Math.max(N[F].geometry.height,J.height));F=!0;"horizontalFlow"==m||"verticalFlow"==m?((new mxHierarchicalLayout(y,"horizontalFlow"==m?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH)).execute(y.getDefaultParent(),N),F=!1):"circle"==m?
+document.body.appendChild(C);y=new Graph(C);y.getModel().beginUpdate();try{N=y.importCells(N);for(F=0;F<N.length;F++)y.getModel().isVertex(N[F])&&(J=y.getPreferredSizeForCell(N[F]),N[F].geometry.width=Math.max(N[F].geometry.width,J.width),N[F].geometry.height=Math.max(N[F].geometry.height,J.height));F=!0;"horizontalFlow"==n||"verticalFlow"==n?((new mxHierarchicalLayout(y,"horizontalFlow"==n?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH)).execute(y.getDefaultParent(),N),F=!1):"circle"==n?
(new mxCircleLayout(y)).execute(y.getDefaultParent()):(t=new mxFastOrganicLayout(y),t.disableEdgeStyle=!1,t.forceConstant=180,t.execute(y.getDefaultParent()));F&&(p=new mxParallelEdgeLayout(y),p.spacing=30,p.execute(y.getDefaultParent()))}finally{y.getModel().endUpdate()}y.clearCellOverlays();J=[];b.editor.graph.getModel().beginUpdate();try{N=y.getModel().getChildren(y.getDefaultParent()),x=mxEvent.isAltDown(z)?x:b.editor.graph.getCenterInsertPoint(y.getBoundingBoxFromGeometry(N,!0)),J=b.editor.graph.importCells(N,
x.x,x.y),b.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",J))}finally{b.editor.graph.getModel().endUpdate()}b.editor.graph.setSelectionCells(J);b.editor.graph.scrollCellToVisible(b.editor.graph.getSelectionCell());y.destroy();C.parentNode.removeChild(C)}}}function v(){return"list"==D.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean\n\nAddress\n-street: String\n-city: String\n-state: String":"mermaid"==D.value?
"graph TD;\n A--\x3eB;\n A--\x3eC;\n B--\x3eD;\n C--\x3eD;":"table"==D.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==D.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":
@@ -11143,9 +11143,9 @@ x.x,x.y),b.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",J))}
k&&(D.appendChild(K),K.setAttribute("selected","selected"));K=document.createElement("option");K.setAttribute("value","mermaid");mxUtils.write(K,mxResources.get("formatSql"));"mermaid"==k&&(D.appendChild(K),K.setAttribute("selected","selected"));K=document.createElement("option");K.setAttribute("value","diagram");mxUtils.write(K,mxResources.get("diagram"));var c=document.createElement("option");c.setAttribute("value","circle");mxUtils.write(c,mxResources.get("circle"));var e=document.createElement("option");
e.setAttribute("value","horizontalFlow");mxUtils.write(e,mxResources.get("horizontalFlow"));var g=document.createElement("option");g.setAttribute("value","verticalFlow");mxUtils.write(g,mxResources.get("verticalFlow"));"plantUml"!=k&&(D.appendChild(K),D.appendChild(c),D.appendChild(e),D.appendChild(g));K=document.createElement("option");K.setAttribute("value","plantUmlSvg");mxUtils.write(K,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==k&&K.setAttribute("selected",
"selected");c=document.createElement("option");c.setAttribute("value","plantUmlPng");mxUtils.write(c,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");e=document.createElement("option");e.setAttribute("value","plantUmlTxt");mxUtils.write(e,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==k&&(D.appendChild(K),D.appendChild(c),D.appendChild(e));var q=v();B.value=q;f.appendChild(B);this.init=function(){B.focus()};
-Graph.fileSupport&&(B.addEventListener("dragover",function(n){n.stopPropagation();n.preventDefault()},!1),B.addEventListener("drop",function(n){n.stopPropagation();n.preventDefault();if(0<n.dataTransfer.files.length){n=n.dataTransfer.files[0];var m=new FileReader;m.onload=function(z){B.value=z.target.result};m.readAsText(n)}},!1));f.appendChild(D);mxEvent.addListener(D,"change",function(){var n=v();if(0==B.value.length||B.value==q)q=n,B.value=q});b.isOffline()||"mermaid"!=k&&"plantUml"!=k||(K=mxUtils.button(mxResources.get("help"),
-function(){b.openLink("mermaid"==k?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),K.className="geBtn",f.appendChild(K));K=mxUtils.button(mxResources.get("close"),function(){B.value==q?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});K.className="geBtn";b.editor.cancelFirst&&f.appendChild(K);c=mxUtils.button(mxResources.get("insert"),function(n){b.hideDialog();d(B.value,D.value,n)});f.appendChild(c);c.className="geBtn gePrimaryBtn";b.editor.cancelFirst||
-f.appendChild(K);this.container=f},NewDialog=function(b,f,k,d,v,x,B,D,K,c,e,g,q,n,m,z,C,u){function y(ja){null!=ja&&(Da=Ea=ja?135:140);ja=!0;if(null!=Ba)for(;E<Ba.length&&(ja||0!=mxUtils.mod(E,30));){var xa=Ba[E++];xa=t(xa.url,xa.libs,xa.title,xa.tooltip?xa.tooltip:xa.title,xa.select,xa.imgUrl,xa.info,xa.onClick,xa.preview,xa.noImg,xa.clibs);ja&&xa.click();ja=!1}}function I(){if(aa&&null!=n)k||b.hideDialog(),n(aa,Z,G.value);else if(d)k||b.hideDialog(),d(S,G.value,Y,O);else{var ja=G.value;null!=ja&&
+Graph.fileSupport&&(B.addEventListener("dragover",function(m){m.stopPropagation();m.preventDefault()},!1),B.addEventListener("drop",function(m){m.stopPropagation();m.preventDefault();if(0<m.dataTransfer.files.length){m=m.dataTransfer.files[0];var n=new FileReader;n.onload=function(z){B.value=z.target.result};n.readAsText(m)}},!1));f.appendChild(D);mxEvent.addListener(D,"change",function(){var m=v();if(0==B.value.length||B.value==q)q=m,B.value=q});b.isOffline()||"mermaid"!=k&&"plantUml"!=k||(K=mxUtils.button(mxResources.get("help"),
+function(){b.openLink("mermaid"==k?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),K.className="geBtn",f.appendChild(K));K=mxUtils.button(mxResources.get("close"),function(){B.value==q?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});K.className="geBtn";b.editor.cancelFirst&&f.appendChild(K);c=mxUtils.button(mxResources.get("insert"),function(m){b.hideDialog();d(B.value,D.value,m)});f.appendChild(c);c.className="geBtn gePrimaryBtn";b.editor.cancelFirst||
+f.appendChild(K);this.container=f},NewDialog=function(b,f,k,d,v,x,B,D,K,c,e,g,q,m,n,z,C,u){function y(ja){null!=ja&&(Da=Ea=ja?135:140);ja=!0;if(null!=Ba)for(;E<Ba.length&&(ja||0!=mxUtils.mod(E,30));){var xa=Ba[E++];xa=t(xa.url,xa.libs,xa.title,xa.tooltip?xa.tooltip:xa.title,xa.select,xa.imgUrl,xa.info,xa.onClick,xa.preview,xa.noImg,xa.clibs);ja&&xa.click();ja=!1}}function I(){if(aa&&null!=m)k||b.hideDialog(),m(aa,Z,G.value);else if(d)k||b.hideDialog(),d(S,G.value,Y,O);else{var ja=G.value;null!=ja&&
0<ja.length&&b.pickFolder(b.mode,function(xa){b.createFile(ja,S,null!=O&&0<O.length?O:null,null,function(){b.hideDialog()},null,xa,null,null!=R&&0<R.length?R:null)},b.mode!=App.MODE_GOOGLE||null==b.stateArg||null==b.stateArg.folderId)}}function N(ja,xa,sa,da,ba,na,ea){null!=X&&(X.style.backgroundColor="transparent",X.style.border="1px solid transparent");T.removeAttribute("disabled");S=xa;O=sa;R=na;X=ja;aa=da;Y=ea;Z=ba;X.style.backgroundColor=D;X.style.border=K}function t(ja,xa,sa,da,ba,na,ea,ha,
oa,ma,va){function Ca(Ka,Ta){null==Ha?(Ma=Ka,Ma=/^https?:\/\//.test(Ma)&&!b.editor.isCorsEnabledForUrl(Ma)?PROXY_URL+"?url="+encodeURIComponent(Ma):TEMPLATE_PATH+"/"+Ma,mxUtils.get(Ma,mxUtils.bind(this,function(Va){200<=Va.getStatus()&&299>=Va.getStatus()&&(Ha=Va.getText());Ta(Ha,Ma)}))):Ta(Ha,Ma)}function ya(Ka,Ta,Va){if(null!=Ka&&mxUtils.isAncestorNode(document.body,pa)){Ka=mxUtils.parseXml(Ka);Ka=Editor.parseDiagramNode(Ka.documentElement);var Wa=new mxCodec(Ka.ownerDocument),$a=new mxGraphModel;
Wa.decode(Ka,$a);Ka=$a.root.getChildAt(0).children;b.sidebar.createTooltip(pa,Ka,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=sa?mxResources.get(sa,null,sa):null,!0,new mxPoint(Ta,Va),!0,function(){Ua=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;N(pa,null,null,ja,ea,va)},!0,!1)}}function ta(Ka,Ta){null==ja||Ra||
@@ -11182,16 +11182,16 @@ z+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";mxEven
ja.getElementsByTagName("add"),ba=[],na=0;na<da.length;na++)ba.push(encodeURIComponent(mxUtils.getTextContent(da[na])));null!=sa&&0<ba.length&&(xa[sa]=ba.join(";"))}else if(ba=ja.getAttribute("url"),null!=ba){da=ja.getAttribute("section");sa=ja.getAttribute("subsection");if(null==da&&(na=ba.indexOf("/"),da=ba.substring(0,na),null==sa)){var ea=ba.indexOf("/",na+1);-1<ea&&(sa=ba.substring(na+1,ea))}na=za[da];null==na&&(na=[],za[da]=na);ba=ja.getAttribute("clibs");null!=xa[ba]&&(ba=xa[ba]);ba={url:ja.getAttribute("url"),
libs:ja.getAttribute("libs"),title:ja.getAttribute("title"),tooltip:ja.getAttribute("name")||ja.getAttribute("url"),preview:ja.getAttribute("preview"),clibs:ba,tags:ja.getAttribute("tags")};na.push(ba);null!=sa&&(na=Oa[da],null==na&&(na={},Oa[da]=na),da=na[sa],null==da&&(da=[],na[sa]=da),da.push(ba))}ja=ja.nextSibling}P.stop();p()}})};J.appendChild(fa);J.appendChild(ka);J.appendChild(ca);var wa=!1,La=e;/^https?:\/\//.test(La)&&!b.editor.isCorsEnabledForUrl(La)&&(La=PROXY_URL+"?url="+encodeURIComponent(La));
P.spin(ca);null!=C?C(function(ja,xa){Aa=ja;l=Ga=xa;Fa()},Fa):Fa();V=za}mxEvent.addListener(G,"keypress",function(ja){b.dialog.container.firstChild==J&&13==ja.keyCode&&I()});C=document.createElement("div");C.style.marginTop=f?"4px":"16px";C.style.textAlign="right";C.style.position="absolute";C.style.left="40px";C.style.bottom="24px";C.style.right="40px";f||b.isOffline()||!k||null!=d||v||(z=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),
-z.className="geBtn",C.appendChild(z));z=mxUtils.button(mxResources.get("cancel"),function(){null!=x&&x();b.hideDialog(!0)});z.className="geBtn";!b.editor.cancelFirst||v&&null==x||C.appendChild(z);f||"1"==urlParams.embed||v||mxClient.IS_ANDROID||mxClient.IS_IOS||"1"==urlParams.noDevice||(f=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var ja=new FilenameDialog(b,"",mxResources.get("create"),function(xa){null!=xa&&0<xa.length&&b.editor.loadUrl(xa,function(sa){S=sa;O=null;templateRealURl=
-xa;b.hideDialog();I()},function(sa){b.handleError(sa)})},mxResources.get("url"),null,null,null,!1);b.showDialog(ja.container,300,80,!0,!0);ja.init()}),f.className="geBtn",C.appendChild(f));Graph.fileSupport&&m&&(m=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var ja=document.createElement("input");ja.setAttribute("multiple","multiple");ja.setAttribute("type","file");mxEvent.addListener(ja,"change",function(xa){b.openFiles(ja.files,!0);ja.value=""});ja.style.display=
-"none";document.body.appendChild(ja);b.newDlgFileInputElt=ja}b.newDlgFileInputElt.click()}),m.className="geBtn",C.appendChild(m));C.appendChild(T);b.editor.cancelFirst||null!=d||v&&null==x||C.appendChild(z);J.appendChild(C);this.container=J};NewDialog.tagsList={};
-var CreateDialog=function(b,f,k,d,v,x,B,D,K,c,e,g,q,n,m,z,C){function u(M,H,G,E){function P(){mxEvent.addListener(T,"click",function(){var A=G;if(B){var L=N.value,Q=L.lastIndexOf(".");if(0>f.lastIndexOf(".")&&0>Q){A=null!=A?A:J.value;var O="";A==App.MODE_GOOGLE?O=b.drive.extension:A==App.MODE_GITHUB?O=b.gitHub.extension:A==App.MODE_GITLAB?O=b.gitLab.extension:A==App.MODE_TRELLO?O=b.trello.extension:A==App.MODE_DROPBOX?O=b.dropbox.extension:A==App.MODE_ONEDRIVE?O=b.oneDrive.extension:A==App.MODE_DEVICE&&
+z.className="geBtn",C.appendChild(z));z=mxUtils.button(mxResources.get("cancel"),function(){null!=x&&x();b.hideDialog(!0)});z.className="geBtn";!b.editor.cancelFirst||v&&null==x||C.appendChild(z);f||"1"==urlParams.embed||v||mxClient.IS_ANDROID||mxClient.IS_IOS||"1"==urlParams.noDevice||(f=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var ja=new FilenameDialog(b,"",mxResources.get("create"),function(xa){null!=xa&&0<xa.length&&b.editor.loadUrl(b.editor.getProxiedUrl(xa),function(sa){S=
+sa;O=null;templateRealURl=xa;b.hideDialog();I()},function(sa){b.handleError(sa)})},mxResources.get("url"),null,null,null,!1);b.showDialog(ja.container,300,80,!0,!0);ja.init()}),f.className="geBtn",C.appendChild(f));Graph.fileSupport&&n&&(n=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var ja=document.createElement("input");ja.setAttribute("multiple","multiple");ja.setAttribute("type","file");mxEvent.addListener(ja,"change",function(xa){b.openFiles(ja.files,!0);
+ja.value=""});ja.style.display="none";document.body.appendChild(ja);b.newDlgFileInputElt=ja}b.newDlgFileInputElt.click()}),n.className="geBtn",C.appendChild(n));C.appendChild(T);b.editor.cancelFirst||null!=d||v&&null==x||C.appendChild(z);J.appendChild(C);this.container=J};NewDialog.tagsList={};
+var CreateDialog=function(b,f,k,d,v,x,B,D,K,c,e,g,q,m,n,z,C){function u(M,H,G,E){function P(){mxEvent.addListener(T,"click",function(){var A=G;if(B){var L=N.value,Q=L.lastIndexOf(".");if(0>f.lastIndexOf(".")&&0>Q){A=null!=A?A:J.value;var O="";A==App.MODE_GOOGLE?O=b.drive.extension:A==App.MODE_GITHUB?O=b.gitHub.extension:A==App.MODE_GITLAB?O=b.gitLab.extension:A==App.MODE_TRELLO?O=b.trello.extension:A==App.MODE_DROPBOX?O=b.dropbox.extension:A==App.MODE_ONEDRIVE?O=b.oneDrive.extension:A==App.MODE_DEVICE&&
(O=".drawio");0<=Q&&(L=L.substring(0,Q));N.value=L+O}}y(G)})}var T=document.createElement("a");T.style.overflow="hidden";var W=document.createElement("img");W.src=M;W.setAttribute("border","0");W.setAttribute("align","absmiddle");W.style.width="60px";W.style.height="60px";W.style.paddingBottom="6px";T.style.display="inline-block";T.className="geBaseButton";T.style.position="relative";T.style.margin="4px";T.style.padding="8px 8px 10px 8px";T.style.whiteSpace="nowrap";T.appendChild(W);T.style.color=
"gray";T.style.fontSize="11px";var U=document.createElement("div");T.appendChild(U);mxUtils.write(U,H);if(null!=E&&null==b[E]){W.style.visibility="hidden";mxUtils.setOpacity(U,10);var V=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});V.spin(T);var l=window.setTimeout(function(){null==b[E]&&(V.stop(),T.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[E]&&(window.clearTimeout(l),
mxUtils.setOpacity(U,100),W.style.visibility="",V.stop(),P())}))}else P();p.appendChild(T);++F==g&&(mxUtils.br(p),F=0)}function y(M){var H=N.value;if(null==M||null!=H&&0<H.length)C&&b.hideDialog(),k(H,M,N)}e="1"==urlParams.noDevice?!1:e;B=null!=B?B:!0;D=null!=D?D:!0;g=null!=g?g:4;C=null!=C?C:!0;x=document.createElement("div");x.style.whiteSpace="nowrap";null==d&&b.addLanguageMenu(x);var I=document.createElement("h2");mxUtils.write(I,v||mxResources.get("create"));I.style.marginTop="0px";I.style.marginBottom=
"24px";x.appendChild(I);mxUtils.write(x,mxResources.get("filename")+":");var N=document.createElement("input");N.setAttribute("value",f);N.style.width="200px";N.style.marginLeft="10px";N.style.marginBottom="20px";N.style.maxWidth="70%";this.init=function(){N.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?N.select():document.execCommand("selectAll",!1,null)};x.appendChild(N);null!=z&&(null!=b.editor.diagramFileTypes&&(v=FilenameDialog.createFileTypes(b,N,b.editor.diagramFileTypes),
-v.style.marginLeft="6px",v.style.width="90px",x.appendChild(v)),x.appendChild(FilenameDialog.createTypeHint(b,N,z)));z=null;if("1"!=urlParams.noDevice&&null!=q&&null!=n&&"image/"==n.substring(0,6)&&("image/svg"!=n.substring(0,9)||mxClient.IS_SVG)){N.style.width="160px";v=document.createElement("img");var t=m?q:btoa(unescape(encodeURIComponent(q)));v.setAttribute("src","data:"+n+";base64,"+t);v.style.position="absolute";v.style.top="70px";v.style.right="100px";v.style.maxWidth="120px";v.style.maxHeight=
-"80px";mxUtils.setPrefixedStyle(v.style,"transform","translate(50%,-50%)");x.appendChild(v);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=n||(z=mxUtils.button(mxResources.get("copy"),function(M){M=b.base64ToBlob(t,"image/png");M=new ClipboardItem({"image/png":M,"text/html":new Blob(['<img src="data:'+n+";base64,"+t+'">'],{type:"text/html"})});navigator.clipboard.write([M]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(H){b.handleError(H)}))}),
+v.style.marginLeft="6px",v.style.width="90px",x.appendChild(v)),x.appendChild(FilenameDialog.createTypeHint(b,N,z)));z=null;if("1"!=urlParams.noDevice&&null!=q&&null!=m&&"image/"==m.substring(0,6)&&("image/svg"!=m.substring(0,9)||mxClient.IS_SVG)){N.style.width="160px";v=document.createElement("img");var t=n?q:btoa(unescape(encodeURIComponent(q)));v.setAttribute("src","data:"+m+";base64,"+t);v.style.position="absolute";v.style.top="70px";v.style.right="100px";v.style.maxWidth="120px";v.style.maxHeight=
+"80px";mxUtils.setPrefixedStyle(v.style,"transform","translate(50%,-50%)");x.appendChild(v);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=m||(z=mxUtils.button(mxResources.get("copy"),function(M){M=b.base64ToBlob(t,"image/png");M=new ClipboardItem({"image/png":M,"text/html":new Blob(['<img src="data:'+m+";base64,"+t+'">'],{type:"text/html"})});navigator.clipboard.write([M]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(H){b.handleError(H)}))}),
z.style.marginTop="6px",z.className="geBtn");K&&Editor.popupsAllowed&&(v.style.cursor="pointer",mxEvent.addGestureListeners(v,null,null,function(M){mxEvent.isPopupTrigger(M)||y("_blank")}))}mxUtils.br(x);var p=document.createElement("div");p.style.textAlign="center";var F=0;p.style.marginTop="6px";x.appendChild(p);var J=document.createElement("select");J.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(q=document.createElement("option"),q.setAttribute("value",
App.MODE_GOOGLE),mxUtils.write(q,mxResources.get("googleDrive")),J.appendChild(q),u(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(q,mxResources.get("oneDrive")),J.appendChild(q),b.mode==App.MODE_ONEDRIVE&&q.setAttribute("selected","selected"),u(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,
"oneDrive")),"function"===typeof window.DropboxClient&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(q,mxResources.get("dropbox")),J.appendChild(q),b.mode==App.MODE_DROPBOX&&q.setAttribute("selected","selected"),u(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_GITHUB),mxUtils.write(q,mxResources.get("github")),J.appendChild(q),u(IMAGE_PATH+
@@ -11204,28 +11204,28 @@ var PopupDialog=function(b,f,k,d,v){v=null!=v?v:!0;var x=document.createElement(
null!=k&&k();b.openLink(f,null,!0)});D.className="geBtn gePrimaryBtn";D.style.width=B.style.width;x.appendChild(D);mxUtils.br(x);mxUtils.br(x);mxUtils.write(x,mxResources.get("allowPopups"));this.container=x},ImageDialog=function(b,f,k,d,v,x,B,D){function K(){0<g.value.length?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled")}x=null!=x?x:!0;var c=b.editor.graph,e=document.createElement("div");mxUtils.write(e,f);f=document.createElement("div");f.className="geTitle";f.style.backgroundColor=
"transparent";f.style.borderColor="transparent";f.style.whiteSpace="nowrap";f.style.textOverflow="clip";f.style.cursor="default";f.style.paddingRight="20px";var g=document.createElement("input");g.setAttribute("value",k);g.setAttribute("type","text");g.setAttribute("spellcheck","false");g.setAttribute("autocorrect","off");g.setAttribute("autocomplete","off");g.setAttribute("autocapitalize","off");g.style.marginTop="6px";g.style.width=(Graph.fileSupport?460:340)-20+"px";g.style.backgroundImage="url('"+
Dialog.prototype.clearImage+"')";g.style.backgroundRepeat="no-repeat";g.style.backgroundPosition="100% 50%";g.style.paddingRight="14px";k=document.createElement("div");k.setAttribute("title",mxResources.get("reset"));k.style.position="relative";k.style.left="-16px";k.style.width="12px";k.style.height="14px";k.style.cursor="pointer";k.style.display="inline-block";k.style.top="3px";k.style.background="url('"+b.editor.transparentImage+"')";mxEvent.addListener(k,"click",function(){g.value="";g.focus()});
-f.appendChild(g);f.appendChild(k);e.appendChild(f);var q=D,n,m,z=function(I,N,t,p){var F="data:"==I.substring(0,5);!b.isOffline()||F&&"undefined"===typeof chrome?0<I.length&&b.spinner.spin(document.body,mxResources.get("inserting"))?b.loadImage(I,function(J){b.spinner.stop();b.hideDialog();var M=!1===p?1:null!=N&&null!=t?Math.max(N/J.width,t/J.height):Math.min(1,Math.min(520/J.width,520/J.height));x&&(I=b.convertDataUri(I));d(I,Math.round(Number(J.width)*M),Math.round(Number(J.height)*M),q,n,m)},
-function(){b.spinner.stop();d(null);b.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b.hideDialog(),d(I,null,null,q,n,m)):(I=b.convertDataUri(I),N=null==N?120:N,t=null==t?100:t,b.hideDialog(),d(I,N,t,q,n,m))},C=function(I,N){if(null!=I){var t=v?null:c.getModel().getGeometry(c.getSelectionCell());null!=t?z(I,t.width,t.height,N):z(I,null,null,N)}else b.hideDialog(),d(null)};this.init=function(){g.focus();if(Graph.fileSupport){g.setAttribute("placeholder",
+f.appendChild(g);f.appendChild(k);e.appendChild(f);var q=D,m,n,z=function(I,N,t,p){var F="data:"==I.substring(0,5);!b.isOffline()||F&&"undefined"===typeof chrome?0<I.length&&b.spinner.spin(document.body,mxResources.get("inserting"))?b.loadImage(I,function(J){b.spinner.stop();b.hideDialog();var M=!1===p?1:null!=N&&null!=t?Math.max(N/J.width,t/J.height):Math.min(1,Math.min(520/J.width,520/J.height));x&&(I=b.convertDataUri(I));d(I,Math.round(Number(J.width)*M),Math.round(Number(J.height)*M),q,m,n)},
+function(){b.spinner.stop();d(null);b.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b.hideDialog(),d(I,null,null,q,m,n)):(I=b.convertDataUri(I),N=null==N?120:N,t=null==t?100:t,b.hideDialog(),d(I,N,t,q,m,n))},C=function(I,N){if(null!=I){var t=v?null:c.getModel().getGeometry(c.getSelectionCell());null!=t?z(I,t.width,t.height,N):z(I,null,null,N)}else b.hideDialog(),d(null)};this.init=function(){g.focus();if(Graph.fileSupport){g.setAttribute("placeholder",
mxResources.get("dragImagesHere"));var I=e.parentNode,N=null;mxEvent.addListener(I,"dragleave",function(t){null!=N&&(N.parentNode.removeChild(N),N=null);t.stopPropagation();t.preventDefault()});mxEvent.addListener(I,"dragover",mxUtils.bind(this,function(t){null==N&&(!mxClient.IS_IE||10<document.documentMode)&&(N=b.highlightElement(I));t.stopPropagation();t.preventDefault()}));mxEvent.addListener(I,"drop",mxUtils.bind(this,function(t){null!=N&&(N.parentNode.removeChild(N),N=null);if(0<t.dataTransfer.files.length)b.importFiles(t.dataTransfer.files,
0,0,b.maxImageSize,function(F,J,M,H,G,E,P,T){C(F,T)},function(){},function(F){return"image/"==F.type.substring(0,6)},function(F){for(var J=0;J<F.length;J++)F[J]()},!mxEvent.isControlDown(t),null,null,!0);else if(0<=mxUtils.indexOf(t.dataTransfer.types,"text/uri-list")){var p=t.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(p)&&C(decodeURIComponent(p))}t.stopPropagation();t.preventDefault()}),!1)}};D=document.createElement("div");D.style.marginTop="14px";D.style.textAlign=
"center";k=mxUtils.button(mxResources.get("cancel"),function(){b.spinner.stop();b.hideDialog()});k.className="geBtn";b.editor.cancelFirst&&D.appendChild(k);ImageDialog.filePicked=function(I){I.action==google.picker.Action.PICKED&&null!=I.docs[0].thumbnails&&(I=I.docs[0].thumbnails[I.docs[0].thumbnails.length-1],null!=I&&(g.value=I.url));g.focus()};if(Graph.fileSupport){if(null==b.imgDlgFileInputElt){var u=document.createElement("input");u.setAttribute("multiple","multiple");u.setAttribute("type",
"file");mxEvent.addListener(u,"change",function(I){null!=u.files&&(b.importFiles(u.files,0,0,b.maxImageSize,function(N,t,p,F,J,M){C(N)},function(){},function(N){return"image/"==N.type.substring(0,6)},function(N){for(var t=0;t<N.length;t++)N[t]()},!0),u.type="",u.type="file",u.value="")});u.style.display="none";document.body.appendChild(u);b.imgDlgFileInputElt=u}f=mxUtils.button(mxResources.get("open"),function(){b.imgDlgFileInputElt.click()});f.className="geBtn";D.appendChild(f)}mxEvent.addListener(g,
-"keypress",function(I){13==I.keyCode&&C(g.value)});var y=mxUtils.button(mxResources.get("crop"),function(){var I=new CropImageDialog(b,g.value,q,function(N,t,p){q=N;n=t;m=p});b.showDialog(I.container,300,390,!0,!0)});B&&(y.className="geBtn",D.appendChild(y));mxEvent.addListener(g,"change",function(I){q=null;K()});K();B=mxUtils.button(mxResources.get("apply"),function(){C(g.value)});B.className="geBtn gePrimaryBtn";D.appendChild(B);b.editor.cancelFirst||D.appendChild(k);Graph.fileSupport&&(D.style.marginTop=
+"keypress",function(I){13==I.keyCode&&C(g.value)});var y=mxUtils.button(mxResources.get("crop"),function(){var I=new CropImageDialog(b,g.value,q,function(N,t,p){q=N;m=t;n=p});b.showDialog(I.container,300,390,!0,!0)});B&&(y.className="geBtn",D.appendChild(y));mxEvent.addListener(g,"change",function(I){q=null;K()});K();B=mxUtils.button(mxResources.get("apply"),function(){C(g.value)});B.className="geBtn gePrimaryBtn";D.appendChild(B);b.editor.cancelFirst||D.appendChild(k);Graph.fileSupport&&(D.style.marginTop=
"120px",e.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",e.style.backgroundPosition="center 65%",e.style.backgroundRepeat="no-repeat",B=document.createElement("div"),B.style.position="absolute",B.style.width="420px",B.style.top="58%",B.style.textAlign="center",B.style.fontSize="18px",B.style.color="#a0c3ff",mxUtils.write(B,mxResources.get("dragImagesHere")),e.appendChild(B));e.appendChild(D);this.container=e},LinkDialog=function(b,f,k,d,v,x,B){function D(I,N,t){t=mxUtils.button("",t);
t.className="geBtn";t.setAttribute("title",N);N=document.createElement("img");N.style.height="26px";N.style.width="26px";N.setAttribute("src",I);t.style.minWidth="42px";t.style.verticalAlign="middle";t.appendChild(N);y.appendChild(t)}var K=document.createElement("div");K.style.height="100%";mxUtils.write(K,mxResources.get("editLink")+":");var c=document.createElement("div");c.className="geTitle";c.style.backgroundColor="transparent";c.style.borderColor="transparent";c.style.whiteSpace="nowrap";c.style.textOverflow=
"clip";c.style.cursor="default";c.style.paddingRight="20px";var e=document.createElement("input");e.setAttribute("placeholder",mxResources.get("dragUrlsHere"));e.setAttribute("type","text");e.style.marginTop="6px";e.style.width="97%";e.style.boxSizing="border-box";e.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";e.style.backgroundRepeat="no-repeat";e.style.backgroundPosition="100% 50%";e.style.paddingRight="14px";e.style.marginBottom="4px";var g=document.createElement("div");g.setAttribute("title",
mxResources.get("reset"));g.style.position="relative";g.style.left="-16px";g.style.width="12px";g.style.height="14px";g.style.cursor="pointer";g.style.display="inline-block";g.style.top="3px";g.style.background="url('"+b.editor.transparentImage+"')";mxEvent.addListener(g,"click",function(){e.value="";e.focus()});var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","url");q.setAttribute("type","radio");q.setAttribute("name","geLinkDialogOption");
-var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;";n.setAttribute("value","url");n.setAttribute("type","radio");n.setAttribute("name","geLinkDialogOption");var m=document.createElement("select");m.style.width="520px";var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.margin="0 6p 0 6px";null!=B&&(z.setAttribute("checked","checked"),z.defaultChecked=!0);B=null!=B?B:"_blank";z.setAttribute("title",B);x&&(e.style.width="340px");if(v&&
-null!=b.pages){null!=f&&Graph.isPageLink(f)?(n.setAttribute("checked","checked"),n.defaultChecked=!0):(e.setAttribute("value",f),q.setAttribute("checked","checked"),q.defaultChecked=!0);c.appendChild(q);c.appendChild(e);c.appendChild(g);x&&(c.appendChild(z),mxUtils.write(c,mxResources.get("openInNewWindow")));mxUtils.br(c);c.appendChild(n);v=!1;for(x=0;x<b.pages.length;x++)g=document.createElement("option"),mxUtils.write(g,b.pages[x].getName()||mxResources.get("pageWithNumber",[x+1])),g.setAttribute("value",
-"data:page/id,"+b.pages[x].getId()),f==g.getAttribute("value")&&(g.setAttribute("selected","selected"),v=!0),m.appendChild(g);if(!v&&n.checked){var C=document.createElement("option");mxUtils.write(C,mxResources.get("pageNotFound"));C.setAttribute("disabled","disabled");C.setAttribute("selected","selected");C.setAttribute("value","pageNotFound");m.appendChild(C);mxEvent.addListener(m,"change",function(){null==C.parentNode||C.selected||C.parentNode.removeChild(C)})}c.appendChild(m)}else e.setAttribute("value",
-f),c.appendChild(e),c.appendChild(g);K.appendChild(c);var u=mxUtils.button(k,function(){b.hideDialog();d(n.checked?"pageNotFound"!==m.value?m.value:f:e.value,LinkDialog.selectedDocs,z.checked?B:null)});u.style.verticalAlign="middle";u.className="geBtn gePrimaryBtn";this.init=function(){n.checked?m.focus():(e.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(m,"focus",function(){q.removeAttribute("checked");n.setAttribute("checked",
-"checked");n.checked=!0});mxEvent.addListener(e,"focus",function(){n.removeAttribute("checked");q.setAttribute("checked","checked");q.checked=!0});if(Graph.fileSupport){var I=K.parentNode,N=null;mxEvent.addListener(I,"dragleave",function(t){null!=N&&(N.parentNode.removeChild(N),N=null);t.stopPropagation();t.preventDefault()});mxEvent.addListener(I,"dragover",mxUtils.bind(this,function(t){null==N&&(!mxClient.IS_IE||10<document.documentMode)&&(N=b.highlightElement(I));t.stopPropagation();t.preventDefault()}));
+var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","geLinkDialogOption");var n=document.createElement("select");n.style.width="520px";var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.margin="0 6p 0 6px";null!=B&&(z.setAttribute("checked","checked"),z.defaultChecked=!0);B=null!=B?B:"_blank";z.setAttribute("title",B);x&&(e.style.width="340px");if(v&&
+null!=b.pages){null!=f&&Graph.isPageLink(f)?(m.setAttribute("checked","checked"),m.defaultChecked=!0):(e.setAttribute("value",f),q.setAttribute("checked","checked"),q.defaultChecked=!0);c.appendChild(q);c.appendChild(e);c.appendChild(g);x&&(c.appendChild(z),mxUtils.write(c,mxResources.get("openInNewWindow")));mxUtils.br(c);c.appendChild(m);v=!1;for(x=0;x<b.pages.length;x++)g=document.createElement("option"),mxUtils.write(g,b.pages[x].getName()||mxResources.get("pageWithNumber",[x+1])),g.setAttribute("value",
+"data:page/id,"+b.pages[x].getId()),f==g.getAttribute("value")&&(g.setAttribute("selected","selected"),v=!0),n.appendChild(g);if(!v&&m.checked){var C=document.createElement("option");mxUtils.write(C,mxResources.get("pageNotFound"));C.setAttribute("disabled","disabled");C.setAttribute("selected","selected");C.setAttribute("value","pageNotFound");n.appendChild(C);mxEvent.addListener(n,"change",function(){null==C.parentNode||C.selected||C.parentNode.removeChild(C)})}c.appendChild(n)}else e.setAttribute("value",
+f),c.appendChild(e),c.appendChild(g);K.appendChild(c);var u=mxUtils.button(k,function(){b.hideDialog();d(m.checked?"pageNotFound"!==n.value?n.value:f:e.value,LinkDialog.selectedDocs,z.checked?B:null)});u.style.verticalAlign="middle";u.className="geBtn gePrimaryBtn";this.init=function(){m.checked?n.focus():(e.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(n,"focus",function(){q.removeAttribute("checked");m.setAttribute("checked",
+"checked");m.checked=!0});mxEvent.addListener(e,"focus",function(){m.removeAttribute("checked");q.setAttribute("checked","checked");q.checked=!0});if(Graph.fileSupport){var I=K.parentNode,N=null;mxEvent.addListener(I,"dragleave",function(t){null!=N&&(N.parentNode.removeChild(N),N=null);t.stopPropagation();t.preventDefault()});mxEvent.addListener(I,"dragover",mxUtils.bind(this,function(t){null==N&&(!mxClient.IS_IE||10<document.documentMode)&&(N=b.highlightElement(I));t.stopPropagation();t.preventDefault()}));
mxEvent.addListener(I,"drop",mxUtils.bind(this,function(t){null!=N&&(N.parentNode.removeChild(N),N=null);0<=mxUtils.indexOf(t.dataTransfer.types,"text/uri-list")&&(e.value=decodeURIComponent(t.dataTransfer.getData("text/uri-list")),q.setAttribute("checked","checked"),q.checked=!0,u.click());t.stopPropagation();t.preventDefault()}),!1)}};var y=document.createElement("div");y.style.marginTop="18px";y.style.textAlign="center";k=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.diagrams.net/doc/faq/custom-links")});
k.style.verticalAlign="middle";k.className="geBtn";y.appendChild(k);b.isOffline()&&!mxClient.IS_CHROMEAPP&&(k.style.display="none");k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.style.verticalAlign="middle";k.className="geBtn";b.editor.cancelFirst&&y.appendChild(k);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(I){if(I.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=I.docs;var N=I.docs[0].url;"application/mxe"==I.docs[0].mimeType||null!=I.docs[0].mimeType&&
"application/vnd.jgraph."==I.docs[0].mimeType.substring(0,23)?N="https://www.draw.io/#G"+I.docs[0].id:"application/vnd.google-apps.folder"==I.docs[0].mimeType&&(N="https://drive.google.com/#folders/"+I.docs[0].id);e.value=N;e.focus()}else LinkDialog.selectedDocs=null;e.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=b.drive&&D(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){b.spinner.spin(document.body,mxResources.get("authorizing"))&&b.drive.checkToken(mxUtils.bind(this,
function(){b.spinner.stop();if(null==b.linkPicker){var I=b.drive.createLinkPicker();b.linkPicker=I.setCallback(function(N){LinkDialog.filePicked(N)}).build()}b.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&D(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(I){e.value=I[0].link;e.focus()}})});null!=b.oneDrive&&D(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),
function(){b.oneDrive.pickFile(function(I,N){e.value=N.value[0].webUrl;e.focus()},!0)});null!=b.gitHub&&D(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){b.gitHub.pickFile(function(I){if(null!=I){I=I.split("/");var N=I[0],t=I[1],p=I[2];I=I.slice(3,I.length).join("/");e.value="https://github.com/"+N+"/"+t+"/blob/"+p+"/"+I;e.focus()}})});null!=b.gitLab&&D(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){b.gitLab.pickFile(function(I){if(null!=I){I=I.split("/");var N=
-I[0],t=I[1],p=I[2];I=I.slice(3,I.length).join("/");e.value=DRAWIO_GITLAB_URL+"/"+N+"/"+t+"/blob/"+p+"/"+I;e.focus()}})});mxEvent.addListener(e,"keypress",function(I){13==I.keyCode&&(b.hideDialog(),d(n.checked?m.value:e.value,LinkDialog.selectedDocs))});y.appendChild(u);b.editor.cancelFirst||y.appendChild(k);K.appendChild(y);this.container=K},FeedbackDialog=function(b,f,k,d){var v=document.createElement("div"),x=document.createElement("div");mxUtils.write(x,mxResources.get("sendYourFeedback"));x.style.fontSize=
+I[0],t=I[1],p=I[2];I=I.slice(3,I.length).join("/");e.value=DRAWIO_GITLAB_URL+"/"+N+"/"+t+"/blob/"+p+"/"+I;e.focus()}})});mxEvent.addListener(e,"keypress",function(I){13==I.keyCode&&(b.hideDialog(),d(m.checked?n.value:e.value,LinkDialog.selectedDocs))});y.appendChild(u);b.editor.cancelFirst||y.appendChild(k);K.appendChild(y);this.container=K},FeedbackDialog=function(b,f,k,d){var v=document.createElement("div"),x=document.createElement("div");mxUtils.write(x,mxResources.get("sendYourFeedback"));x.style.fontSize=
"18px";x.style.marginBottom="18px";v.appendChild(x);x=document.createElement("div");mxUtils.write(x,mxResources.get("yourEmailAddress")+(k?"":" ("+mxResources.get("required")+")"));v.appendChild(x);var B=document.createElement("input");B.setAttribute("type","text");B.style.marginTop="6px";B.style.width="600px";var D=mxUtils.button(mxResources.get("sendMessage"),function(){var g=e.value+(c.checked?"\nDiagram:\n"+(null!=d?d:mxUtils.getXml(b.getXmlFileData())):"")+"\nuserAgent:\n"+navigator.userAgent+
"\nappVersion:\n"+navigator.appVersion+"\nappName:\n"+navigator.appName+"\nplatform:\n"+navigator.platform;g.length>FeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(B.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=f?f:"Feedback")+
":\n"+g),function(q){b.spinner.stop();200<=q.getStatus()&&299>=q.getStatus()?b.alert(mxResources.get("feedbackSent")):b.alert(mxResources.get("errorSendingFeedback"))},function(){b.spinner.stop();b.alert(mxResources.get("errorSendingFeedback"))}))});D.className="geBtn gePrimaryBtn";if(!k){D.setAttribute("disabled","disabled");var K=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;mxEvent.addListener(B,
@@ -11235,46 +11235,46 @@ v.appendChild(e);k=document.createElement("div");k.style.marginTop="26px";k.styl
var RevisionDialog=function(b,f,k){var d=document.createElement("div"),v=document.createElement("h3");v.style.marginTop="0px";mxUtils.write(v,mxResources.get("revisionHistory"));d.appendChild(v);v=document.createElement("div");v.style.position="absolute";v.style.overflow="auto";v.style.width="170px";v.style.height="378px";d.appendChild(v);var x=document.createElement("div");x.style.position="absolute";x.style.border="1px solid lightGray";x.style.left="199px";x.style.width="470px";x.style.height="376px";
x.style.overflow="hidden";var B=document.createElement("div");B.style.cssText="position:absolute;left:0;right:0;top:0;bottom:20px;text-align:center;transform:translate(0,50%);pointer-events:none;";x.appendChild(B);mxEvent.disableContextMenu(x);d.appendChild(x);var D=new Graph(x);D.setTooltips(!1);D.setEnabled(!1);D.setPanning(!0);D.panningHandler.ignoreCell=!0;D.panningHandler.useLeftButtonForPanning=!0;D.minFitScale=null;D.maxFitScale=null;D.centerZoom=!0;var K=0,c=null,e=0,g=D.getGlobalVariable;
D.getGlobalVariable=function(X){return"page"==X&&null!=c&&null!=c[e]?c[e].getAttribute("name"):"pagenumber"==X?e+1:"pagecount"==X?null!=c?c.length:1:g.apply(this,arguments)};D.getLinkForCell=function(){return null};Editor.MathJaxRender&&D.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(X,aa){b.editor.graph.mathEnabled&&Editor.MathJaxRender(D.container)}));var q={lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.4,trail:60,
-shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},n=new Spinner(q),m=b.getCurrentFile(),z=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),C={};for(q=0;q<z.length;q++)C[z[q].getAttribute("id")]=z[q];var u=null,y=null,I=null,N=null,t=mxUtils.button("",function(){null!=I&&D.zoomIn()});t.className="geSprite geSprite-zoomin";t.setAttribute("title",mxResources.get("zoomIn"));t.style.outline="none";t.style.border="none";t.style.margin="2px";t.setAttribute("disabled","disabled");
+shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},m=new Spinner(q),n=b.getCurrentFile(),z=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),C={};for(q=0;q<z.length;q++)C[z[q].getAttribute("id")]=z[q];var u=null,y=null,I=null,N=null,t=mxUtils.button("",function(){null!=I&&D.zoomIn()});t.className="geSprite geSprite-zoomin";t.setAttribute("title",mxResources.get("zoomIn"));t.style.outline="none";t.style.border="none";t.style.margin="2px";t.setAttribute("disabled","disabled");
mxUtils.setOpacity(t,20);var p=mxUtils.button("",function(){null!=I&&D.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border="none";p.style.margin="2px";p.setAttribute("disabled","disabled");mxUtils.setOpacity(p,20);var F=mxUtils.button("",function(){null!=I&&(D.maxFitScale=8,D.fit(8),D.center())});F.className="geSprite geSprite-fit";F.setAttribute("title",mxResources.get("fit"));F.style.outline="none";F.style.border=
"none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var J=mxUtils.button("",function(){null!=I&&(D.zoomActual(),D.center())});J.className="geSprite geSprite-actualsize";J.setAttribute("title",mxResources.get("actualSize"));J.style.outline="none";J.style.border="none";J.style.margin="2px";J.setAttribute("disabled","disabled");mxUtils.setOpacity(J,20);var M=mxUtils.button("",function(){});M.className="geSprite geSprite-middle";M.setAttribute("title",mxResources.get("compare"));
M.style.outline="none";M.style.border="none";M.style.margin="2px";mxUtils.setOpacity(M,60);var H=x.cloneNode(!1);H.style.pointerEvent="none";x.parentNode.appendChild(H);var G=new Graph(H);G.setTooltips(!1);G.setEnabled(!1);G.setPanning(!0);G.panningHandler.ignoreCell=!0;G.panningHandler.useLeftButtonForPanning=!0;G.minFitScale=null;G.maxFitScale=null;G.centerZoom=!0;mxEvent.addGestureListeners(M,function(X){X=C[c[K].getAttribute("id")];mxUtils.setOpacity(M,20);B.innerText="";null==X?mxUtils.write(B,
mxResources.get("pageNotFound")):(E.style.display="none",x.style.display="none",H.style.display="",H.style.backgroundColor=x.style.backgroundColor,X=Editor.parseDiagramNode(X),(new mxCodec(X.ownerDocument)).decode(X,G.getModel()),G.view.scaleAndTranslate(D.view.scale,D.view.translate.x,D.view.translate.y))},null,function(){mxUtils.setOpacity(M,60);B.innerText="";"none"==x.style.display&&(E.style.display="",x.style.display="",H.style.display="none")});var E=document.createElement("div");E.style.position=
"absolute";E.style.textAlign="right";E.style.color="gray";E.style.marginTop="10px";E.style.backgroundColor="transparent";E.style.top="440px";E.style.right="32px";E.style.maxWidth="380px";E.style.cursor="default";var P=mxUtils.button(mxResources.get("download"),function(){if(null!=I){var X=mxUtils.getXml(I.documentElement),aa=b.getBaseFilename()+".drawio";b.isLocalFileSave()?b.saveLocalFile(X,aa,"text/xml"):(X="undefined"===typeof pako?"&xml="+encodeURIComponent(X):"&data="+encodeURIComponent(Graph.compress(X)),
-(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(aa)+"&format=xml"+X)).simulate(document,"_blank"))}});P.className="geBtn";P.setAttribute("disabled","disabled");var T=mxUtils.button(mxResources.get("restore"),function(X){null!=I&&null!=N&&(mxEvent.isShiftDown(X)?null!=I&&(X=b.getPagesForNode(I.documentElement),X=b.diffPages(b.pages,X),X=new TextareaDialog(b,mxResources.get("compare"),JSON.stringify(X,null,2),function(aa){if(0<aa.length)try{b.confirm(mxResources.get("areYouSure"),function(){m.patch([JSON.parse(aa)],
-null,!0);b.hideDialog();b.hideDialog()})}catch(Y){b.handleError(Y)}},null,null,null,null,null,!0,null,mxResources.get("merge")),b.showDialog(X.container,620,460,!0,!0),X.init()):b.confirm(mxResources.get("areYouSure"),function(){null!=k?k(N):b.spinner.spin(document.body,mxResources.get("restoring"))&&m.save(!0,function(aa){b.spinner.stop();b.replaceFileData(N);b.hideDialog()},function(aa){b.spinner.stop();b.editor.setStatus("");b.handleError(aa,null!=aa?mxResources.get("errorSavingFile"):null)})}))});
+(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(aa)+"&format=xml"+X)).simulate(document,"_blank"))}});P.className="geBtn";P.setAttribute("disabled","disabled");var T=mxUtils.button(mxResources.get("restore"),function(X){null!=I&&null!=N&&(mxEvent.isShiftDown(X)?null!=I&&(X=b.getPagesForNode(I.documentElement),X=b.diffPages(b.pages,X),X=new TextareaDialog(b,mxResources.get("compare"),JSON.stringify(X,null,2),function(aa){if(0<aa.length)try{b.confirm(mxResources.get("areYouSure"),function(){n.patch([JSON.parse(aa)],
+null,!0);b.hideDialog();b.hideDialog()})}catch(Y){b.handleError(Y)}},null,null,null,null,null,!0,null,mxResources.get("merge")),b.showDialog(X.container,620,460,!0,!0),X.init()):b.confirm(mxResources.get("areYouSure"),function(){null!=k?k(N):b.spinner.spin(document.body,mxResources.get("restoring"))&&n.save(!0,function(aa){b.spinner.stop();b.replaceFileData(N);b.hideDialog()},function(aa){b.spinner.stop();b.editor.setStatus("");b.handleError(aa,null!=aa?mxResources.get("errorSavingFile"):null)})}))});
T.className="geBtn";T.setAttribute("disabled","disabled");T.setAttribute("title","Shift+Click for Diff");var W=document.createElement("select");W.setAttribute("disabled","disabled");W.style.maxWidth="80px";W.style.position="relative";W.style.top="-2px";W.style.verticalAlign="bottom";W.style.marginRight="6px";W.style.display="none";var U=null;mxEvent.addListener(W,"change",function(X){null!=U&&(U(X),mxEvent.consume(X))});var V=mxUtils.button(mxResources.get("edit"),function(){null!=I&&(window.openFile=
new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(I.documentElement)),b.openLink(b.getUrl(),null,!0))});V.className="geBtn";V.setAttribute("disabled","disabled");null!=k&&(V.style.display="none");var l=mxUtils.button(mxResources.get("show"),function(){null!=y&&b.openLink(y.getUrl(W.selectedIndex))});l.className="geBtn gePrimaryBtn";l.setAttribute("disabled","disabled");null!=k&&(l.style.display="none",T.className="geBtn gePrimaryBtn");z=document.createElement("div");
z.style.position="absolute";z.style.top="482px";z.style.width="640px";z.style.textAlign="right";var A=document.createElement("div");A.className="geToolbarContainer";A.style.backgroundColor="transparent";A.style.padding="2px";A.style.border="none";A.style.left="199px";A.style.top="442px";var L=null;if(null!=f&&0<f.length){x.style.cursor="move";var Q=document.createElement("table");Q.style.border="1px solid lightGray";Q.style.borderCollapse="collapse";Q.style.borderSpacing="0px";Q.style.width="100%";
-var O=document.createElement("tbody"),R=(new Date).toDateString();null!=b.currentPage&&null!=b.pages&&(K=mxUtils.indexOf(b.pages,b.currentPage));for(q=f.length-1;0<=q;q--){var S=function(X){var aa=new Date(X.modifiedDate),Y=null;if(0<=aa.getTime()){var Z=function(fa){n.stop();B.innerText="";var la=mxUtils.parseXml(fa),ia=b.editor.extractGraphModel(la.documentElement,!0);if(null!=ia){var qa=function(Da){null!=Da&&(Da=ka(Editor.parseDiagramNode(Da)));return Da},ka=function(Da){var Ea=Da.getAttribute("background");
+var O=document.createElement("tbody"),R=(new Date).toDateString();null!=b.currentPage&&null!=b.pages&&(K=mxUtils.indexOf(b.pages,b.currentPage));for(q=f.length-1;0<=q;q--){var S=function(X){var aa=new Date(X.modifiedDate),Y=null;if(0<=aa.getTime()){var Z=function(fa){m.stop();B.innerText="";var la=mxUtils.parseXml(fa),ia=b.editor.extractGraphModel(la.documentElement,!0);if(null!=ia){var qa=function(Da){null!=Da&&(Da=ka(Editor.parseDiagramNode(Da)));return Da},ka=function(Da){var Ea=Da.getAttribute("background");
if(null==Ea||""==Ea||Ea==mxConstants.NONE)Ea=D.defaultPageBackgroundColor;x.style.backgroundColor=Ea;(new mxCodec(Da.ownerDocument)).decode(Da,D.getModel());D.maxFitScale=1;D.fit(8);D.center();return Da};W.style.display="none";W.innerText="";I=la;N=fa;c=parseSelectFunction=null;e=0;if("mxfile"==ia.nodeName){la=ia.getElementsByTagName("diagram");c=[];for(fa=0;fa<la.length;fa++)c.push(la[fa]);e=Math.min(K,c.length-1);0<c.length&&qa(c[e]);if(1<c.length)for(W.removeAttribute("disabled"),W.style.display=
"",fa=0;fa<c.length;fa++)la=document.createElement("option"),mxUtils.write(la,c[fa].getAttribute("name")||mxResources.get("pageWithNumber",[fa+1])),la.setAttribute("value",fa),fa==e&&la.setAttribute("selected","selected"),W.appendChild(la);U=function(){try{var Da=parseInt(W.value);e=K=Da;qa(c[Da])}catch(Ea){W.value=K,b.handleError(Ea)}}}else ka(ia);fa=X.lastModifyingUserName;null!=fa&&20<fa.length&&(fa=fa.substring(0,20)+"...");E.innerText="";mxUtils.write(E,(null!=fa?fa+" ":"")+aa.toLocaleDateString()+
-" "+aa.toLocaleTimeString());E.setAttribute("title",Y.getAttribute("title"));t.removeAttribute("disabled");p.removeAttribute("disabled");F.removeAttribute("disabled");J.removeAttribute("disabled");M.removeAttribute("disabled");null!=m&&m.isRestricted()||(b.editor.graph.isEnabled()&&T.removeAttribute("disabled"),P.removeAttribute("disabled"),l.removeAttribute("disabled"),V.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(p,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(J,60);
+" "+aa.toLocaleTimeString());E.setAttribute("title",Y.getAttribute("title"));t.removeAttribute("disabled");p.removeAttribute("disabled");F.removeAttribute("disabled");J.removeAttribute("disabled");M.removeAttribute("disabled");null!=n&&n.isRestricted()||(b.editor.graph.isEnabled()&&T.removeAttribute("disabled"),P.removeAttribute("disabled"),l.removeAttribute("disabled"),V.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(p,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(J,60);
mxUtils.setOpacity(M,60)}else W.style.display="none",W.innerText="",E.innerText="",mxUtils.write(E,mxResources.get("errorLoadingFile")),mxUtils.write(B,mxResources.get("errorLoadingFile"))};Y=document.createElement("tr");Y.style.borderBottom="1px solid lightGray";Y.style.fontSize="12px";Y.style.cursor="pointer";var ca=document.createElement("td");ca.style.padding="6px";ca.style.whiteSpace="nowrap";X==f[f.length-1]?mxUtils.write(ca,mxResources.get("current")):aa.toDateString()===R?mxUtils.write(ca,
-aa.toLocaleTimeString()):mxUtils.write(ca,aa.toLocaleDateString()+" "+aa.toLocaleTimeString());Y.appendChild(ca);Y.setAttribute("title",aa.toLocaleDateString()+" "+aa.toLocaleTimeString()+(null!=X.fileSize?" "+b.formatFileSize(parseInt(X.fileSize)):"")+(null!=X.lastModifyingUserName?" "+X.lastModifyingUserName:""));mxEvent.addListener(Y,"click",function(fa){y!=X&&(n.stop(),null!=u&&(u.style.backgroundColor=""),y=X,u=Y,u.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",N=I=null,E.removeAttribute("title"),
+aa.toLocaleTimeString()):mxUtils.write(ca,aa.toLocaleDateString()+" "+aa.toLocaleTimeString());Y.appendChild(ca);Y.setAttribute("title",aa.toLocaleDateString()+" "+aa.toLocaleTimeString()+(null!=X.fileSize?" "+b.formatFileSize(parseInt(X.fileSize)):"")+(null!=X.lastModifyingUserName?" "+X.lastModifyingUserName:""));mxEvent.addListener(Y,"click",function(fa){y!=X&&(m.stop(),null!=u&&(u.style.backgroundColor=""),y=X,u=Y,u.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",N=I=null,E.removeAttribute("title"),
E.innerText=mxResources.get("loading")+"...",x.style.backgroundColor=D.defaultPageBackgroundColor,B.innerText="",D.getModel().clear(),T.setAttribute("disabled","disabled"),P.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),p.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),M.setAttribute("disabled","disabled"),V.setAttribute("disabled","disabled"),l.setAttribute("disabled","disabled"),W.setAttribute("disabled",
-"disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(p,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(J,20),mxUtils.setOpacity(M,20),n.spin(x),X.getXml(function(la){if(y==X)try{Z(la)}catch(ia){E.innerText=mxResources.get("error")+": "+ia.message}},function(la){n.stop();W.style.display="none";W.innerText="";E.innerText="";mxUtils.write(E,mxResources.get("errorLoadingFile"));mxUtils.write(B,mxResources.get("errorLoadingFile"))}),mxEvent.consume(fa))});mxEvent.addListener(Y,"dblclick",function(fa){l.click();
-window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(fa)},!1);O.appendChild(Y)}return Y}(f[q]);null!=S&&q==f.length-1&&(L=S)}Q.appendChild(O);v.appendChild(Q)}else null==m||null==b.drive&&m.constructor==window.DriveFile||null==b.dropbox&&m.constructor==window.DropboxFile?(x.style.display="none",A.style.display="none",mxUtils.write(v,mxResources.get("notAvailable"))):(x.style.display="none",A.style.display="none",mxUtils.write(v,
+"disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(p,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(J,20),mxUtils.setOpacity(M,20),m.spin(x),X.getXml(function(la){if(y==X)try{Z(la)}catch(ia){E.innerText=mxResources.get("error")+": "+ia.message}},function(la){m.stop();W.style.display="none";W.innerText="";E.innerText="";mxUtils.write(E,mxResources.get("errorLoadingFile"));mxUtils.write(B,mxResources.get("errorLoadingFile"))}),mxEvent.consume(fa))});mxEvent.addListener(Y,"dblclick",function(fa){l.click();
+window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(fa)},!1);O.appendChild(Y)}return Y}(f[q]);null!=S&&q==f.length-1&&(L=S)}Q.appendChild(O);v.appendChild(Q)}else null==n||null==b.drive&&n.constructor==window.DriveFile||null==b.dropbox&&n.constructor==window.DropboxFile?(x.style.display="none",A.style.display="none",mxUtils.write(v,mxResources.get("notAvailable"))):(x.style.display="none",A.style.display="none",mxUtils.write(v,
mxResources.get("noRevisions")));this.init=function(){null!=L&&L.click()};v=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});v.className="geBtn";A.appendChild(W);A.appendChild(t);A.appendChild(p);A.appendChild(J);A.appendChild(F);A.appendChild(M);b.editor.cancelFirst?(z.appendChild(v),z.appendChild(P),z.appendChild(V),z.appendChild(T),z.appendChild(l)):(z.appendChild(P),z.appendChild(V),z.appendChild(T),z.appendChild(l),z.appendChild(v));d.appendChild(z);d.appendChild(A);d.appendChild(E);
-this.container=d},DraftDialog=function(b,f,k,d,v,x,B,D,K){var c=document.createElement("div"),e=document.createElement("div");e.style.marginTop="0px";e.style.whiteSpace="nowrap";e.style.overflow="auto";e.style.lineHeight="normal";mxUtils.write(e,f);c.appendChild(e);var g=document.createElement("select"),q=mxUtils.bind(this,function(){y=mxUtils.parseXml(K[g.value].data);I=b.editor.extractGraphModel(y.documentElement,!0);N=0;this.init()});if(null!=K){g.style.marginLeft="4px";for(f=0;f<K.length;f++){var n=
-document.createElement("option");n.setAttribute("value",f);var m=new Date(K[f].created),z=new Date(K[f].modified);mxUtils.write(n,m.toLocaleDateString()+" "+m.toLocaleTimeString()+" - "+(m.toDateString(),z.toDateString(),z.toLocaleDateString())+" "+z.toLocaleTimeString());g.appendChild(n)}e.appendChild(g);mxEvent.addListener(g,"change",q)}null==k&&(k=K[0].data);var C=document.createElement("div");C.style.position="absolute";C.style.border="1px solid lightGray";C.style.marginTop="10px";C.style.left=
+this.container=d},DraftDialog=function(b,f,k,d,v,x,B,D,K){var c=document.createElement("div"),e=document.createElement("div");e.style.marginTop="0px";e.style.whiteSpace="nowrap";e.style.overflow="auto";e.style.lineHeight="normal";mxUtils.write(e,f);c.appendChild(e);var g=document.createElement("select"),q=mxUtils.bind(this,function(){y=mxUtils.parseXml(K[g.value].data);I=b.editor.extractGraphModel(y.documentElement,!0);N=0;this.init()});if(null!=K){g.style.marginLeft="4px";for(f=0;f<K.length;f++){var m=
+document.createElement("option");m.setAttribute("value",f);var n=new Date(K[f].created),z=new Date(K[f].modified);mxUtils.write(m,n.toLocaleDateString()+" "+n.toLocaleTimeString()+" - "+(n.toDateString(),z.toDateString(),z.toLocaleDateString())+" "+z.toLocaleTimeString());g.appendChild(m)}e.appendChild(g);mxEvent.addListener(g,"change",q)}null==k&&(k=K[0].data);var C=document.createElement("div");C.style.position="absolute";C.style.border="1px solid lightGray";C.style.marginTop="10px";C.style.left=
"40px";C.style.right="40px";C.style.top="46px";C.style.bottom="74px";C.style.overflow="hidden";mxEvent.disableContextMenu(C);c.appendChild(C);var u=new Graph(C);u.setEnabled(!1);u.setPanning(!0);u.panningHandler.ignoreCell=!0;u.panningHandler.useLeftButtonForPanning=!0;u.minFitScale=null;u.maxFitScale=null;u.centerZoom=!0;var y=mxUtils.parseXml(k),I=b.editor.extractGraphModel(y.documentElement,!0),N=0,t=null,p=u.getGlobalVariable;u.getGlobalVariable=function(J){return"page"==J&&null!=t&&null!=t[N]?
t[N].getAttribute("name"):"pagenumber"==J?N+1:"pagecount"==J?null!=t?t.length:1:p.apply(this,arguments)};u.getLinkForCell=function(){return null};k=mxUtils.button("",function(){u.zoomIn()});k.className="geSprite geSprite-zoomin";k.setAttribute("title",mxResources.get("zoomIn"));k.style.outline="none";k.style.border="none";k.style.margin="2px";mxUtils.setOpacity(k,60);e=mxUtils.button("",function(){u.zoomOut()});e.className="geSprite geSprite-zoomout";e.setAttribute("title",mxResources.get("zoomOut"));
-e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);f=mxUtils.button("",function(){u.maxFitScale=8;u.fit(8);u.center()});f.className="geSprite geSprite-fit";f.setAttribute("title",mxResources.get("fit"));f.style.outline="none";f.style.border="none";f.style.margin="2px";mxUtils.setOpacity(f,60);n=mxUtils.button("",function(){u.zoomActual();u.center()});n.className="geSprite geSprite-actualsize";n.setAttribute("title",mxResources.get("actualSize"));n.style.outline=
-"none";n.style.border="none";n.style.margin="2px";mxUtils.setOpacity(n,60);B=mxUtils.button(B||mxResources.get("discard"),function(){v.apply(this,[g.value,mxUtils.bind(this,function(){null!=g.parentNode&&(g.options[g.selectedIndex].parentNode.removeChild(g.options[g.selectedIndex]),0<g.options.length?(g.value=g.options[0].value,q()):b.hideDialog(!0))})])});B.className="geBtn";var F=document.createElement("select");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign=
-"bottom";F.style.marginRight="6px";F.style.display="none";x=mxUtils.button(x||mxResources.get("edit"),function(){d.apply(this,[g.value])});x.className="geBtn gePrimaryBtn";m=document.createElement("div");m.style.position="absolute";m.style.bottom="30px";m.style.right="40px";m.style.textAlign="right";z=document.createElement("div");z.className="geToolbarContainer";z.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=
+e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);f=mxUtils.button("",function(){u.maxFitScale=8;u.fit(8);u.center()});f.className="geSprite geSprite-fit";f.setAttribute("title",mxResources.get("fit"));f.style.outline="none";f.style.border="none";f.style.margin="2px";mxUtils.setOpacity(f,60);m=mxUtils.button("",function(){u.zoomActual();u.center()});m.className="geSprite geSprite-actualsize";m.setAttribute("title",mxResources.get("actualSize"));m.style.outline=
+"none";m.style.border="none";m.style.margin="2px";mxUtils.setOpacity(m,60);B=mxUtils.button(B||mxResources.get("discard"),function(){v.apply(this,[g.value,mxUtils.bind(this,function(){null!=g.parentNode&&(g.options[g.selectedIndex].parentNode.removeChild(g.options[g.selectedIndex]),0<g.options.length?(g.value=g.options[0].value,q()):b.hideDialog(!0))})])});B.className="geBtn";var F=document.createElement("select");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign=
+"bottom";F.style.marginRight="6px";F.style.display="none";x=mxUtils.button(x||mxResources.get("edit"),function(){d.apply(this,[g.value])});x.className="geBtn gePrimaryBtn";n=document.createElement("div");n.style.position="absolute";n.style.bottom="30px";n.style.right="40px";n.style.textAlign="right";z=document.createElement("div");z.className="geToolbarContainer";z.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=
function(){function J(E){if(null!=E){var P=E.getAttribute("background");if(null==P||""==P||P==mxConstants.NONE)P=Editor.isDarkMode()?"transparent":"#ffffff";C.style.backgroundColor=P;(new mxCodec(E.ownerDocument)).decode(E,u.getModel());u.maxFitScale=1;u.fit(8);u.center()}return E}function M(E){null!=E&&(E=J(Editor.parseDiagramNode(E)));return E}mxEvent.addListener(F,"change",function(E){N=parseInt(F.value);M(t[N]);mxEvent.consume(E)});if("mxfile"==I.nodeName){var H=I.getElementsByTagName("diagram");
-t=[];for(var G=0;G<H.length;G++)t.push(H[G]);0<t.length&&M(t[N]);F.innerText="";if(1<t.length)for(F.style.display="",G=0;G<t.length;G++)H=document.createElement("option"),mxUtils.write(H,t[G].getAttribute("name")||mxResources.get("pageWithNumber",[G+1])),H.setAttribute("value",G),G==N&&H.setAttribute("selected","selected"),F.appendChild(H);else F.style.display="none"}else J(I)};z.appendChild(F);z.appendChild(k);z.appendChild(e);z.appendChild(n);z.appendChild(f);k=mxUtils.button(mxResources.get("cancel"),
-function(){b.hideDialog(!0)});k.className="geBtn";D=null!=D?mxUtils.button(mxResources.get("ignore"),D):null;null!=D&&(D.className="geBtn");b.editor.cancelFirst?(m.appendChild(k),null!=D&&m.appendChild(D),m.appendChild(B),m.appendChild(x)):(m.appendChild(x),m.appendChild(B),null!=D&&m.appendChild(D),m.appendChild(k));c.appendChild(m);c.appendChild(z);this.container=c},FindWindow=function(b,f,k,d,v,x){function B(U,V,l,A){if("object"===typeof V.value&&null!=V.value.attributes){V=V.value.attributes;
-for(var L=0;L<V.length;L++)if("label"!=V[L].nodeName){var Q=mxUtils.trim(V[L].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==U&&(A&&0<=Q.indexOf(l)||!A&&Q.substring(0,l.length)===l)||null!=U&&U.test(Q))return!0}}return!1}function D(){n&&t.value?(P.removeAttribute("disabled"),T.removeAttribute("disabled")):(P.setAttribute("disabled","disabled"),T.setAttribute("disabled","disabled"));t.value&&N.value?W.removeAttribute("disabled"):W.setAttribute("disabled","disabled")}function K(U,
-V,l){G.innerText="";var A=e.model.getDescendants(e.model.getRoot()),L=N.value.toLowerCase(),Q=p.checked?new RegExp(L):null,O=null;z=null;g!=L&&(g=L,q=null,m=!1);var R=null==q;if(0<L.length){if(m){m=!1;for(var S,X=0;X<b.pages.length;X++)if(b.currentPage==b.pages[X]){S=X;break}U=(S+1)%b.pages.length;q=null;do m=!1,A=b.pages[U],e=b.createTemporaryGraph(e.getStylesheet()),b.updatePageRoot(A),e.model.setRoot(A.root),U=(U+1)%b.pages.length;while(!K(!0,V,l)&&U!=S);q&&(q=null,l?b.editor.graph.model.execute(new SelectPage(b,
-A)):b.selectPage(A));m=!1;e=b.editor.graph;return K(!0,V,l)}for(X=0;X<A.length;X++){S=e.view.getState(A[X]);V&&null!=Q&&(R=R||S==q);if(null!=S&&null!=S.cell.value&&(R||null==O)&&(e.model.isVertex(S.cell)||e.model.isEdge(S.cell))){null!=S.style&&"1"==S.style.html?(J.innerHTML=e.sanitizeHtml(e.getLabel(S.cell)),label=mxUtils.extractTextWithWhitespace([J])):label=e.getLabel(S.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var aa=0;V&&x&&null!=Q&&S==q&&(label=label.substr(C),
-aa=C);var Y=""==t.value,Z=Y;if(null==Q&&(Z&&0<=label.indexOf(L)||!Z&&label.substring(0,L.length)===L||Y&&B(Q,S.cell,L,Z))||null!=Q&&(Q.test(label)||Y&&B(Q,S.cell,L,Z)))if(x&&(null!=Q?(Y=label.match(Q),null!=Y&&0<Y.length&&(z=Y[0].toLowerCase(),C=aa+Y.index+z.length)):(z=L,C=z.length)),R){O=S;break}else null==O&&(O=S)}R=R||S==q}}if(null!=O){if(X==A.length&&F.checked)return q=null,m=!0,K(!0,V,l);q=O;e.scrollCellToVisible(q.cell);e.isEnabled()&&!e.isCellLocked(q.cell)?l||e.getSelectionCell()==q.cell&&
-1==e.getSelectionCount()||e.setSelectionCell(q.cell):e.highlightCell(q.cell)}else{if(!U&&F.checked)return m=!0,K(!0,V,l);e.isEnabled()&&!l&&e.clearSelection()}n=null!=O;x&&!U&&D();return 0==L.length||null!=O}var c=b.actions.get("findReplace"),e=b.editor.graph,g=null,q=null,n=!1,m=!1,z=null,C=0,u=1,y=document.createElement("div");y.style.userSelect="none";y.style.overflow="hidden";y.style.padding="10px";y.style.height="100%";var I=x?"260px":"200px",N=document.createElement("input");N.setAttribute("placeholder",
+t=[];for(var G=0;G<H.length;G++)t.push(H[G]);0<t.length&&M(t[N]);F.innerText="";if(1<t.length)for(F.style.display="",G=0;G<t.length;G++)H=document.createElement("option"),mxUtils.write(H,t[G].getAttribute("name")||mxResources.get("pageWithNumber",[G+1])),H.setAttribute("value",G),G==N&&H.setAttribute("selected","selected"),F.appendChild(H);else F.style.display="none"}else J(I)};z.appendChild(F);z.appendChild(k);z.appendChild(e);z.appendChild(m);z.appendChild(f);k=mxUtils.button(mxResources.get("cancel"),
+function(){b.hideDialog(!0)});k.className="geBtn";D=null!=D?mxUtils.button(mxResources.get("ignore"),D):null;null!=D&&(D.className="geBtn");b.editor.cancelFirst?(n.appendChild(k),null!=D&&n.appendChild(D),n.appendChild(B),n.appendChild(x)):(n.appendChild(x),n.appendChild(B),null!=D&&n.appendChild(D),n.appendChild(k));c.appendChild(n);c.appendChild(z);this.container=c},FindWindow=function(b,f,k,d,v,x){function B(U,V,l,A){if("object"===typeof V.value&&null!=V.value.attributes){V=V.value.attributes;
+for(var L=0;L<V.length;L++)if("label"!=V[L].nodeName){var Q=mxUtils.trim(V[L].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==U&&(A&&0<=Q.indexOf(l)||!A&&Q.substring(0,l.length)===l)||null!=U&&U.test(Q))return!0}}return!1}function D(){m&&t.value?(P.removeAttribute("disabled"),T.removeAttribute("disabled")):(P.setAttribute("disabled","disabled"),T.setAttribute("disabled","disabled"));t.value&&N.value?W.removeAttribute("disabled"):W.setAttribute("disabled","disabled")}function K(U,
+V,l){G.innerText="";var A=e.model.getDescendants(e.model.getRoot()),L=N.value.toLowerCase(),Q=p.checked?new RegExp(L):null,O=null;z=null;g!=L&&(g=L,q=null,n=!1);var R=null==q;if(0<L.length){if(n){n=!1;for(var S,X=0;X<b.pages.length;X++)if(b.currentPage==b.pages[X]){S=X;break}U=(S+1)%b.pages.length;q=null;do n=!1,A=b.pages[U],e=b.createTemporaryGraph(e.getStylesheet()),b.updatePageRoot(A),e.model.setRoot(A.root),U=(U+1)%b.pages.length;while(!K(!0,V,l)&&U!=S);q&&(q=null,l?b.editor.graph.model.execute(new SelectPage(b,
+A)):b.selectPage(A));n=!1;e=b.editor.graph;return K(!0,V,l)}for(X=0;X<A.length;X++){S=e.view.getState(A[X]);V&&null!=Q&&(R=R||S==q);if(null!=S&&null!=S.cell.value&&(R||null==O)&&(e.model.isVertex(S.cell)||e.model.isEdge(S.cell))){null!=S.style&&"1"==S.style.html?(J.innerHTML=e.sanitizeHtml(e.getLabel(S.cell)),label=mxUtils.extractTextWithWhitespace([J])):label=e.getLabel(S.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var aa=0;V&&x&&null!=Q&&S==q&&(label=label.substr(C),
+aa=C);var Y=""==t.value,Z=Y;if(null==Q&&(Z&&0<=label.indexOf(L)||!Z&&label.substring(0,L.length)===L||Y&&B(Q,S.cell,L,Z))||null!=Q&&(Q.test(label)||Y&&B(Q,S.cell,L,Z)))if(x&&(null!=Q?(Y=label.match(Q),null!=Y&&0<Y.length&&(z=Y[0].toLowerCase(),C=aa+Y.index+z.length)):(z=L,C=z.length)),R){O=S;break}else null==O&&(O=S)}R=R||S==q}}if(null!=O){if(X==A.length&&F.checked)return q=null,n=!0,K(!0,V,l);q=O;e.scrollCellToVisible(q.cell);e.isEnabled()&&!e.isCellLocked(q.cell)?l||e.getSelectionCell()==q.cell&&
+1==e.getSelectionCount()||e.setSelectionCell(q.cell):e.highlightCell(q.cell)}else{if(!U&&F.checked)return n=!0,K(!0,V,l);e.isEnabled()&&!l&&e.clearSelection()}m=null!=O;x&&!U&&D();return 0==L.length||null!=O}var c=b.actions.get("findReplace"),e=b.editor.graph,g=null,q=null,m=!1,n=!1,z=null,C=0,u=1,y=document.createElement("div");y.style.userSelect="none";y.style.overflow="hidden";y.style.padding="10px";y.style.height="100%";var I=x?"260px":"200px",N=document.createElement("input");N.setAttribute("placeholder",
mxResources.get("find"));N.setAttribute("type","text");N.style.marginTop="4px";N.style.marginBottom="6px";N.style.width=I;N.style.fontSize="12px";N.style.borderRadius="4px";N.style.padding="6px";y.appendChild(N);mxUtils.br(y);if(x){var t=document.createElement("input");t.setAttribute("placeholder",mxResources.get("replaceWith"));t.setAttribute("type","text");t.style.marginTop="4px";t.style.marginBottom="6px";t.style.width=I;t.style.fontSize="12px";t.style.borderRadius="4px";t.style.padding="6px";
y.appendChild(t);mxUtils.br(y);mxEvent.addListener(t,"input",D)}var p=document.createElement("input");p.setAttribute("id","geFindWinRegExChck");p.setAttribute("type","checkbox");p.style.marginRight="4px";y.appendChild(p);I=document.createElement("label");I.setAttribute("for","geFindWinRegExChck");y.appendChild(I);mxUtils.write(I,mxResources.get("regularExpression"));y.appendChild(I);I=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");I.style.position="relative";I.style.marginLeft=
"6px";I.style.top="-1px";y.appendChild(I);mxUtils.br(y);var F=document.createElement("input");F.setAttribute("id","geFindWinAllPagesChck");F.setAttribute("type","checkbox");F.style.marginRight="4px";y.appendChild(F);I=document.createElement("label");I.setAttribute("for","geFindWinAllPagesChck");y.appendChild(I);mxUtils.write(I,mxResources.get("allPages"));y.appendChild(I);var J=document.createElement("div");mxUtils.br(y);I=document.createElement("div");I.style.left="0px";I.style.right="0px";I.style.marginTop=
-"6px";I.style.padding="0 6px 0 6px";I.style.textAlign="center";y.appendChild(I);var M=mxUtils.button(mxResources.get("reset"),function(){G.innerText="";N.value="";N.style.backgroundColor="";x&&(t.value="",D());g=q=null;m=!1;N.focus()});M.setAttribute("title",mxResources.get("reset"));M.style.float="none";M.style.width="120px";M.style.marginTop="6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn";x||I.appendChild(M);var H=mxUtils.button(mxResources.get("find"),
+"6px";I.style.padding="0 6px 0 6px";I.style.textAlign="center";y.appendChild(I);var M=mxUtils.button(mxResources.get("reset"),function(){G.innerText="";N.value="";N.style.backgroundColor="";x&&(t.value="",D());g=q=null;n=!1;N.focus()});M.setAttribute("title",mxResources.get("reset"));M.style.float="none";M.style.width="120px";M.style.marginTop="6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn";x||I.appendChild(M);var H=mxUtils.button(mxResources.get("find"),
function(){try{N.style.backgroundColor=K()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(U){b.handleError(U)}});H.setAttribute("title",mxResources.get("find")+" (Enter)");H.style.float="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn gePrimaryBtn";I.appendChild(H);var G=document.createElement("div");G.style.marginTop="10px";if(x){var E=function(U,V,l,A,L){if(null==L||"1"!=L.html)return A=U.toLowerCase().indexOf(V,
A),0>A?U:U.substr(0,A)+l+U.substr(A+V.length);var Q=U;V=mxUtils.htmlEntities(V);L=[];var O=-1;for(U=U.replace(/<br>/ig,"\n");-1<(O=U.indexOf("<",O+1));)L.push(O);O=U.match(/<[^>]*>/g);U=U.replace(/<[^>]*>/g,"");A=U.toLowerCase().indexOf(V,A);if(0>A)return Q;Q=A+V.length;l=mxUtils.htmlEntities(l);U=U.substr(0,A)+l+U.substr(Q);for(var R=0,S=0;S<L.length;S++){if(L[S]-R<A)U=U.substr(0,L[S])+O[S]+U.substr(L[S]);else{var X=L[S]-R<Q?A+R:L[S]+(l.length-V.length);U=U.substr(0,X)+O[S]+U.substr(X)}R+=O[S].length}return U.replace(/\n/g,
"<br>")},P=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=z&&null!=q&&t.value){var U=q.cell,V=e.getLabel(U);e.isCellEditable(U)&&e.model.setValue(U,E(V,z,t.value,C-z.length,e.getCurrentCellStyle(U)));N.style.backgroundColor=K(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(l){b.handleError(l)}});P.setAttribute("title",mxResources.get("replFind"));P.style.float="none";P.style.width="120px";P.style.marginTop="6px";P.style.marginLeft="8px";P.style.overflow="hidden";P.style.textOverflow=
@@ -11289,88 +11289,88 @@ document.execCommand("selectAll",!1,null),null!=b.pages&&1<b.pages.length?F.remo
e.style.width="90%";e.style.visibility="hidden";D.appendChild(e);mxUtils.br(D);c=function(){B.freehand.setPerfectFreehandMode(K.checked);e.style.visibility=K.checked?"visible":"hidden"};mxEvent.addListener(K,"change",c);c();mxEvent.addListener(e,"change",function(){B.freehand.setBrushSize(parseInt(this.value))})}var g=mxUtils.button(mxResources.get("startDrawing"),function(){B.freehand.isDrawing()?B.freehand.stopDrawing():B.freehand.startDrawing()});g.setAttribute("title",mxResources.get("startDrawing"));
g.style.marginTop=x?"5px":"10px";g.style.width="90%";g.style.boxSizing="border-box";g.style.overflow="hidden";g.style.textOverflow="ellipsis";g.style.textAlign="center";g.className="geBtn gePrimaryBtn";D.appendChild(g);this.window=new mxWindow(mxResources.get("freehand"),D,f,k,d,v,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);B.addListener("freehandStateChanged",mxUtils.bind(this,function(){g.innerText="";mxUtils.write(g,
mxResources.get(B.freehand.isDrawing()?"stopDrawing":"startDrawing"));g.setAttribute("title",mxResources.get(B.freehand.isDrawing()?"stopDrawing":"startDrawing"));g.className="geBtn"+(B.freehand.isDrawing()?"":" gePrimaryBtn")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){B.freehand.isDrawing()&&B.freehand.stopDrawing()}));b.installResizeHandler(this,!1)},TagsWindow=function(b,f,k,d,v){var x=b.editor.graph,
-B=b.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return this.window.isVisible()}),null,function(K,c){if(x.isEnabled()){var e=new FilenameDialog(b,"",mxResources.get("add"),function(g){b.hideDialog();if(null!=g&&0<g.length){g=g.split(" ");for(var q=[],n=0;n<g.length;n++){var m=mxUtils.trim(g[n]);""!=m&&0>mxUtils.indexOf(K,m)&&q.push(m)}0<q.length&&(x.isSelectionEmpty()?c(K.concat(q)):x.addTagsForCells(x.getSelectionCells(),q))}},mxResources.get("enterValue")+" ("+mxResources.get("tags")+
+B=b.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return this.window.isVisible()}),null,function(K,c){if(x.isEnabled()){var e=new FilenameDialog(b,"",mxResources.get("add"),function(g){b.hideDialog();if(null!=g&&0<g.length){g=g.split(" ");for(var q=[],m=0;m<g.length;m++){var n=mxUtils.trim(g[m]);""!=n&&0>mxUtils.indexOf(K,n)&&q.push(n)}0<q.length&&(x.isSelectionEmpty()?c(K.concat(q)):x.addTagsForCells(x.getSelectionCells(),q))}},mxResources.get("enterValue")+" ("+mxResources.get("tags")+
")");b.showDialog(e.container,300,80,!0,!0);e.init()}}),D=B.div;this.window=new mxWindow(mxResources.get("tags"),D,f,k,d,v,!0,!0);this.window.minimumSize=new mxRectangle(0,0,212,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){B.refresh();this.window.fit()}));b.installResizeHandler(this,!0)},AuthDialog=function(b,f,k,d){var v=document.createElement("div");v.style.textAlign=
"center";var x=document.createElement("p");x.style.fontSize="16pt";x.style.padding="0px";x.style.margin="0px";x.style.color="gray";mxUtils.write(x,mxResources.get("authorizationRequired"));var B="Unknown",D=document.createElement("img");D.setAttribute("border","0");D.setAttribute("align","absmiddle");D.style.marginRight="10px";f==b.drive?(B=mxResources.get("googleDrive"),D.src=IMAGE_PATH+"/google-drive-logo-white.svg"):f==b.dropbox?(B=mxResources.get("dropbox"),D.src=IMAGE_PATH+"/dropbox-logo-white.svg"):
f==b.oneDrive?(B=mxResources.get("oneDrive"),D.src=IMAGE_PATH+"/onedrive-logo-white.svg"):f==b.gitHub?(B=mxResources.get("github"),D.src=IMAGE_PATH+"/github-logo-white.svg"):f==b.gitLab?(B=mxResources.get("gitlab"),D.src=IMAGE_PATH+"/gitlab-logo.svg",D.style.width="32px"):f==b.trello&&(B=mxResources.get("trello"),D.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");mxUtils.write(b,mxResources.get("authorizeThisAppIn",[B]));var K=document.createElement("input");K.setAttribute("type",
"checkbox");B=mxUtils.button(mxResources.get("authorize"),function(){d(K.checked)});B.insertBefore(D,B.firstChild);B.style.marginTop="6px";B.className="geBigButton";B.style.fontSize="18px";B.style.padding="14px";v.appendChild(x);v.appendChild(b);v.appendChild(B);k&&(k=document.createElement("p"),k.style.marginTop="20px",k.appendChild(K),x=document.createElement("span"),mxUtils.write(x," "+mxResources.get("rememberMe")),k.appendChild(x),v.appendChild(k),K.checked=!0,K.defaultChecked=!0,mxEvent.addListener(x,
"click",function(c){K.checked=!K.checked;mxEvent.consume(c)}));this.container=v},MoreShapesDialog=function(b,f,k){k=null!=k?k:b.sidebar.entries;var d=document.createElement("div"),v=[];if(null!=b.sidebar.customEntries)for(var x=0;x<b.sidebar.customEntries.length;x++){for(var B=b.sidebar.customEntries[x],D={title:b.getResource(B.title),entries:[]},K=0;K<B.entries.length;K++){var c=B.entries[K];D.entries.push({id:c.id,title:b.getResource(c.title),desc:b.getResource(c.desc),image:c.preview})}v.push(D)}for(x=
-0;x<k.length;x++)if(null==b.sidebar.enabledLibraries)v.push(k[x]);else{D={title:k[x].title,entries:[]};for(K=0;K<k[x].entries.length;K++)0<=mxUtils.indexOf(b.sidebar.enabledLibraries,k[x].entries[K].id)&&D.entries.push(k[x].entries[K]);0<D.entries.length&&v.push(D)}k=v;if(f){x=mxUtils.bind(this,function(p){for(var F=0;F<p.length;F++)(function(J){var M=m.cloneNode(!1);M.style.fontWeight="bold";M.style.backgroundColor=Editor.isDarkMode()?"#505759":"#e5e5e5";M.style.padding="6px 0px 6px 20px";mxUtils.write(M,
-J.title);e.appendChild(M);for(var H=0;H<J.entries.length;H++)(function(G){var E=m.cloneNode(!1);E.style.cursor="pointer";E.style.padding="4px 0px 4px 20px";E.style.whiteSpace="nowrap";E.style.overflow="hidden";E.style.textOverflow="ellipsis";E.setAttribute("title",G.title+" ("+G.id+")");var P=document.createElement("input");P.setAttribute("type","checkbox");P.checked=b.sidebar.isEntryVisible(G.id);P.defaultChecked=P.checked;E.appendChild(P);mxUtils.write(E," "+G.title);e.appendChild(E);var T=function(W){if(null==
+0;x<k.length;x++)if(null==b.sidebar.enabledLibraries)v.push(k[x]);else{D={title:k[x].title,entries:[]};for(K=0;K<k[x].entries.length;K++)0<=mxUtils.indexOf(b.sidebar.enabledLibraries,k[x].entries[K].id)&&D.entries.push(k[x].entries[K]);0<D.entries.length&&v.push(D)}k=v;if(f){x=mxUtils.bind(this,function(p){for(var F=0;F<p.length;F++)(function(J){var M=n.cloneNode(!1);M.style.fontWeight="bold";M.style.backgroundColor=Editor.isDarkMode()?"#505759":"#e5e5e5";M.style.padding="6px 0px 6px 20px";mxUtils.write(M,
+J.title);e.appendChild(M);for(var H=0;H<J.entries.length;H++)(function(G){var E=n.cloneNode(!1);E.style.cursor="pointer";E.style.padding="4px 0px 4px 20px";E.style.whiteSpace="nowrap";E.style.overflow="hidden";E.style.textOverflow="ellipsis";E.setAttribute("title",G.title+" ("+G.id+")");var P=document.createElement("input");P.setAttribute("type","checkbox");P.checked=b.sidebar.isEntryVisible(G.id);P.defaultChecked=P.checked;E.appendChild(P);mxUtils.write(E," "+G.title);e.appendChild(E);var T=function(W){if(null==
W||"INPUT"!=mxEvent.getSource(W).nodeName){g.style.textAlign="center";g.style.padding="0px";g.style.color="";g.innerText="";if(null!=G.desc){var U=document.createElement("pre");U.style.boxSizing="border-box";U.style.fontFamily="inherit";U.style.margin="20px";U.style.right="0px";U.style.textAlign="left";mxUtils.write(U,G.desc);g.appendChild(U)}null!=G.imageCallback?G.imageCallback(g):null!=G.image?g.innerHTML+='<img border="0" src="'+G.image+'"/>':null==G.desc&&(g.style.padding="20px",g.style.color=
-"rgb(179, 179, 179)",mxUtils.write(g,mxResources.get("noPreview")));null!=q&&(q.style.backgroundColor="");q=E;q.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9";null!=W&&mxEvent.consume(W)}};mxEvent.addListener(E,"click",T);mxEvent.addListener(E,"dblclick",function(W){P.checked=!P.checked;mxEvent.consume(W)});n.push(function(){return P.checked?G.id:null});0==F&&0==H&&T()})(J.entries[H])})(p[F])});K=document.createElement("div");K.className="geDialogTitle";mxUtils.write(K,mxResources.get("shapes"));
+"rgb(179, 179, 179)",mxUtils.write(g,mxResources.get("noPreview")));null!=q&&(q.style.backgroundColor="");q=E;q.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9";null!=W&&mxEvent.consume(W)}};mxEvent.addListener(E,"click",T);mxEvent.addListener(E,"dblclick",function(W){P.checked=!P.checked;mxEvent.consume(W)});m.push(function(){return P.checked?G.id:null});0==F&&0==H&&T()})(J.entries[H])})(p[F])});K=document.createElement("div");K.className="geDialogTitle";mxUtils.write(K,mxResources.get("shapes"));
K.style.position="absolute";K.style.top="0px";K.style.left="0px";K.style.lineHeight="40px";K.style.height="40px";K.style.right="0px";var e=document.createElement("div"),g=document.createElement("div");e.style.position="absolute";e.style.top="40px";e.style.left="0px";e.style.width="202px";e.style.bottom="60px";e.style.overflow="auto";g.style.position="absolute";g.style.left="202px";g.style.right="0px";g.style.top="40px";g.style.bottom="60px";g.style.overflow="auto";g.style.borderLeft="1px solid rgb(211, 211, 211)";
-g.style.textAlign="center";var q=null,n=[],m=document.createElement("div");m.style.position="relative";m.style.left="0px";m.style.right="0px";x(k);d.style.padding="30px";d.appendChild(K);d.appendChild(e);d.appendChild(g);k=document.createElement("div");k.className="geDialogFooter";k.style.position="absolute";k.style.paddingRight="16px";k.style.color="gray";k.style.left="0px";k.style.right="0px";k.style.bottom="0px";k.style.height="60px";k.style.lineHeight="52px";var z=document.createElement("input");
+g.style.textAlign="center";var q=null,m=[],n=document.createElement("div");n.style.position="relative";n.style.left="0px";n.style.right="0px";x(k);d.style.padding="30px";d.appendChild(K);d.appendChild(e);d.appendChild(g);k=document.createElement("div");k.className="geDialogFooter";k.style.position="absolute";k.style.paddingRight="16px";k.style.color="gray";k.style.left="0px";k.style.right="0px";k.style.bottom="0px";k.style.height="60px";k.style.lineHeight="52px";var z=document.createElement("input");
z.setAttribute("type","checkbox");z.style.position="relative";z.style.top="1px";z.checked=b.sidebar.sidebarTitles;z.defaultChecked=z.checked;k.appendChild(z);x=document.createElement("span");mxUtils.write(x," "+mxResources.get("labels"));x.style.paddingRight="20px";k.appendChild(x);mxEvent.addListener(x,"click",function(p){z.checked=!z.checked;mxEvent.consume(p)});var C=document.createElement("input");C.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)x=document.createElement("span"),
-x.style.paddingRight="20px",x.appendChild(C),mxUtils.write(x," "+mxResources.get("rememberThisSetting")),C.style.position="relative",C.style.top="1px",C.checked=!0,C.defaultChecked=!0,mxEvent.addListener(x,"click",function(p){mxEvent.getSource(p)!=C&&(C.checked=!C.checked,mxEvent.consume(p))}),k.appendChild(x);x=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});x.className="geBtn";K=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();for(var p=[],F=0;F<n.length;F++){var J=
-n[F].apply(this,arguments);null!=J&&p.push(J)}"1"==urlParams.sketch&&b.isSettingsEnabled()&&(F=mxUtils.indexOf(p,".scratchpad"),null!=b.scratchpad!=(0<=F&&0<p.splice(F,1).length)&&b.toggleScratchpad(),F=mxUtils.indexOf(p,"search"),mxSettings.settings.search=0<=F&&0<p.splice(F,1).length,b.sidebar.showPalette("search",mxSettings.settings.search),C.checked&&mxSettings.save());b.sidebar.showEntries(p.join(";"),C.checked,!0);b.setSidebarTitles(z.checked,C.checked)});K.className="geBtn gePrimaryBtn"}else{var u=
+x.style.paddingRight="20px",x.appendChild(C),mxUtils.write(x," "+mxResources.get("rememberThisSetting")),C.style.position="relative",C.style.top="1px",C.checked=!0,C.defaultChecked=!0,mxEvent.addListener(x,"click",function(p){mxEvent.getSource(p)!=C&&(C.checked=!C.checked,mxEvent.consume(p))}),k.appendChild(x);x=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});x.className="geBtn";K=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();for(var p=[],F=0;F<m.length;F++){var J=
+m[F].apply(this,arguments);null!=J&&p.push(J)}"1"==urlParams.sketch&&b.isSettingsEnabled()&&(F=mxUtils.indexOf(p,".scratchpad"),null!=b.scratchpad!=(0<=F&&0<p.splice(F,1).length)&&b.toggleScratchpad(),F=mxUtils.indexOf(p,"search"),mxSettings.settings.search=0<=F&&0<p.splice(F,1).length,b.sidebar.showPalette("search",mxSettings.settings.search),C.checked&&mxSettings.save());b.sidebar.showEntries(p.join(";"),C.checked,!0);b.setSidebarTitles(z.checked,C.checked)});K.className="geBtn gePrimaryBtn"}else{var u=
document.createElement("table");x=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";K=document.createElement("tr");u.style.width="100%";f=document.createElement("td");v=document.createElement("td");B=document.createElement("td");var y=mxUtils.bind(this,function(p,F,J){var M=document.createElement("input");M.type="checkbox";u.appendChild(M);M.checked=b.sidebar.isEntryVisible(J);var H=document.createElement("span");mxUtils.write(H,F);F=document.createElement("div");F.style.display=
-"block";F.appendChild(M);F.appendChild(H);mxEvent.addListener(H,"click",function(G){M.checked=!M.checked;mxEvent.consume(G)});p.appendChild(F);return function(){return M.checked?J:null}});K.appendChild(f);K.appendChild(v);K.appendChild(B);x.appendChild(K);u.appendChild(x);n=[];var I=0;for(x=0;x<k.length;x++)for(K=0;K<k[x].entries.length;K++)I++;var N=[f,v,B],t=0;for(x=0;x<k.length;x++)(function(p){for(var F=0;F<p.entries.length;F++){var J=p.entries[F];n.push(y(N[Math.floor(t/(I/3))],J.title,J.id));
+"block";F.appendChild(M);F.appendChild(H);mxEvent.addListener(H,"click",function(G){M.checked=!M.checked;mxEvent.consume(G)});p.appendChild(F);return function(){return M.checked?J:null}});K.appendChild(f);K.appendChild(v);K.appendChild(B);x.appendChild(K);u.appendChild(x);m=[];var I=0;for(x=0;x<k.length;x++)for(K=0;K<k[x].entries.length;K++)I++;var N=[f,v,B],t=0;for(x=0;x<k.length;x++)(function(p){for(var F=0;F<p.entries.length;F++){var J=p.entries[F];m.push(y(N[Math.floor(t/(I/3))],J.title,J.id));
t++}})(k[x]);d.appendChild(u);k=document.createElement("div");k.style.marginTop="18px";k.style.textAlign="center";C=document.createElement("input");isLocalStorage&&(C.setAttribute("type","checkbox"),C.checked=!0,C.defaultChecked=!0,k.appendChild(C),x=document.createElement("span"),mxUtils.write(x," "+mxResources.get("rememberThisSetting")),k.appendChild(x),mxEvent.addListener(x,"click",function(p){C.checked=!C.checked;mxEvent.consume(p)}));d.appendChild(k);x=mxUtils.button(mxResources.get("cancel"),
-function(){b.hideDialog()});x.className="geBtn";K=mxUtils.button(mxResources.get("apply"),function(){for(var p=["search"],F=0;F<n.length;F++){var J=n[F].apply(this,arguments);null!=J&&p.push(J)}b.sidebar.showEntries(0<p.length?p.join(";"):"",C.checked);b.hideDialog()});K.className="geBtn gePrimaryBtn";k=document.createElement("div");k.style.marginTop="26px";k.style.textAlign="right"}b.editor.cancelFirst?(k.appendChild(x),k.appendChild(K)):(k.appendChild(K),k.appendChild(x));d.appendChild(k);this.container=
-d},PluginsDialog=function(b,f,k,d){function v(){K=!0;if(0==D.length)B.innerText=mxResources.get("noPlugins");else{B.innerText="";for(var m=0;m<D.length;m++){var z=document.createElement("span");z.style.whiteSpace="nowrap";var C=document.createElement("span");C.className="geSprite geSprite-delete";C.style.position="relative";C.style.cursor="pointer";C.style.top="5px";C.style.marginRight="4px";C.style.display="inline-block";z.appendChild(C);mxUtils.write(z,D[m]);B.appendChild(z);mxUtils.br(B);mxEvent.addListener(C,
-"click",function(u){return function(){b.confirm(mxResources.get("delete")+' "'+D[u]+'"?',function(){null!=k&&k(D[u]);D.splice(u,1);v()})}}(m))}}}var x=document.createElement("div"),B=document.createElement("div");B.style.height="180px";B.style.overflow="auto";var D=mxSettings.getPlugins().slice(),K=!1;x.appendChild(B);v();K=!1;var c=mxUtils.button(mxResources.get("add"),null!=f?function(){f(function(m){m&&0>mxUtils.indexOf(D,m)&&D.push(m);v()})}:function(){var m=document.createElement("div"),z=document.createElement("span");
-z.style.marginTop="6px";mxUtils.write(z,mxResources.get("builtinPlugins")+": ");m.appendChild(z);var C=document.createElement("select");C.style.width="150px";for(z=0;z<App.publicPlugin.length;z++){var u=document.createElement("option");mxUtils.write(u,App.publicPlugin[z]);u.value=App.publicPlugin[z];C.appendChild(u)}m.appendChild(C);mxUtils.br(m);mxUtils.br(m);z=mxUtils.button(mxResources.get("custom")+"...",function(){var y=new FilenameDialog(b,"",mxResources.get("add"),function(I){b.hideDialog();
-if(null!=I&&0<I.length){I=I.split(";");for(var N=0;N<I.length;N++){var t=I[N],p=App.pluginRegistry[t];null!=p&&(t=p);0<t.length&&0>mxUtils.indexOf(D,t)&&D.push(t)}v()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(y.container,300,80,!0,!0);y.init()});z.className="geBtn";m=new CustomDialog(b,m,mxUtils.bind(this,function(){var y=App.pluginRegistry[C.value];0>mxUtils.indexOf(D,y)&&(D.push(y),v())}),null,null,null,z);b.showDialog(m.container,300,100,!0,!0)});c.className=
-"geBtn";var e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});e.className="geBtn";var g=mxUtils.button(d?mxResources.get("close"):mxResources.get("apply"),function(){K?(mxSettings.setPlugins(D),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):b.hideDialog()});g.className="geBtn gePrimaryBtn";var q=document.createElement("div");q.style.marginTop="14px";q.style.textAlign="right";var n=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.diagrams.net/doc/faq/plugins")});
-n.className="geBtn";b.isOffline()&&!mxClient.IS_CHROMEAPP&&(n.style.display="none");q.appendChild(n);b.editor.cancelFirst?(d||q.appendChild(e),q.appendChild(c),q.appendChild(g)):(q.appendChild(c),q.appendChild(g),d||q.appendChild(e));x.appendChild(q);this.container=x},CropImageDialog=function(b,f,k,d){function v(){var p=C.checked,F=u.checked,J=n.geometry,M=K.width,H=K.height,G=(300-M)/2,E=(300-H)/2;J.x<G?(J.width-=G-J.x,J.x=G):J.x+J.width>G+M&&(J.width=G+M-J.x,J.x=Math.min(J.x,G+M));J.y<E?(J.height-=
-E-J.y,J.y=E):J.y+J.height>E+H&&(J.height=E+H-J.y,J.y=Math.min(J.y,E+H));var P=(J.x-G)/M*100;M=100-(J.x+J.width-G)/M*100;G=(J.y-E)/H*100;J=100-(J.y+J.height-E)/H*100;return"inset("+mxUtils.format(G)+"% "+mxUtils.format(M)+"% "+mxUtils.format(J)+"% "+mxUtils.format(P)+"%"+(p?" round "+q+"%":F?" round 50%":"")+")"}function x(p){null!=e&&(!0!==p&&(e.model.setGeometry(n,g.clone()),q=5,I.value=q),e.model.setStyle(n,m+v()),e.selectAll(),y.style.visibility=C.checked?"visible":"hidden")}var B=document.createElement("div"),
-D=document.createElement("div");D.style.height="300px";D.style.width="300px";D.style.display="inline-flex";D.style.justifyContent="center";D.style.alignItems="center";D.style.position="absolute";var K=document.createElement("img");K.onload=function(){function p(){e.model.setStyle(n,m+v())}e=new Graph(c);e.autoExtend=!1;e.autoScroll=!1;e.setGridEnabled(!1);e.setEnabled(!0);e.setPanning(!1);e.setConnectable(!1);e.getRubberband().setEnabled(!1);e.graphHandler.allowLivePreview=!1;var F=e.createVertexHandler;
-e.createVertexHandler=function(){var Q=F.apply(this,arguments);Q.livePreview=!1;return Q};if(null!=k)try{if("inset"==k.substring(0,5)){var J=n.geometry,M=K.width,H=K.height,G=(300-M)/2,E=(300-H)/2,P=k.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),T=parseFloat(P[0]),W=parseFloat(P[1]),U=parseFloat(P[2]),V=parseFloat(P[3]);isFinite(T)&&isFinite(W)&&isFinite(U)&&isFinite(V)?(J.x=V/100*M+G,J.y=T/100*H+E,J.width=(100-W)/100*M+G-J.x,J.height=(100-U)/100*H+E-J.y,"round"==P[4]?"50%"==P[5]?u.setAttribute("checked",
-"checked"):(q=parseInt(P[5]),I.value=q,C.setAttribute("checked","checked"),y.style.visibility="visible"):z.setAttribute("checked","checked")):k=null}else k=null}catch(Q){}n.style=m+(k?k:v());n.vertex=!0;e.addCell(n,null,null,null,null);e.selectAll();e.addListener(mxEvent.CELLS_MOVED,p);e.addListener(mxEvent.CELLS_RESIZED,p);var l=e.graphHandler.mouseUp,A=e.graphHandler.mouseDown;e.graphHandler.mouseUp=function(){l.apply(this,arguments);c.style.backgroundColor="#fff9"};e.graphHandler.mouseDown=function(){A.apply(this,
-arguments);c.style.backgroundColor=""};e.dblClick=function(){};var L=e.getSelectionModel().changeSelection;e.getSelectionModel().changeSelection=function(){L.call(this,[n],[n])}};K.onerror=function(){K.onload=null;K.src=Editor.errorImage};K.setAttribute("src",f);K.style.maxWidth="300px";K.style.maxHeight="300px";D.appendChild(K);B.appendChild(D);var c=document.createElement("div");c.style.width="300px";c.style.height="300px";c.style.overflow="hidden";c.style.backgroundColor="#fff9";B.appendChild(c);
-var e=null,g=new mxGeometry(100,100,100,100),q=5,n=new mxCell("",g.clone(),""),m="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+f.replace(";base64","")+";clipPath=",z=document.createElement("input");z.setAttribute("type","radio");z.setAttribute("id","croppingRect");z.setAttribute("name","croppingShape");z.setAttribute("checked","checked");z.style.margin="5px";B.appendChild(z);f=document.createElement("label");f.setAttribute("for","croppingRect");mxUtils.write(f,mxResources.get("rectangle"));
+function(){b.hideDialog()});x.className="geBtn";K=mxUtils.button(mxResources.get("apply"),function(){for(var p=["search"],F=0;F<m.length;F++){var J=m[F].apply(this,arguments);null!=J&&p.push(J)}b.sidebar.showEntries(0<p.length?p.join(";"):"",C.checked);b.hideDialog()});K.className="geBtn gePrimaryBtn";k=document.createElement("div");k.style.marginTop="26px";k.style.textAlign="right"}b.editor.cancelFirst?(k.appendChild(x),k.appendChild(K)):(k.appendChild(K),k.appendChild(x));d.appendChild(k);this.container=
+d},PluginsDialog=function(b,f,k,d){function v(){K=!0;if(0==D.length)B.innerText=mxResources.get("noPlugins");else{B.innerText="";for(var n=0;n<D.length;n++){var z=document.createElement("span");z.style.whiteSpace="nowrap";var C=document.createElement("span");C.className="geSprite geSprite-delete";C.style.position="relative";C.style.cursor="pointer";C.style.top="5px";C.style.marginRight="4px";C.style.display="inline-block";z.appendChild(C);mxUtils.write(z,D[n]);B.appendChild(z);mxUtils.br(B);mxEvent.addListener(C,
+"click",function(u){return function(){b.confirm(mxResources.get("delete")+' "'+D[u]+'"?',function(){null!=k&&k(D[u]);D.splice(u,1);v()})}}(n))}}}var x=document.createElement("div"),B=document.createElement("div");B.style.height="180px";B.style.overflow="auto";var D=mxSettings.getPlugins().slice(),K=!1;x.appendChild(B);v();K=!1;var c=mxUtils.button(mxResources.get("add"),null!=f?function(){f(function(n){n&&0>mxUtils.indexOf(D,n)&&D.push(n);v()})}:function(){var n=document.createElement("div"),z=document.createElement("span");
+z.style.marginTop="6px";mxUtils.write(z,mxResources.get("builtinPlugins")+": ");n.appendChild(z);var C=document.createElement("select");C.style.width="150px";for(z=0;z<App.publicPlugin.length;z++){var u=document.createElement("option");mxUtils.write(u,App.publicPlugin[z]);u.value=App.publicPlugin[z];C.appendChild(u)}n.appendChild(C);mxUtils.br(n);mxUtils.br(n);z=mxUtils.button(mxResources.get("custom")+"...",function(){var y=new FilenameDialog(b,"",mxResources.get("add"),function(I){b.hideDialog();
+if(null!=I&&0<I.length){I=I.split(";");for(var N=0;N<I.length;N++){var t=I[N],p=App.pluginRegistry[t];null!=p&&(t=p);0<t.length&&0>mxUtils.indexOf(D,t)&&D.push(t)}v()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(y.container,300,80,!0,!0);y.init()});z.className="geBtn";n=new CustomDialog(b,n,mxUtils.bind(this,function(){var y=App.pluginRegistry[C.value];0>mxUtils.indexOf(D,y)&&(D.push(y),v())}),null,null,null,z);b.showDialog(n.container,300,100,!0,!0)});c.className=
+"geBtn";var e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});e.className="geBtn";var g=mxUtils.button(d?mxResources.get("close"):mxResources.get("apply"),function(){K?(mxSettings.setPlugins(D),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):b.hideDialog()});g.className="geBtn gePrimaryBtn";var q=document.createElement("div");q.style.marginTop="14px";q.style.textAlign="right";var m=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.diagrams.net/doc/faq/plugins")});
+m.className="geBtn";b.isOffline()&&!mxClient.IS_CHROMEAPP&&(m.style.display="none");q.appendChild(m);b.editor.cancelFirst?(d||q.appendChild(e),q.appendChild(c),q.appendChild(g)):(q.appendChild(c),q.appendChild(g),d||q.appendChild(e));x.appendChild(q);this.container=x},CropImageDialog=function(b,f,k,d){function v(){var p=C.checked,F=u.checked,J=m.geometry,M=K.width,H=K.height,G=(300-M)/2,E=(300-H)/2;J.x<G?(J.width-=G-J.x,J.x=G):J.x+J.width>G+M&&(J.width=G+M-J.x,J.x=Math.min(J.x,G+M));J.y<E?(J.height-=
+E-J.y,J.y=E):J.y+J.height>E+H&&(J.height=E+H-J.y,J.y=Math.min(J.y,E+H));var P=(J.x-G)/M*100;M=100-(J.x+J.width-G)/M*100;G=(J.y-E)/H*100;J=100-(J.y+J.height-E)/H*100;return"inset("+mxUtils.format(G)+"% "+mxUtils.format(M)+"% "+mxUtils.format(J)+"% "+mxUtils.format(P)+"%"+(p?" round "+q+"%":F?" round 50%":"")+")"}function x(p){null!=e&&(!0!==p&&(e.model.setGeometry(m,g.clone()),q=5,I.value=q),e.model.setStyle(m,n+v()),e.selectAll(),y.style.visibility=C.checked?"visible":"hidden")}var B=document.createElement("div"),
+D=document.createElement("div");D.style.height="300px";D.style.width="300px";D.style.display="inline-flex";D.style.justifyContent="center";D.style.alignItems="center";D.style.position="absolute";var K=document.createElement("img");K.onload=function(){function p(){e.model.setStyle(m,n+v())}e=new Graph(c);e.autoExtend=!1;e.autoScroll=!1;e.setGridEnabled(!1);e.setEnabled(!0);e.setPanning(!1);e.setConnectable(!1);e.getRubberband().setEnabled(!1);e.graphHandler.allowLivePreview=!1;var F=e.createVertexHandler;
+e.createVertexHandler=function(){var Q=F.apply(this,arguments);Q.livePreview=!1;return Q};if(null!=k)try{if("inset"==k.substring(0,5)){var J=m.geometry,M=K.width,H=K.height,G=(300-M)/2,E=(300-H)/2,P=k.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),T=parseFloat(P[0]),W=parseFloat(P[1]),U=parseFloat(P[2]),V=parseFloat(P[3]);isFinite(T)&&isFinite(W)&&isFinite(U)&&isFinite(V)?(J.x=V/100*M+G,J.y=T/100*H+E,J.width=(100-W)/100*M+G-J.x,J.height=(100-U)/100*H+E-J.y,"round"==P[4]?"50%"==P[5]?u.setAttribute("checked",
+"checked"):(q=parseInt(P[5]),I.value=q,C.setAttribute("checked","checked"),y.style.visibility="visible"):z.setAttribute("checked","checked")):k=null}else k=null}catch(Q){}m.style=n+(k?k:v());m.vertex=!0;e.addCell(m,null,null,null,null);e.selectAll();e.addListener(mxEvent.CELLS_MOVED,p);e.addListener(mxEvent.CELLS_RESIZED,p);var l=e.graphHandler.mouseUp,A=e.graphHandler.mouseDown;e.graphHandler.mouseUp=function(){l.apply(this,arguments);c.style.backgroundColor="#fff9"};e.graphHandler.mouseDown=function(){A.apply(this,
+arguments);c.style.backgroundColor=""};e.dblClick=function(){};var L=e.getSelectionModel().changeSelection;e.getSelectionModel().changeSelection=function(){L.call(this,[m],[m])}};K.onerror=function(){K.onload=null;K.src=Editor.errorImage};K.setAttribute("src",f);K.style.maxWidth="300px";K.style.maxHeight="300px";D.appendChild(K);B.appendChild(D);var c=document.createElement("div");c.style.width="300px";c.style.height="300px";c.style.overflow="hidden";c.style.backgroundColor="#fff9";B.appendChild(c);
+var e=null,g=new mxGeometry(100,100,100,100),q=5,m=new mxCell("",g.clone(),""),n="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+f.replace(";base64","")+";clipPath=",z=document.createElement("input");z.setAttribute("type","radio");z.setAttribute("id","croppingRect");z.setAttribute("name","croppingShape");z.setAttribute("checked","checked");z.style.margin="5px";B.appendChild(z);f=document.createElement("label");f.setAttribute("for","croppingRect");mxUtils.write(f,mxResources.get("rectangle"));
B.appendChild(f);var C=document.createElement("input");C.setAttribute("type","radio");C.setAttribute("id","croppingRounded");C.setAttribute("name","croppingShape");C.style.margin="5px";B.appendChild(C);f=document.createElement("label");f.setAttribute("for","croppingRounded");mxUtils.write(f,mxResources.get("rounded"));B.appendChild(f);var u=document.createElement("input");u.setAttribute("type","radio");u.setAttribute("id","croppingEllipse");u.setAttribute("name","croppingShape");u.style.margin="5px";
B.appendChild(u);f=document.createElement("label");f.setAttribute("for","croppingEllipse");mxUtils.write(f,mxResources.get("ellipse"));B.appendChild(f);mxEvent.addListener(z,"change",x);mxEvent.addListener(C,"change",x);mxEvent.addListener(u,"change",x);var y=document.createElement("div");y.style.textAlign="center";y.style.visibility="hidden";var I=document.createElement("input");I.setAttribute("type","range");I.setAttribute("min","1");I.setAttribute("max","49");I.setAttribute("value",q);I.setAttribute("title",
-mxResources.get("arcSize"));y.appendChild(I);B.appendChild(y);mxEvent.addListener(I,"change",function(){q=this.value;x(!0)});f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});f.className="geBtn";D=mxUtils.button(mxResources.get("apply"),function(){d(v(),n.geometry.width,n.geometry.height);b.hideDialog()});D.className="geBtn gePrimaryBtn";var N=mxUtils.button(mxResources.get("reset"),function(){d(null,K.width,K.height);b.hideDialog()});N.className="geBtn";var t=document.createElement("div");
+mxResources.get("arcSize"));y.appendChild(I);B.appendChild(y);mxEvent.addListener(I,"change",function(){q=this.value;x(!0)});f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});f.className="geBtn";D=mxUtils.button(mxResources.get("apply"),function(){d(v(),m.geometry.width,m.geometry.height);b.hideDialog()});D.className="geBtn gePrimaryBtn";var N=mxUtils.button(mxResources.get("reset"),function(){d(null,K.width,K.height);b.hideDialog()});N.className="geBtn";var t=document.createElement("div");
t.style.marginTop="10px";t.style.textAlign="right";b.editor.cancelFirst?(t.appendChild(f),t.appendChild(N),t.appendChild(D)):(t.appendChild(N),t.appendChild(D),t.appendChild(f));B.appendChild(t);this.container=B},EditGeometryDialog=function(b,f){var k=b.editor.graph,d=1==f.length?k.getCellGeometry(f[0]):null,v=document.createElement("div"),x=document.createElement("table"),B=document.createElement("tbody"),D=document.createElement("tr"),K=document.createElement("td"),c=document.createElement("td");
x.style.paddingLeft="6px";mxUtils.write(K,mxResources.get("relative")+":");var e=document.createElement("input");e.setAttribute("type","checkbox");null!=d&&d.relative&&(e.setAttribute("checked","checked"),e.defaultChecked=!0);this.init=function(){e.focus()};c.appendChild(e);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("left")+":");var g=document.createElement("input");
g.setAttribute("type","text");g.style.width="100px";g.value=null!=d?d.x:"";c.appendChild(g);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("top")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=d?d.y:"";c.appendChild(q);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");
-c=document.createElement("td");mxUtils.write(K,mxResources.get("dx")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=d&&null!=d.offset?d.offset.x:"";c.appendChild(n);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("dy")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";
-m.value=null!=d&&null!=d.offset?d.offset.y:"";c.appendChild(m);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("width")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!=d?d.width:"";c.appendChild(z);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=
+c=document.createElement("td");mxUtils.write(K,mxResources.get("dx")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=d&&null!=d.offset?d.offset.x:"";c.appendChild(m);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("dy")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";
+n.value=null!=d&&null!=d.offset?d.offset.y:"";c.appendChild(n);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("width")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!=d?d.width:"";c.appendChild(z);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=
document.createElement("td");mxUtils.write(K,mxResources.get("height")+":");var C=document.createElement("input");C.setAttribute("type","text");C.style.width="100px";C.value=null!=d?d.height:"";c.appendChild(C);D.appendChild(K);D.appendChild(c);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");c=document.createElement("td");mxUtils.write(K,mxResources.get("rotation")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=
1==f.length?mxUtils.getValue(k.getCellStyle(f[0]),mxConstants.STYLE_ROTATION,0):"";c.appendChild(u);D.appendChild(K);D.appendChild(c);B.appendChild(D);x.appendChild(B);v.appendChild(x);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});d.className="geBtn";var y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();k.getModel().beginUpdate();try{for(var I=0;I<f.length;I++){var N=k.getCellGeometry(f[I]);null!=N&&(N=N.clone(),k.isCellMovable(f[I])&&(N.relative=e.checked,
-0<mxUtils.trim(g.value).length&&(N.x=Number(g.value)),0<mxUtils.trim(q.value).length&&(N.y=Number(q.value)),0<mxUtils.trim(n.value).length&&(null==N.offset&&(N.offset=new mxPoint),N.offset.x=Number(n.value)),0<mxUtils.trim(m.value).length&&(null==N.offset&&(N.offset=new mxPoint),N.offset.y=Number(m.value))),k.isCellResizable(f[I])&&(0<mxUtils.trim(z.value).length&&(N.width=Number(z.value)),0<mxUtils.trim(C.value).length&&(N.height=Number(C.value))),k.getModel().setGeometry(f[I],N));0<mxUtils.trim(u.value).length&&
+0<mxUtils.trim(g.value).length&&(N.x=Number(g.value)),0<mxUtils.trim(q.value).length&&(N.y=Number(q.value)),0<mxUtils.trim(m.value).length&&(null==N.offset&&(N.offset=new mxPoint),N.offset.x=Number(m.value)),0<mxUtils.trim(n.value).length&&(null==N.offset&&(N.offset=new mxPoint),N.offset.y=Number(n.value))),k.isCellResizable(f[I])&&(0<mxUtils.trim(z.value).length&&(N.width=Number(z.value)),0<mxUtils.trim(C.value).length&&(N.height=Number(C.value))),k.getModel().setGeometry(f[I],N));0<mxUtils.trim(u.value).length&&
k.setCellStyles(mxConstants.STYLE_ROTATION,Number(u.value),[f[I]])}}finally{k.getModel().endUpdate()}});y.className="geBtn gePrimaryBtn";mxEvent.addListener(v,"keypress",function(I){13==I.keyCode&&y.click()});x=document.createElement("div");x.style.marginTop="20px";x.style.textAlign="right";b.editor.cancelFirst?(x.appendChild(d),x.appendChild(y)):(x.appendChild(y),x.appendChild(d));v.appendChild(x);this.container=v},LibraryDialog=function(b,f,k,d,v,x){function B(F){for(F=document.elementFromPoint(F.clientX,
-F.clientY);null!=F&&F.parentNode!=n;)F=F.parentNode;var J=null;if(null!=F){var M=n.firstChild;for(J=0;null!=M&&M!=F;)M=M.nextSibling,J++}return J}function D(F,J,M,H,G,E,P,T,W){try{if(b.spinner.stop(),null==J||"image/"==J.substring(0,6))if(null==F&&null!=P||null==z[F]){var U=function(){S.innerText="";S.style.cursor="pointer";S.style.whiteSpace="nowrap";S.style.textOverflow="ellipsis";mxUtils.write(S,null!=X.title&&0<X.title.length?X.title:mxResources.get("untitled"));S.style.color=null==X.title||0==
-X.title.length?"#d0d0d0":""};n.style.backgroundImage="";m.style.display="none";var V=G,l=E;if(G>b.maxImageSize||E>b.maxImageSize){var A=Math.min(1,Math.min(b.maxImageSize/Math.max(1,G)),b.maxImageSize/Math.max(1,E));G*=A;E*=A}V>l?(l=Math.round(100*l/V),V=100):(V=Math.round(100*V/l),l=100);var L=document.createElement("div");L.setAttribute("draggable","true");L.style.display="inline-block";L.style.position="relative";L.style.padding="0 12px";L.style.cursor="move";mxUtils.setPrefixedStyle(L.style,"transition",
+F.clientY);null!=F&&F.parentNode!=m;)F=F.parentNode;var J=null;if(null!=F){var M=m.firstChild;for(J=0;null!=M&&M!=F;)M=M.nextSibling,J++}return J}function D(F,J,M,H,G,E,P,T,W){try{if(b.spinner.stop(),null==J||"image/"==J.substring(0,6))if(null==F&&null!=P||null==z[F]){var U=function(){S.innerText="";S.style.cursor="pointer";S.style.whiteSpace="nowrap";S.style.textOverflow="ellipsis";mxUtils.write(S,null!=X.title&&0<X.title.length?X.title:mxResources.get("untitled"));S.style.color=null==X.title||0==
+X.title.length?"#d0d0d0":""};m.style.backgroundImage="";n.style.display="none";var V=G,l=E;if(G>b.maxImageSize||E>b.maxImageSize){var A=Math.min(1,Math.min(b.maxImageSize/Math.max(1,G)),b.maxImageSize/Math.max(1,E));G*=A;E*=A}V>l?(l=Math.round(100*l/V),V=100):(V=Math.round(100*V/l),l=100);var L=document.createElement("div");L.setAttribute("draggable","true");L.style.display="inline-block";L.style.position="relative";L.style.padding="0 12px";L.style.cursor="move";mxUtils.setPrefixedStyle(L.style,"transition",
"transform .1s ease-in-out");if(null!=F){var Q=document.createElement("img");Q.setAttribute("src",I.convert(F));Q.style.width=V+"px";Q.style.height=l+"px";Q.style.margin="10px";Q.style.paddingBottom=Math.floor((100-l)/2)+"px";Q.style.paddingLeft=Math.floor((100-V)/2)+"px";L.appendChild(Q)}else if(null!=P){var O=b.stringToCells(Graph.decompress(P.xml));0<O.length&&(b.sidebar.createThumb(O,100,100,L,null,!0,!1),L.firstChild.style.display="inline-block",L.firstChild.style.cursor="")}var R=document.createElement("img");
R.setAttribute("src",Editor.closeBlackImage);R.setAttribute("border","0");R.setAttribute("title",mxResources.get("delete"));R.setAttribute("align","top");R.style.paddingTop="4px";R.style.position="absolute";R.style.marginLeft="-12px";R.style.zIndex="1";R.style.cursor="pointer";mxEvent.addListener(R,"dragstart",function(ca){mxEvent.consume(ca)});(function(ca,fa,la){mxEvent.addListener(R,"click",function(ia){z[fa]=null;for(var qa=0;qa<e.length;qa++)if(null!=e[qa].data&&e[qa].data==fa||null!=e[qa].xml&&
-null!=la&&e[qa].xml==la.xml){e.splice(qa,1);break}L.parentNode.removeChild(ca);0==e.length&&(n.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",m.style.display="");mxEvent.consume(ia)});mxEvent.addListener(R,"dblclick",function(ia){mxEvent.consume(ia)})})(L,F,P);L.appendChild(R);L.style.marginBottom="30px";var S=document.createElement("div");S.style.position="absolute";S.style.boxSizing="border-box";S.style.bottom="-18px";S.style.left="10px";S.style.right="10px";S.style.backgroundColor=
+null!=la&&e[qa].xml==la.xml){e.splice(qa,1);break}L.parentNode.removeChild(ca);0==e.length&&(m.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",n.style.display="");mxEvent.consume(ia)});mxEvent.addListener(R,"dblclick",function(ia){mxEvent.consume(ia)})})(L,F,P);L.appendChild(R);L.style.marginBottom="30px";var S=document.createElement("div");S.style.position="absolute";S.style.boxSizing="border-box";S.style.bottom="-18px";S.style.left="10px";S.style.right="10px";S.style.backgroundColor=
Editor.isDarkMode()?Editor.darkColor:"#ffffff";S.style.overflow="hidden";S.style.textAlign="center";var X=null;null!=F?(X={data:F,w:G,h:E,title:W},null!=T&&(X.aspect=T),z[F]=Q,e.push(X)):null!=P&&(P.aspect="fixed",e.push(P),X=P);mxEvent.addListener(S,"keydown",function(ca){13==ca.keyCode&&null!=y&&(y(),y=null,mxEvent.consume(ca))});U();L.appendChild(S);mxEvent.addListener(S,"mousedown",function(ca){"true"!=S.getAttribute("contentEditable")&&mxEvent.consume(ca)});O=function(ca){if(mxClient.IS_IOS||
mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var fa=new FilenameDialog(b,X.title||"",mxResources.get("ok"),function(la){null!=la&&(X.title=la,U())},mxResources.get("enterValue"));b.showDialog(fa.container,300,80,!0,!0);fa.init();mxEvent.consume(ca)}else if("true"!=S.getAttribute("contentEditable")){null!=y&&(y(),y=null);if(null==X.title||0==X.title.length)S.innerText="";S.style.textOverflow="";S.style.whiteSpace="";S.style.cursor="text";S.style.color="";S.setAttribute("contentEditable",
-"true");mxUtils.setPrefixedStyle(S.style,"user-select","text");S.focus();document.execCommand("selectAll",!1,null);y=function(){S.removeAttribute("contentEditable");S.style.cursor="pointer";X.title=S.innerHTML;U()};mxEvent.consume(ca)}};mxEvent.addListener(S,"click",O);mxEvent.addListener(L,"dblclick",O);n.appendChild(L);mxEvent.addListener(L,"dragstart",function(ca){null==F&&null!=P&&(R.style.visibility="hidden",S.style.visibility="hidden");mxClient.IS_FF&&null!=P.xml&&ca.dataTransfer.setData("Text",
+"true");mxUtils.setPrefixedStyle(S.style,"user-select","text");S.focus();document.execCommand("selectAll",!1,null);y=function(){S.removeAttribute("contentEditable");S.style.cursor="pointer";X.title=S.innerHTML;U()};mxEvent.consume(ca)}};mxEvent.addListener(S,"click",O);mxEvent.addListener(L,"dblclick",O);m.appendChild(L);mxEvent.addListener(L,"dragstart",function(ca){null==F&&null!=P&&(R.style.visibility="hidden",S.style.visibility="hidden");mxClient.IS_FF&&null!=P.xml&&ca.dataTransfer.setData("Text",
P.xml);C=B(ca);mxClient.IS_GC&&(L.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(L.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(L,30);R.style.visibility="";S.style.visibility=""},0)});mxEvent.addListener(L,"dragend",function(ca){"hidden"==R.style.visibility&&(R.style.visibility="",S.style.visibility="");C=null;mxUtils.setOpacity(L,100);mxUtils.setPrefixedStyle(L.style,"transform",null)})}else N||(N=!0,b.handleError({message:mxResources.get("fileExists")}));else{G=
!1;try{if(V=mxUtils.parseXml(F),"mxlibrary"==V.documentElement.nodeName){l=JSON.parse(mxUtils.getTextContent(V.documentElement));if(null!=l&&0<l.length)for(var aa=0;aa<l.length;aa++)null!=l[aa].xml?D(null,null,0,0,0,0,l[aa]):D(l[aa].data,null,0,0,l[aa].w,l[aa].h,null,"fixed",l[aa].title);G=!0}else if("mxfile"==V.documentElement.nodeName){var Y=V.documentElement.getElementsByTagName("diagram");for(aa=0;aa<Y.length;aa++){l=mxUtils.getTextContent(Y[aa]);O=b.stringToCells(Graph.decompress(l));var Z=b.editor.graph.getBoundingBoxFromGeometry(O);
-D(null,null,0,0,0,0,{xml:l,w:Z.width,h:Z.height})}G=!0}}catch(ca){}G||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(ca){}return null}function K(F){F.dataTransfer.dropEffect=null!=C?"move":"copy";F.stopPropagation();F.preventDefault()}function c(F){F.stopPropagation();F.preventDefault();N=!1;u=B(F);if(null!=C)null!=u&&u<n.children.length?(e.splice(u>C?u-1:u,0,e.splice(C,1)[0]),n.insertBefore(n.children[C],n.children[u])):(e.push(e.splice(C,1)[0]),n.appendChild(n.children[C]));
-else if(0<F.dataTransfer.files.length)b.importFiles(F.dataTransfer.files,0,0,b.maxImageSize,t(F));else if(0<=mxUtils.indexOf(F.dataTransfer.types,"text/uri-list")){var J=decodeURIComponent(F.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(J)||/(\.png)($|\?)/i.test(J)||/(\.gif)($|\?)/i.test(J)||/(\.svg)($|\?)/i.test(J))&&b.loadImage(J,function(M){D(J,null,0,0,M.width,M.height);n.scrollTop=n.scrollHeight})}F.stopPropagation();F.preventDefault()}var e=[];k=document.createElement("div");
+D(null,null,0,0,0,0,{xml:l,w:Z.width,h:Z.height})}G=!0}}catch(ca){}G||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(ca){}return null}function K(F){F.dataTransfer.dropEffect=null!=C?"move":"copy";F.stopPropagation();F.preventDefault()}function c(F){F.stopPropagation();F.preventDefault();N=!1;u=B(F);if(null!=C)null!=u&&u<m.children.length?(e.splice(u>C?u-1:u,0,e.splice(C,1)[0]),m.insertBefore(m.children[C],m.children[u])):(e.push(e.splice(C,1)[0]),m.appendChild(m.children[C]));
+else if(0<F.dataTransfer.files.length)b.importFiles(F.dataTransfer.files,0,0,b.maxImageSize,t(F));else if(0<=mxUtils.indexOf(F.dataTransfer.types,"text/uri-list")){var J=decodeURIComponent(F.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(J)||/(\.png)($|\?)/i.test(J)||/(\.gif)($|\?)/i.test(J)||/(\.svg)($|\?)/i.test(J))&&b.loadImage(J,function(M){D(J,null,0,0,M.width,M.height);m.scrollTop=m.scrollHeight})}F.stopPropagation();F.preventDefault()}var e=[];k=document.createElement("div");
k.style.height="100%";var g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.height="40px";k.appendChild(g);mxUtils.write(g,mxResources.get("filename")+":");null==f&&(f=b.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",f);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null==v||v.isRenamable()||q.setAttribute("disabled","true");this.init=function(){if(null==v||v.isRenamable())q.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};g.appendChild(q);var n=document.createElement("div");n.style.borderWidth="1px 0px 1px 0px";n.style.borderColor="#d3d3d3";n.style.borderStyle="solid";n.style.marginTop="6px";n.style.overflow="auto";n.style.height="340px";n.style.backgroundPosition="center center";n.style.backgroundRepeat="no-repeat";0==e.length&&Graph.fileSupport&&(n.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var m=document.createElement("div");
-m.style.position="absolute";m.style.width="640px";m.style.top="260px";m.style.textAlign="center";m.style.fontSize="22px";m.style.color="#a0c3ff";mxUtils.write(m,mxResources.get("dragImagesHere"));k.appendChild(m);var z={},C=null,u=null,y=null;f=function(F){"true"!=mxEvent.getSource(F).getAttribute("contentEditable")&&null!=y&&(y(),y=null,mxEvent.consume(F))};mxEvent.addListener(n,"mousedown",f);mxEvent.addListener(n,"pointerdown",f);mxEvent.addListener(n,"touchstart",f);var I=new mxUrlConverter,N=
-!1;if(null!=d)for(f=0;f<d.length;f++)g=d[f],D(g.data,null,0,0,g.w,g.h,g,g.aspect,g.title);mxEvent.addListener(n,"dragleave",function(F){m.style.cursor="";for(var J=mxEvent.getSource(F);null!=J;){if(J==n||J==m){F.stopPropagation();F.preventDefault();break}J=J.parentNode}});var t=function(F){return function(J,M,H,G,E,P,T,W,U){null!=U&&(/(\.v(dx|sdx?))($|\?)/i.test(U.name)||/(\.vs(x|sx?))($|\?)/i.test(U.name))?b.importVisio(U,mxUtils.bind(this,function(V){D(V,M,H,G,E,P,T,"fixed",mxEvent.isAltDown(F)?
-null:T.substring(0,T.lastIndexOf(".")).replace(/_/g," "))})):null!=U&&(new XMLHttpRequest).upload&&b.isRemoteFileFormat(J,U.name)?b.isExternalDataComms()?b.parseFile(U,mxUtils.bind(this,function(V){4==V.readyState&&(b.spinner.stop(),200<=V.status&&299>=V.status&&(D(V.responseText,M,H,G,E,P,T,"fixed",mxEvent.isAltDown(F)?null:T.substring(0,T.lastIndexOf(".")).replace(/_/g," ")),n.scrollTop=n.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):
-(D(J,M,H,G,E,P,T,"fixed",mxEvent.isAltDown(F)?null:T.substring(0,T.lastIndexOf(".")).replace(/_/g," ")),n.scrollTop=n.scrollHeight)}};mxEvent.addListener(n,"dragover",K);mxEvent.addListener(n,"drop",c);mxEvent.addListener(m,"dragover",K);mxEvent.addListener(m,"drop",c);k.appendChild(n);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});f.setAttribute("id","btnCancel");f.className="geBtn";b.editor.cancelFirst&&
+5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};g.appendChild(q);var m=document.createElement("div");m.style.borderWidth="1px 0px 1px 0px";m.style.borderColor="#d3d3d3";m.style.borderStyle="solid";m.style.marginTop="6px";m.style.overflow="auto";m.style.height="340px";m.style.backgroundPosition="center center";m.style.backgroundRepeat="no-repeat";0==e.length&&Graph.fileSupport&&(m.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var n=document.createElement("div");
+n.style.position="absolute";n.style.width="640px";n.style.top="260px";n.style.textAlign="center";n.style.fontSize="22px";n.style.color="#a0c3ff";mxUtils.write(n,mxResources.get("dragImagesHere"));k.appendChild(n);var z={},C=null,u=null,y=null;f=function(F){"true"!=mxEvent.getSource(F).getAttribute("contentEditable")&&null!=y&&(y(),y=null,mxEvent.consume(F))};mxEvent.addListener(m,"mousedown",f);mxEvent.addListener(m,"pointerdown",f);mxEvent.addListener(m,"touchstart",f);var I=new mxUrlConverter,N=
+!1;if(null!=d)for(f=0;f<d.length;f++)g=d[f],D(g.data,null,0,0,g.w,g.h,g,g.aspect,g.title);mxEvent.addListener(m,"dragleave",function(F){n.style.cursor="";for(var J=mxEvent.getSource(F);null!=J;){if(J==m||J==n){F.stopPropagation();F.preventDefault();break}J=J.parentNode}});var t=function(F){return function(J,M,H,G,E,P,T,W,U){null!=U&&(/(\.v(dx|sdx?))($|\?)/i.test(U.name)||/(\.vs(x|sx?))($|\?)/i.test(U.name))?b.importVisio(U,mxUtils.bind(this,function(V){D(V,M,H,G,E,P,T,"fixed",mxEvent.isAltDown(F)?
+null:T.substring(0,T.lastIndexOf(".")).replace(/_/g," "))})):null!=U&&(new XMLHttpRequest).upload&&b.isRemoteFileFormat(J,U.name)?b.isExternalDataComms()?b.parseFile(U,mxUtils.bind(this,function(V){4==V.readyState&&(b.spinner.stop(),200<=V.status&&299>=V.status&&(D(V.responseText,M,H,G,E,P,T,"fixed",mxEvent.isAltDown(F)?null:T.substring(0,T.lastIndexOf(".")).replace(/_/g," ")),m.scrollTop=m.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):
+(D(J,M,H,G,E,P,T,"fixed",mxEvent.isAltDown(F)?null:T.substring(0,T.lastIndexOf(".")).replace(/_/g," ")),m.scrollTop=m.scrollHeight)}};mxEvent.addListener(m,"dragover",K);mxEvent.addListener(m,"drop",c);mxEvent.addListener(n,"dragover",K);mxEvent.addListener(n,"drop",c);k.appendChild(m);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});f.setAttribute("id","btnCancel");f.className="geBtn";b.editor.cancelFirst&&
d.appendChild(f);"draw.io"!=b.getServiceName()||null==v||v.constructor!=DriveLibrary&&v.constructor!=GitHubLibrary||(g=mxUtils.button(mxResources.get("link"),function(){b.spinner.spin(document.body,mxResources.get("loading"))&&v.getPublicUrl(function(F){b.spinner.stop();if(null!=F){var J=b.getSearch("create title mode url drive splash state clibs ui".split(" "));J+=(0==J.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(F);F=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+
"/"+J,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(F.container,450,240,!0);F.init()}else v.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){b.drive.showPermissions(v.getId())}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),g.className="geBtn",d.appendChild(g));g=mxUtils.button(mxResources.get("export"),
function(){var F=b.createLibraryDataFromImages(e),J=q.value;/(\.xml)$/i.test(J)||(J+=".xml");b.isLocalFileSave()?b.saveLocalFile(F,J,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(J)+"&format=xml&xml="+encodeURIComponent(F))).simulate(document,"_blank")});g.setAttribute("id","btnDownload");g.className="geBtn";d.appendChild(g);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var p=document.createElement("input");p.setAttribute("multiple","multiple");
-p.setAttribute("type","file");mxEvent.addListener(p,"change",function(F){N=!1;b.importFiles(p.files,0,0,b.maxImageSize,function(J,M,H,G,E,P,T,W,U){null!=p.files&&(t(F)(J,M,H,G,E,P,T,W,U),p.type="",p.type="file",p.value="")});n.scrollTop=n.scrollHeight});p.style.display="none";document.body.appendChild(p);b.libDlgFileInputElt=p}g=mxUtils.button(mxResources.get("import"),function(){null!=y&&(y(),y=null);b.libDlgFileInputElt.click()});g.setAttribute("id","btnAddImage");g.className="geBtn";d.appendChild(g)}g=
-mxUtils.button(mxResources.get("addImages"),function(){null!=y&&(y(),y=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(F,J,M){N=!1;if(null!=F){if("data:image/"==F.substring(0,11)){var H=F.indexOf(",");0<H&&(F=F.substring(0,H)+";base64,"+F.substring(H+1))}D(F,null,0,0,J,M);n.scrollTop=n.scrollHeight}})});g.setAttribute("id","btnAddImageUrl");g.className="geBtn";d.appendChild(g);this.saveBtnClickHandler=function(F,J,M,H){b.saveLibrary(F,J,M,H)};g=mxUtils.button(mxResources.get("save"),
+p.setAttribute("type","file");mxEvent.addListener(p,"change",function(F){N=!1;b.importFiles(p.files,0,0,b.maxImageSize,function(J,M,H,G,E,P,T,W,U){null!=p.files&&(t(F)(J,M,H,G,E,P,T,W,U),p.type="",p.type="file",p.value="")});m.scrollTop=m.scrollHeight});p.style.display="none";document.body.appendChild(p);b.libDlgFileInputElt=p}g=mxUtils.button(mxResources.get("import"),function(){null!=y&&(y(),y=null);b.libDlgFileInputElt.click()});g.setAttribute("id","btnAddImage");g.className="geBtn";d.appendChild(g)}g=
+mxUtils.button(mxResources.get("addImages"),function(){null!=y&&(y(),y=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(F,J,M){N=!1;if(null!=F){if("data:image/"==F.substring(0,11)){var H=F.indexOf(",");0<H&&(F=F.substring(0,H)+";base64,"+F.substring(H+1))}D(F,null,0,0,J,M);m.scrollTop=m.scrollHeight}})});g.setAttribute("id","btnAddImageUrl");g.className="geBtn";d.appendChild(g);this.saveBtnClickHandler=function(F,J,M,H){b.saveLibrary(F,J,M,H)};g=mxUtils.button(mxResources.get("save"),
mxUtils.bind(this,function(){null!=y&&(y(),y=null);this.saveBtnClickHandler(q.value,e,v,x)}));g.setAttribute("id","btnSave");g.className="geBtn gePrimaryBtn";d.appendChild(g);b.editor.cancelFirst||d.appendChild(f);k.appendChild(d);this.container=k},EditShapeDialog=function(b,f,k,d,v){d=null!=d?d:300;v=null!=v?v:120;var x=document.createElement("table"),B=document.createElement("tbody");x.style.cellPadding="4px";var D=document.createElement("tr");var K=document.createElement("td");K.setAttribute("colspan",
"2");K.style.fontSize="10pt";mxUtils.write(K,k);D.appendChild(K);B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");var c=document.createElement("textarea");c.style.outline="none";c.style.resize="none";c.style.width=d-200+"px";c.style.height=v+"px";this.textarea=c;this.init=function(){c.focus();c.scrollTop=0};K.appendChild(c);D.appendChild(K);K=document.createElement("td");k=document.createElement("div");k.style.position="relative";k.style.border="1px solid gray";k.style.top=
"6px";k.style.width="200px";k.style.height=v+4+"px";k.style.overflow="hidden";k.style.marginBottom="16px";mxEvent.disableContextMenu(k);K.appendChild(k);var e=new Graph(k);e.setEnabled(!1);var g=b.editor.graph.cloneCell(f);e.addCells([g]);k=e.view.getState(g);var q="";null!=k.shape&&null!=k.shape.stencil&&(q=mxUtils.getPrettyXml(k.shape.stencil.desc));mxUtils.write(c,q||"");k=e.getGraphBounds();v=Math.min(160/k.width,(v-40)/k.height);e.view.scaleAndTranslate(v,20/v-k.x,20/v-k.y);D.appendChild(K);
B.appendChild(D);D=document.createElement("tr");K=document.createElement("td");K.setAttribute("colspan","2");K.style.paddingTop="2px";K.style.whiteSpace="nowrap";K.setAttribute("align","right");b.isOffline()||(v=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.diagrams.net/doc/faq/shape-complex-create-edit")}),v.className="geBtn",K.appendChild(v));v=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});v.className="geBtn";b.editor.cancelFirst&&K.appendChild(v);
-var n=function(m,z,C){var u=c.value,y=mxUtils.parseXml(u);u=mxUtils.getPrettyXml(y.documentElement);y=y.documentElement.getElementsByTagName("parsererror");if(null!=y&&0<y.length)b.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(C&&b.hideDialog(),y=!m.model.contains(z),!C||y||u!=q){u=Graph.compress(u);m.getModel().beginUpdate();try{if(y){var I=b.editor.graph.getFreeInsertPoint();z.geometry.x=I.x;z.geometry.y=I.y;m.addCell(z)}m.setCellStyles(mxConstants.STYLE_SHAPE,
-"stencil("+u+")",[z])}catch(N){throw N;}finally{m.getModel().endUpdate()}y&&(m.setSelectionCell(z),m.scrollCellToVisible(z))}};k=mxUtils.button(mxResources.get("preview"),function(){n(e,g,!1)});k.className="geBtn";K.appendChild(k);k=mxUtils.button(mxResources.get("apply"),function(){n(b.editor.graph,f,!0)});k.className="geBtn gePrimaryBtn";K.appendChild(k);b.editor.cancelFirst||K.appendChild(v);D.appendChild(K);B.appendChild(D);x.appendChild(B);this.container=x},CustomDialog=function(b,f,k,d,v,x,
+var m=function(n,z,C){var u=c.value,y=mxUtils.parseXml(u);u=mxUtils.getPrettyXml(y.documentElement);y=y.documentElement.getElementsByTagName("parsererror");if(null!=y&&0<y.length)b.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(C&&b.hideDialog(),y=!n.model.contains(z),!C||y||u!=q){u=Graph.compress(u);n.getModel().beginUpdate();try{if(y){var I=b.editor.graph.getFreeInsertPoint();z.geometry.x=I.x;z.geometry.y=I.y;n.addCell(z)}n.setCellStyles(mxConstants.STYLE_SHAPE,
+"stencil("+u+")",[z])}catch(N){throw N;}finally{n.getModel().endUpdate()}y&&(n.setSelectionCell(z),n.scrollCellToVisible(z))}};k=mxUtils.button(mxResources.get("preview"),function(){m(e,g,!1)});k.className="geBtn";K.appendChild(k);k=mxUtils.button(mxResources.get("apply"),function(){m(b.editor.graph,f,!0)});k.className="geBtn gePrimaryBtn";K.appendChild(k);b.editor.cancelFirst||K.appendChild(v);D.appendChild(K);B.appendChild(D);x.appendChild(B);this.container=x},CustomDialog=function(b,f,k,d,v,x,
B,D,K,c,e){var g=document.createElement("div");g.appendChild(f);var q=document.createElement("div");q.style.marginTop="30px";q.style.textAlign="center";null!=B&&q.appendChild(B);b.isOffline()||null==x||(f=mxUtils.button(mxResources.get("help"),function(){b.openLink(x)}),f.className="geBtn",q.appendChild(f));K=mxUtils.button(K||mxResources.get("cancel"),function(){b.hideDialog();null!=d&&d()});K.className="geBtn";D&&(K.style.display="none");b.editor.cancelFirst&&q.appendChild(K);v=mxUtils.button(v||
-mxResources.get("ok"),mxUtils.bind(this,function(){c||b.hideDialog(null,null,this.container);if(null!=k){var n=k();if("string"===typeof n){b.showError(mxResources.get("error"),n);return}}c&&b.hideDialog(null,null,this.container)}));q.appendChild(v);v.className="geBtn gePrimaryBtn";b.editor.cancelFirst||q.appendChild(K);if(null!=e)for(D=0;D<e.length;D++)(function(n,m,z){n=mxUtils.button(n,function(C){m(C)});null!=z&&n.setAttribute("title",z);n.className="geBtn";q.appendChild(n)})(e[D][0],e[D][1],e[D][2]);
-g.appendChild(q);this.cancelBtn=K;this.okButton=v;this.container=g},TemplatesDialog=function(b,f,k,d,v,x,B,D,K,c,e,g,q,n,m){function z(ea){Ia.innerText=ea;Ia.style.display="block";setTimeout(function(){Ia.style.display="none"},4E3)}function C(){null!=l&&(l.style.fontWeight="normal",l.style.textDecoration="none",A=l,l=null)}function u(ea,ha,oa,ma,va,Ca,ya){if(-1<ea.className.indexOf("geTempDlgRadioBtnActive"))return!1;ea.className+=" geTempDlgRadioBtnActive";W.querySelector(".geTempDlgRadioBtn[data-id="+
+mxResources.get("ok"),mxUtils.bind(this,function(){c||b.hideDialog(null,null,this.container);if(null!=k){var m=k();if("string"===typeof m){b.showError(mxResources.get("error"),m);return}}c&&b.hideDialog(null,null,this.container)}));q.appendChild(v);v.className="geBtn gePrimaryBtn";b.editor.cancelFirst||q.appendChild(K);if(null!=e)for(D=0;D<e.length;D++)(function(m,n,z){m=mxUtils.button(m,function(C){n(C)});null!=z&&m.setAttribute("title",z);m.className="geBtn";q.appendChild(m)})(e[D][0],e[D][1],e[D][2]);
+g.appendChild(q);this.cancelBtn=K;this.okButton=v;this.container=g},TemplatesDialog=function(b,f,k,d,v,x,B,D,K,c,e,g,q,m,n){function z(ea){Ia.innerText=ea;Ia.style.display="block";setTimeout(function(){Ia.style.display="none"},4E3)}function C(){null!=l&&(l.style.fontWeight="normal",l.style.textDecoration="none",A=l,l=null)}function u(ea,ha,oa,ma,va,Ca,ya){if(-1<ea.className.indexOf("geTempDlgRadioBtnActive"))return!1;ea.className+=" geTempDlgRadioBtnActive";W.querySelector(".geTempDlgRadioBtn[data-id="+
ma+"]").className="geTempDlgRadioBtn "+(ya?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");W.querySelector("."+ha).src="/images/"+oa+"-sel.svg";W.querySelector("."+va).src="/images/"+Ca+".svg";return!0}function y(ea,ha,oa,ma){function va(pa,Ha){null==ya?(pa=/^https?:\/\//.test(pa)&&!b.editor.isCorsEnabledForUrl(pa)?PROXY_URL+"?url="+encodeURIComponent(pa):TEMPLATE_PATH+"/"+pa,mxUtils.get(pa,mxUtils.bind(this,function(Ma){200<=Ma.getStatus()&&299>=Ma.getStatus()&&(ya=Ma.getText());Ha(ya)}))):Ha(ya)}
function Ca(pa,Ha,Ma){if(null!=pa&&mxUtils.isAncestorNode(document.body,ha)&&(pa=mxUtils.parseXml(pa),pa=Editor.extractGraphModel(pa.documentElement,!0),null!=pa)){"mxfile"==pa.nodeName&&(pa=Editor.parseDiagramNode(pa.getElementsByTagName("diagram")[0]));var Ra=new mxCodec(pa.ownerDocument),Ja=new mxGraphModel;Ra.decode(pa,Ja);pa=Ja.root.getChildAt(0).children||[];b.sidebar.createTooltip(ha,pa,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||
document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=ea.title?mxResources.get(ea.title,null,ea.title):null,!0,new mxPoint(Ha,Ma),!0,null,!0);var Pa=document.createElement("div");Pa.className="geTempDlgDialogMask";W.appendChild(Pa);var Qa=b.sidebar.hideTooltip;b.sidebar.hideTooltip=function(){Pa&&(W.removeChild(Pa),Pa=null,Qa.apply(this,arguments),b.sidebar.hideTooltip=Qa)};mxEvent.addListener(Pa,"click",function(){b.sidebar.hideTooltip()})}}var ya=null;if(ua||b.sidebar.currentElt==
ha)b.sidebar.hideTooltip();else{var ta=function(pa){ua&&b.sidebar.currentElt==ha&&Ca(pa,mxEvent.getClientX(ma),mxEvent.getClientY(ma));ua=!1;oa.src="/images/icon-search.svg"};b.sidebar.hideTooltip();b.sidebar.currentElt=ha;ua=!0;oa.src="/images/aui-wait.gif";ea.isExt?K(ea,ta,function(){z(mxResources.get("cantLoadPrev"));ua=!1;oa.src="/images/icon-search.svg"}):va(ea.url,ta)}}function I(ea,ha,oa){if(null!=L){for(var ma=L.className.split(" "),va=0;va<ma.length;va++)if(-1<ma[va].indexOf("Active")){ma.splice(va,
-1);break}L.className=ma.join(" ")}null!=ea?(L=ea,L.className+=" "+ha,Q=oa,Oa.className="geTempDlgCreateBtn"):(Q=L=null,Oa.className="geTempDlgCreateBtn geTempDlgBtnDisabled")}function N(ea,ha){if(null!=Q){var oa=function(ta){ya.isExternal?K(ya,function(pa){ma(pa,ta)},va):ya.url?mxUtils.get(TEMPLATE_PATH+"/"+ya.url,mxUtils.bind(this,function(pa){200<=pa.getStatus()&&299>=pa.getStatus()?ma(pa.getText(),ta):va()})):ma(b.emptyDiagramXml,ta)},ma=function(ta,pa){m||b.hideDialog(!0);f(ta,pa,ya,ha)},va=function(){z(mxResources.get("cannotLoad"));
+1);break}L.className=ma.join(" ")}null!=ea?(L=ea,L.className+=" "+ha,Q=oa,Oa.className="geTempDlgCreateBtn"):(Q=L=null,Oa.className="geTempDlgCreateBtn geTempDlgBtnDisabled")}function N(ea,ha){if(null!=Q){var oa=function(ta){ya.isExternal?K(ya,function(pa){ma(pa,ta)},va):ya.url?mxUtils.get(TEMPLATE_PATH+"/"+ya.url,mxUtils.bind(this,function(pa){200<=pa.getStatus()&&299>=pa.getStatus()?ma(pa.getText(),ta):va()})):ma(b.emptyDiagramXml,ta)},ma=function(ta,pa){n||b.hideDialog(!0);f(ta,pa,ya,ha)},va=function(){z(mxResources.get("cannotLoad"));
Ca()},Ca=function(){Q=ya;Oa.className="geTempDlgCreateBtn";ha&&(Aa.className="geTempDlgOpenBtn")},ya=Q;Q=null;"boolean"!==typeof ha&&(ha=ya.isExternal&&g);1==ea?c(ya.url,ya):ha?(Aa.className="geTempDlgOpenBtn geTempDlgBtnDisabled geTempDlgBtnBusy",oa()):(Oa.className="geTempDlgCreateBtn geTempDlgBtnDisabled geTempDlgBtnBusy",ea=null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"),ea=new FilenameDialog(b,b.defaultFilename+".drawio",
-mxResources.get("ok"),oa,ea,function(ta){var pa=null!=ta&&0<ta.length;return pa&&m?(oa(ta),!1):pa},null,null,null,Ca,n?null:[]),b.showDialog(ea.container,350,80,!0,!0),ea.init())}}function t(ea){Oa.innerText=mxResources.get(ca||ea?"create":"copy");ea=ea?"none":"";g&&(Aa.style.display=ea);for(var ha=W.querySelectorAll(".geTempDlgLinkToDiagram"),oa=0;oa<ha.length;oa++)ha[oa].style.display=ea}function p(ea,ha,oa,ma,va){va||(la.innerText="",I(),X=ea,aa=ma);var Ca=null;if(oa){Ca=document.createElement("table");
+mxResources.get("ok"),oa,ea,function(ta){var pa=null!=ta&&0<ta.length;return pa&&n?(oa(ta),!1):pa},null,null,null,Ca,m?null:[]),b.showDialog(ea.container,350,80,!0,!0),ea.init())}}function t(ea){Oa.innerText=mxResources.get(ca||ea?"create":"copy");ea=ea?"none":"";g&&(Aa.style.display=ea);for(var ha=W.querySelectorAll(".geTempDlgLinkToDiagram"),oa=0;oa<ha.length;oa++)ha[oa].style.display=ea}function p(ea,ha,oa,ma,va){va||(la.innerText="",I(),X=ea,aa=ma);var Ca=null;if(oa){Ca=document.createElement("table");
Ca.className="geTempDlgDiagramsListGrid";var ya=document.createElement("tr"),ta=document.createElement("th");ta.style.width="50%";ta.innerText=mxResources.get("diagram");ya.appendChild(ta);ta=document.createElement("th");ta.style.width="25%";ta.innerText=mxResources.get("changedBy");ya.appendChild(ta);ta=document.createElement("th");ta.style.width="25%";ta.innerText=mxResources.get("lastModifiedOn");ya.appendChild(ta);Ca.appendChild(ya);la.appendChild(Ca)}for(ya=0;ya<ea.length;ya++){ea[ya].isExternal=
!ha;var pa=ea[ya].url,Ha=(ta=mxUtils.htmlEntities(ha?mxResources.get(ea[ya].title,null,ea[ya].title):ea[ya].title))||ea[ya].url,Ma=ea[ya].imgUrl,Ra=ea[ya].changedBy||"",Ja="";ea[ya].lastModifiedOn&&(Ja=b.timeSince(new Date(ea[ya].lastModifiedOn)),null==Ja&&(Ja=mxResources.get("lessThanAMinute")),Ja=mxResources.get("timeAgo",[Ja],"{1} ago"));Ma||(Ma=TEMPLATE_PATH+"/"+pa.substring(0,pa.length-4)+".png");pa=oa?50:15;null!=ta&&ta.length>pa&&(ta=ta.substring(0,pa)+"&hellip;");if(oa){var Pa=document.createElement("tr");
Ma=document.createElement("td");var Qa=document.createElement("img");Qa.src="/images/icon-search.svg";Qa.className="geTempDlgDiagramListPreviewBtn";Qa.setAttribute("title",mxResources.get("preview"));va||Ma.appendChild(Qa);Ha=document.createElement("span");Ha.className="geTempDlgDiagramTitle";Ha.innerHTML=ta;Ma.appendChild(Ha);Pa.appendChild(Ma);Ma=document.createElement("td");Ma.innerText=Ra;Pa.appendChild(Ma);Ma=document.createElement("td");Ma.innerText=Ja;Pa.appendChild(Ma);Ca.appendChild(Pa);
@@ -11401,21 +11401,21 @@ za=W.querySelector(".geTempDlgNewDiagramCatList"),Oa=W.querySelector(".geTempDlg
"allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(R=!1,null==Y?H(R):E(Y))});mxEvent.addListener(W.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){u(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(S=!0,p(X,!1,S,aa))});mxEvent.addListener(W.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){u(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(S=!1,p(X,!1,S,aa))});var ua=!1;
mxEvent.addListener(fa,"click",function(){O?(Ea.style.height="280px",za.style.height="190px",fa.innerText=mxResources.get("showMore"),F(xa)):(Ea.style.height="440px",za.style.height="355px",fa.innerText=mxResources.get("showLess"),F(xa,!0));O=!O});var Ba=!1,Fa=!1,wa={},La={},ja={},xa=[],sa=1,da=0;null!=e?e(function(ea,ha){ja=ea;da=ha;M()},M):M();mxUtils.get(v,function(ea){if(!Fa){Fa=!0;for(ea=ea.getXml().documentElement.firstChild;null!=ea;)"undefined"!==typeof ea.getAttribute&&null!=ea.getAttribute("title")&&
xa.push({img:ea.getAttribute("img"),libs:ea.getAttribute("libs"),clibs:ea.getAttribute("clibs"),title:ea.getAttribute("title")}),ea=ea.nextSibling;F(xa)}});var ba=function(ea,ha,oa){qa.style.display="";ra.stop();U=!1;if(V)V=!1;else if(ha)la.innerText=ha;else{oa=oa||{};ha=0;for(var ma in oa)ha+=oa[ma].length;0==ea.length&&0==ha?la.innerText=mxResources.get("noDiagrams"):p(ea,!1,S,0==ha?null:oa)}};H(R);var na=null;mxEvent.addListener(Ga,"keyup",P);mxEvent.addListener(Ga,"search",P);mxEvent.addListener(Ga,
-"input",P);mxEvent.addListener(Oa,"click",function(ea){N(!1,!1)});g&&mxEvent.addListener(Aa,"click",function(ea){N(!1,!0)});q&&mxEvent.addListener(W.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(ea){N(!0)});mxEvent.addListener(W.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=k&&k();m||b.hideDialog(!0)})};TemplatesDialog.tagsList={};
+"input",P);mxEvent.addListener(Oa,"click",function(ea){N(!1,!1)});g&&mxEvent.addListener(Aa,"click",function(ea){N(!1,!0)});q&&mxEvent.addListener(W.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(ea){N(!0)});mxEvent.addListener(W.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=k&&k();n||b.hideDialog(!0)})};TemplatesDialog.tagsList={};
var BtnDialog=function(b,f,k,d){var v=document.createElement("div");v.style.textAlign="center";var x=document.createElement("p");x.style.fontSize="16pt";x.style.padding="0px";x.style.margin="0px";x.style.color="gray";mxUtils.write(x,mxResources.get("done"));var B="Unknown",D=document.createElement("img");D.setAttribute("border","0");D.setAttribute("align","absmiddle");D.style.marginRight="10px";f==b.drive?(B=mxResources.get("googleDrive"),D.src=IMAGE_PATH+"/google-drive-logo-white.svg"):f==b.dropbox?
(B=mxResources.get("dropbox"),D.src=IMAGE_PATH+"/dropbox-logo-white.svg"):f==b.oneDrive?(B=mxResources.get("oneDrive"),D.src=IMAGE_PATH+"/onedrive-logo-white.svg"):f==b.gitHub?(B=mxResources.get("github"),D.src=IMAGE_PATH+"/github-logo-white.svg"):f==b.gitLab?(B=mxResources.get("gitlab"),D.src=IMAGE_PATH+"/gitlab-logo.svg"):f==b.trello&&(B=mxResources.get("trello"),D.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");mxUtils.write(b,mxResources.get("authorizedIn",[B],"You are now authorized in {1}"));
k=mxUtils.button(k,d);k.insertBefore(D,k.firstChild);k.style.marginTop="6px";k.className="geBigButton";k.style.fontSize="18px";k.style.padding="14px";v.appendChild(x);v.appendChild(b);v.appendChild(k);this.container=v},FontDialog=function(b,f,k,d,v){function x(I){this.style.border="";13==I.keyCode&&y.click()}var B=document.createElement("table"),D=document.createElement("tbody");B.style.marginTop="8px";var K=document.createElement("tr");var c=document.createElement("td");c.colSpan=2;c.style.whiteSpace=
"nowrap";c.style.fontSize="10pt";c.style.fontWeight="bold";var e=document.createElement("input");e.style.cssText="margin-right:8px;margin-bottom:8px;";e.setAttribute("value","sysfonts");e.setAttribute("type","radio");e.setAttribute("name","current-fontdialog");e.setAttribute("id","fontdialog-sysfonts");c.appendChild(e);var g=document.createElement("label");g.setAttribute("for","fontdialog-sysfonts");mxUtils.write(g,mxResources.get("sysFonts",null,"System Fonts"));c.appendChild(g);K.appendChild(c);
D.appendChild(K);K=document.createElement("tr");c=document.createElement("td");c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.width="120px";c.style.paddingLeft="15px";mxUtils.write(c,mxResources.get("fontname",null,"Font Name")+":");K.appendChild(c);var q=document.createElement("input");"s"==d&&q.setAttribute("value",f);q.style.marginLeft="4px";q.style.width="250px";q.className="dlg_fontName_s";c=document.createElement("td");c.appendChild(q);K.appendChild(c);D.appendChild(K);K=document.createElement("tr");
-c=document.createElement("td");c.colSpan=2;c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.fontWeight="bold";var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;";n.setAttribute("value","googlefonts");n.setAttribute("type","radio");n.setAttribute("name","current-fontdialog");n.setAttribute("id","fontdialog-googlefonts");c.appendChild(n);g=document.createElement("label");g.setAttribute("for","fontdialog-googlefonts");mxUtils.write(g,mxResources.get("googleFonts",
+c=document.createElement("td");c.colSpan=2;c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.fontWeight="bold";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";m.setAttribute("value","googlefonts");m.setAttribute("type","radio");m.setAttribute("name","current-fontdialog");m.setAttribute("id","fontdialog-googlefonts");c.appendChild(m);g=document.createElement("label");g.setAttribute("for","fontdialog-googlefonts");mxUtils.write(g,mxResources.get("googleFonts",
null,"Google Fonts"));c.appendChild(g);mxClient.IS_CHROMEAPP||b.isOffline()&&!EditorUi.isElectronApp||(g=b.menus.createHelpLink("https://fonts.google.com/"),g.getElementsByTagName("img")[0].setAttribute("valign","middle"),c.appendChild(g));K.appendChild(c);D.appendChild(K);K=document.createElement("tr");c=document.createElement("td");c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.width="120px";c.style.paddingLeft="15px";mxUtils.write(c,mxResources.get("fontname",null,"Font Name")+":");
-K.appendChild(c);var m=document.createElement("input");"g"==d&&m.setAttribute("value",f);m.style.marginLeft="4px";m.style.width="250px";m.className="dlg_fontName_g";c=document.createElement("td");c.appendChild(m);K.appendChild(c);D.appendChild(K);K=document.createElement("tr");c=document.createElement("td");c.colSpan=2;c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.fontWeight="bold";var z=document.createElement("input");z.style.cssText="margin-right:8px;margin-bottom:8px;";z.setAttribute("value",
+K.appendChild(c);var n=document.createElement("input");"g"==d&&n.setAttribute("value",f);n.style.marginLeft="4px";n.style.width="250px";n.className="dlg_fontName_g";c=document.createElement("td");c.appendChild(n);K.appendChild(c);D.appendChild(K);K=document.createElement("tr");c=document.createElement("td");c.colSpan=2;c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.fontWeight="bold";var z=document.createElement("input");z.style.cssText="margin-right:8px;margin-bottom:8px;";z.setAttribute("value",
"webfonts");z.setAttribute("type","radio");z.setAttribute("name","current-fontdialog");z.setAttribute("id","fontdialog-webfonts");c.appendChild(z);g=document.createElement("label");g.setAttribute("for","fontdialog-webfonts");mxUtils.write(g,mxResources.get("webfonts",null,"Web Fonts"));c.appendChild(g);K.appendChild(c);Editor.enableWebFonts&&D.appendChild(K);K=document.createElement("tr");c=document.createElement("td");c.style.whiteSpace="nowrap";c.style.fontSize="10pt";c.style.width="120px";c.style.paddingLeft=
"15px";mxUtils.write(c,mxResources.get("fontname",null,"Font Name")+":");K.appendChild(c);var C=document.createElement("input");"w"==d&&(Editor.enableWebFonts?C.setAttribute("value",f):q.setAttribute("value",f));C.style.marginLeft="4px";C.style.width="250px";C.className="dlg_fontName_w";c=document.createElement("td");c.appendChild(C);K.appendChild(c);Editor.enableWebFonts&&D.appendChild(K);K=document.createElement("tr");c=document.createElement("td");c.style.whiteSpace="nowrap";c.style.fontSize="10pt";
-c.style.width="120px";c.style.paddingLeft="15px";mxUtils.write(c,mxResources.get("fontUrl",null,"Font URL")+":");K.appendChild(c);var u=document.createElement("input");u.setAttribute("value",k||"");u.style.marginLeft="4px";u.style.width="250px";u.className="dlg_fontUrl";c=document.createElement("td");c.appendChild(u);K.appendChild(c);Editor.enableWebFonts&&D.appendChild(K);this.init=function(){var I=q;"g"==d?I=m:"w"==d&&Editor.enableWebFonts&&(I=C);I.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?
+c.style.width="120px";c.style.paddingLeft="15px";mxUtils.write(c,mxResources.get("fontUrl",null,"Font URL")+":");K.appendChild(c);var u=document.createElement("input");u.setAttribute("value",k||"");u.style.marginLeft="4px";u.style.width="250px";u.className="dlg_fontUrl";c=document.createElement("td");c.appendChild(u);K.appendChild(c);Editor.enableWebFonts&&D.appendChild(K);this.init=function(){var I=q;"g"==d?I=n:"w"==d&&Editor.enableWebFonts&&(I=C);I.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?
I.select():document.execCommand("selectAll",!1,null)};K=document.createElement("tr");c=document.createElement("td");c.colSpan=2;c.style.paddingTop="20px";c.style.whiteSpace="nowrap";c.setAttribute("align","right");b.isOffline()||(f=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.diagrams.net/blog/external-fonts")}),f.className="geBtn",c.appendChild(f));f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();v()});f.className="geBtn";b.editor.cancelFirst&&c.appendChild(f);
-var y=mxUtils.button(mxResources.get("apply"),function(){if(e.checked){var I=q.value;var N="s"}else if(n.checked){I=m.value;var t=Editor.GOOGLE_FONTS+encodeURIComponent(I).replace(/%20/g,"+");N="g"}else z.checked&&(I=C.value,t=u.value,N="w");var p=t;var F=N,J=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null==I||0==I.length?(B.querySelector(".dlg_fontName_"+F).style.border="1px solid red",p=!1):"w"!=F||J.test(p)?p=!0:(B.querySelector(".dlg_fontUrl").style.border=
-"1px solid red",p=!1);p&&(v(I,t,N),b.hideDialog())});y.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keypress",x);mxEvent.addListener(m,"keypress",x);mxEvent.addListener(C,"keypress",x);mxEvent.addListener(u,"keypress",x);mxEvent.addListener(q,"focus",function(){e.setAttribute("checked","checked");e.checked=!0});mxEvent.addListener(m,"focus",function(){n.setAttribute("checked","checked");n.checked=!0});mxEvent.addListener(C,"focus",function(){z.setAttribute("checked","checked");z.checked=
+var y=mxUtils.button(mxResources.get("apply"),function(){if(e.checked){var I=q.value;var N="s"}else if(m.checked){I=n.value;var t=Editor.GOOGLE_FONTS+encodeURIComponent(I).replace(/%20/g,"+");N="g"}else z.checked&&(I=C.value,t=u.value,N="w");var p=t;var F=N,J=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null==I||0==I.length?(B.querySelector(".dlg_fontName_"+F).style.border="1px solid red",p=!1):"w"!=F||J.test(p)?p=!0:(B.querySelector(".dlg_fontUrl").style.border=
+"1px solid red",p=!1);p&&(v(I,t,N),b.hideDialog())});y.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keypress",x);mxEvent.addListener(n,"keypress",x);mxEvent.addListener(C,"keypress",x);mxEvent.addListener(u,"keypress",x);mxEvent.addListener(q,"focus",function(){e.setAttribute("checked","checked");e.checked=!0});mxEvent.addListener(n,"focus",function(){m.setAttribute("checked","checked");m.checked=!0});mxEvent.addListener(C,"focus",function(){z.setAttribute("checked","checked");z.checked=
!0});mxEvent.addListener(u,"focus",function(){z.setAttribute("checked","checked");z.checked=!0});c.appendChild(y);b.editor.cancelFirst||c.appendChild(f);K.appendChild(c);D.appendChild(K);B.appendChild(D);this.container=B};
function AspectDialog(b,f,k,d,v){this.aspect={pageId:f||(b.pages?b.pages[0].getId():null),layerIds:k||[]};f=document.createElement("div");var x=document.createElement("h5");x.style.margin="0 0 10px";mxUtils.write(x,mxResources.get("pages"));f.appendChild(x);k=document.createElement("div");k.className="geAspectDlgList";f.appendChild(k);x=document.createElement("h5");x.style.margin="0 0 10px";mxUtils.write(x,mxResources.get("layers"));f.appendChild(x);x=document.createElement("div");x.className="geAspectDlgList";
f.appendChild(x);this.pagesContainer=k;this.layersContainer=x;this.ui=b;k=document.createElement("div");k.style.marginTop="16px";k.style.textAlign="center";x=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=v&&v()});x.className="geBtn";b.editor.cancelFirst&&k.appendChild(x);var B=mxUtils.button(mxResources.get("ok"),mxUtils.bind(this,function(){b.hideDialog();d({pageId:this.selectedPage,layerIds:Object.keys(this.selectedLayers)})}));k.appendChild(B);B.className="geBtn gePrimaryBtn";
@@ -11431,15 +11431,15 @@ D.style.whiteSpace="nowrap";D.style.fontSize="10pt";D.style.width="120px";mxUtil
mxUtils.write(D,mxResources.get("borderWidth")+":");v.appendChild(D);var c=document.createElement("input");c.setAttribute("value",B);c.style.marginLeft="4px";c.style.width="180px";D=document.createElement("td");D.style.whiteSpace="nowrap";D.appendChild(c);v.appendChild(D);k.appendChild(v);this.init=function(){K.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?K.select():document.execCommand("selectAll",!1,null)};x=function(){null!=b.fileNode&&(b.fileNode.setAttribute("scale",Math.max(0,
parseInt(K.value)/100)),b.fileNode.setAttribute("border",Math.max(0,parseInt(c.value))),null!=d&&d.fileChanged());b.hideDialog()}}else if(!/(\.html)$/i.test(v)&&!/(\.svg)$/i.test(v)){var e=null!=d?d.isCompressed():Editor.compressXml;v=document.createElement("tr");D=document.createElement("td");D.style.whiteSpace="nowrap";D.style.fontSize="10pt";D.style.width="120px";mxUtils.write(D,mxResources.get("compressed")+":");v.appendChild(D);var g=document.createElement("input");g.setAttribute("type","checkbox");
e&&(g.setAttribute("checked","checked"),g.defaultChecked=!0);D=document.createElement("td");D.style.whiteSpace="nowrap";D.appendChild(g);v.appendChild(D);k.appendChild(v);this.init=function(){g.focus()};x=function(){null!=b.fileNode&&e!=g.checked&&(b.fileNode.setAttribute("compressed",g.checked?"true":"false"),null!=d&&d.fileChanged());b.hideDialog()}}if(null!=d&&d.isRealtimeOptional()){v=document.createElement("tr");D=document.createElement("td");D.style.whiteSpace="nowrap";D.style.fontSize="10pt";
-D.style.width="120px";mxUtils.write(D,mxResources.get("realtimeCollaboration")+":");v.appendChild(D);var q=document.createElement("input");q.setAttribute("type","checkbox");var n=d.isRealtimeEnabled();if(n="disabled"!=b.drive.getCustomProperty(d.desc,"collaboration"))q.setAttribute("checked","checked"),q.defaultChecked=!0;prevApply=x;x=function(){prevApply();b.hideDialog();q.checked!=n&&b.spinner.spin(document.body,mxResources.get("updatingDocument"))&&d.setRealtimeEnabled(q.checked,mxUtils.bind(this,
-function(m){b.spinner.stop()}),mxUtils.bind(this,function(m){b.spinner.stop();b.showError(mxResources.get("error"),null!=m&&null!=m.error?m.error.message:mxResources.get("unknownError"),mxResources.get("ok"))}))};this.init=null!=this.init?this.init:function(){q.focus()};D=document.createElement("td");D.style.whiteSpace="nowrap";D.appendChild(q);D.appendChild(b.menus.createHelpLink("https://github.com/jgraph/drawio/discussions/2672"));v.appendChild(D);k.appendChild(v)}this.init=null!=this.init?this.init:
+D.style.width="120px";mxUtils.write(D,mxResources.get("realtimeCollaboration")+":");v.appendChild(D);var q=document.createElement("input");q.setAttribute("type","checkbox");var m=d.isRealtimeEnabled();if(m="disabled"!=b.drive.getCustomProperty(d.desc,"collaboration"))q.setAttribute("checked","checked"),q.defaultChecked=!0;prevApply=x;x=function(){prevApply();b.hideDialog();q.checked!=m&&b.spinner.spin(document.body,mxResources.get("updatingDocument"))&&d.setRealtimeEnabled(q.checked,mxUtils.bind(this,
+function(n){b.spinner.stop()}),mxUtils.bind(this,function(n){b.spinner.stop();b.showError(mxResources.get("error"),null!=n&&null!=n.error?n.error.message:mxResources.get("unknownError"),mxResources.get("ok"))}))};this.init=null!=this.init?this.init:function(){q.focus()};D=document.createElement("td");D.style.whiteSpace="nowrap";D.appendChild(q);D.appendChild(b.menus.createHelpLink("https://github.com/jgraph/drawio/discussions/2672"));v.appendChild(D);k.appendChild(v)}this.init=null!=this.init?this.init:
function(){};x=mxUtils.button(mxResources.get("apply"),x);x.className="geBtn gePrimaryBtn";v=document.createElement("tr");D=document.createElement("td");D.colSpan=2;D.style.paddingTop="20px";D.style.whiteSpace="nowrap";D.setAttribute("align","center");B=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});B.className="geBtn";b.editor.cancelFirst&&D.appendChild(B);D.appendChild(x);b.editor.cancelFirst||D.appendChild(B);v.appendChild(D);k.appendChild(v);f.appendChild(k);this.container=
f},ConnectionPointsDialog=function(b,f){function k(){null!=v&&v.destroy()}var d=document.createElement("div");d.style.userSelect="none";var v=null;this.init=function(){function x(G,E){G=new mxCell("",new mxGeometry(G,E,6,6),"shape=mxgraph.basic.x;fillColor=#29b6f2;strokeColor=#29b6f2;points=[];rotatable=0;resizable=0;connectable=0;editable=0;");G.vertex=!0;G.cp=!0;return g.addCell(G)}function B(G){G=g.getSelectionCells();g.deleteCells(G)}function D(){var G=parseInt(F.value)||0;G=0>G?0:100<G?100:G;
-F.value=G;var E=parseInt(M.value)||0;E=0>E?0:100<E?100:E;M.value=E;var P=parseInt(J.value)||0,T=parseInt(H.value)||0;G=g.getConnectionPoint(m,new mxConnectionConstraint(new mxPoint(G/100,E/100),!1,null,P,T));E=g.getSelectionCell();if(null!=E){P=E.geometry.clone();T=g.view.scale;var W=g.view.translate;P.x=(G.x-3*T)/T-W.x;P.y=(G.y-3*T)/T-W.y;g.model.setGeometry(E,P)}}function K(G){var E=0,P=0,T=q.geometry,W=mxUtils.format((G.geometry.x+3-T.x)/T.width);G=mxUtils.format((G.geometry.y+3-T.y)/T.height);
+F.value=G;var E=parseInt(M.value)||0;E=0>E?0:100<E?100:E;M.value=E;var P=parseInt(J.value)||0,T=parseInt(H.value)||0;G=g.getConnectionPoint(n,new mxConnectionConstraint(new mxPoint(G/100,E/100),!1,null,P,T));E=g.getSelectionCell();if(null!=E){P=E.geometry.clone();T=g.view.scale;var W=g.view.translate;P.x=(G.x-3*T)/T-W.x;P.y=(G.y-3*T)/T-W.y;g.model.setGeometry(E,P)}}function K(G){var E=0,P=0,T=q.geometry,W=mxUtils.format((G.geometry.x+3-T.x)/T.width);G=mxUtils.format((G.geometry.y+3-T.y)/T.height);
0>W?(E=W*T.width,W=0):1<W&&(E=(W-1)*T.width,W=1);0>G?(P=G*T.height,G=0):1<G&&(P=(G-1)*T.height,G=1);return{x:W,y:G,dx:parseInt(E),dy:parseInt(P)}}function c(){if(1==g.getSelectionCount()){var G=g.getSelectionCell();G=K(G);F.value=100*G.x;M.value=100*G.y;J.value=G.dx;H.value=G.dy;p.style.visibility=""}else p.style.visibility="hidden"}var e=document.createElement("div");e.style.width="350px";e.style.height="350px";e.style.overflow="hidden";e.style.border="1px solid lightGray";e.style.boxSizing="border-box";
mxEvent.disableContextMenu(e);d.appendChild(e);var g=new Graph(e);g.autoExtend=!1;g.autoScroll=!1;g.setGridEnabled(!1);g.setEnabled(!0);g.setPanning(!0);g.setConnectable(!1);g.setTooltips(!1);g.minFitScale=null;g.maxFitScale=null;g.centerZoom=!0;g.maxFitScale=2;e=f.geometry;var q=new mxCell(f.value,new mxGeometry(0,0,e.width,e.height),f.style+";rotatable=0;resizable=0;connectable=0;editable=0;movable=0;");q.vertex=!0;g.addCell(q);g.dblClick=function(G,E){if(null!=E&&E!=q)g.setSelectionCell(E);else{E=
-mxUtils.convertPoint(g.container,mxEvent.getClientX(G),mxEvent.getClientY(G));mxEvent.consume(G);G=g.view.scale;var P=g.view.translate;g.setSelectionCell(x((E.x-3*G)/G-P.x,(E.y-3*G)/G-P.y))}};v=new mxKeyHandler(g);v.bindKey(46,B);v.bindKey(8,B);g.getRubberband().isForceRubberbandEvent=function(G){return 0==G.evt.button&&(null==G.getCell()||G.getCell()==q)};g.panningHandler.isForcePanningEvent=function(G){return 2==G.evt.button};var n=g.isCellSelectable;g.isCellSelectable=function(G){return G==q?!1:
-n.apply(this,arguments)};g.getLinkForCell=function(){return null};var m=g.view.getState(q);e=g.getAllConnectionConstraints(m);for(var z=0;null!=e&&z<e.length;z++){var C=g.getConnectionPoint(m,e[z]);x(C.x-3,C.y-3)}g.fit(8);g.center();z=mxUtils.button("",function(){g.zoomIn()});z.className="geSprite geSprite-zoomin";z.setAttribute("title",mxResources.get("zoomIn"));z.style.position="relative";z.style.outline="none";z.style.border="none";z.style.margin="2px";z.style.cursor="pointer";z.style.top=mxClient.IS_FF?
+mxUtils.convertPoint(g.container,mxEvent.getClientX(G),mxEvent.getClientY(G));mxEvent.consume(G);G=g.view.scale;var P=g.view.translate;g.setSelectionCell(x((E.x-3*G)/G-P.x,(E.y-3*G)/G-P.y))}};v=new mxKeyHandler(g);v.bindKey(46,B);v.bindKey(8,B);g.getRubberband().isForceRubberbandEvent=function(G){return 0==G.evt.button&&(null==G.getCell()||G.getCell()==q)};g.panningHandler.isForcePanningEvent=function(G){return 2==G.evt.button};var m=g.isCellSelectable;g.isCellSelectable=function(G){return G==q?!1:
+m.apply(this,arguments)};g.getLinkForCell=function(){return null};var n=g.view.getState(q);e=g.getAllConnectionConstraints(n);for(var z=0;null!=e&&z<e.length;z++){var C=g.getConnectionPoint(n,e[z]);x(C.x-3,C.y-3)}g.fit(8);g.center();z=mxUtils.button("",function(){g.zoomIn()});z.className="geSprite geSprite-zoomin";z.setAttribute("title",mxResources.get("zoomIn"));z.style.position="relative";z.style.outline="none";z.style.border="none";z.style.margin="2px";z.style.cursor="pointer";z.style.top=mxClient.IS_FF?
"-6px":"0px";mxUtils.setOpacity(z,60);C=mxUtils.button("",function(){g.zoomOut()});C.className="geSprite geSprite-zoomout";C.setAttribute("title",mxResources.get("zoomOut"));C.style.position="relative";C.style.outline="none";C.style.border="none";C.style.margin="2px";C.style.cursor="pointer";C.style.top=mxClient.IS_FF?"-6px":"0px";mxUtils.setOpacity(C,60);var u=mxUtils.button("",function(){g.fit(8);g.center()});u.className="geSprite geSprite-fit";u.setAttribute("title",mxResources.get("fit"));u.style.position=
"relative";u.style.outline="none";u.style.border="none";u.style.margin="2px";u.style.cursor="pointer";u.style.top=mxClient.IS_FF?"-6px":"0px";mxUtils.setOpacity(u,60);var y=mxUtils.button("",function(){g.zoomActual();g.center()});y.className="geSprite geSprite-actualsize";y.setAttribute("title",mxResources.get("actualSize"));y.style.position="relative";y.style.outline="none";y.style.border="none";y.style.margin="2px";y.style.cursor="pointer";y.style.top=mxClient.IS_FF?"-6px":"0px";mxUtils.setOpacity(y,
60);var I=mxUtils.button("",B);I.className="geSprite geSprite-delete";I.setAttribute("title",mxResources.get("delete"));I.style.position="relative";I.style.outline="none";I.style.border="none";I.style.margin="2px";I.style.float="right";I.style.cursor="pointer";mxUtils.setOpacity(I,10);e=document.createElement("div");e.appendChild(z);e.appendChild(C);e.appendChild(y);e.appendChild(u);e.appendChild(I);d.appendChild(e);var N=document.createElement("input");N.setAttribute("type","number");N.setAttribute("min",
@@ -11548,33 +11548,33 @@ k.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.pro
MathJax.typeset([O]),Editor.onMathJaxDone()}catch(R){MathJax.typesetClear([O]),null!=R.retry?R.retry.then(function(){MathJax.typesetPromise([O]).then(Editor.onMathJaxDone)}):null!=window.console&&console.log("Error in MathJax: "+R.toString())}};window.MathJax=null!=A?A:{options:{skipHtmlTags:{"[+]":["text"]}},loader:{load:["html"==urlParams["math-output"]?"output/chtml":"output/svg","input/tex","input/asciimath"]},startup:{pageReady:function(){for(var O=0;O<Editor.mathJaxQueue.length;O++)Editor.doMathJaxRender(Editor.mathJaxQueue[O])}}};
Editor.MathJaxRender=function(O){"undefined"!==typeof MathJax&&"function"===typeof MathJax.typeset?Editor.doMathJaxRender(O):Editor.mathJaxQueue.push(O)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.onMathJaxDone=function(){};var L=Editor.prototype.init;Editor.prototype.init=function(){L.apply(this,arguments);var O=mxUtils.bind(this,function(R,S){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)});this.graph.model.addListener(mxEvent.CHANGE,
O);this.graph.addListener(mxEvent.REFRESH,O)};A=document.getElementsByTagName("script");if(null!=A&&0<A.length){var Q=document.createElement("script");Q.setAttribute("type","text/javascript");Q.setAttribute("src",l);A[0].parentNode.appendChild(Q)}}};Editor.prototype.csvToArray=function(l){if(0<l.length){var A="",L=[""],Q=0,O=!0,R;l=$jscomp.makeIterator(l);for(R=l.next();!R.done;R=l.next())R=R.value,'"'===R?(O&&R===A&&(L[Q]+=R),O=!O):","===R&&O?R=L[++Q]="":L[Q]+=R,A=R;return L}return[]};Editor.prototype.getProxiedUrl=
-function(l){if(!this.isCorsEnabledForUrl(l)){var A=/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l);A=/\.png$/i.test(l)||/\.pdf$/i.test(l)||A;var L="t="+(new Date).getTime();l=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+L+(A?"&base64=1":"")}return l};Editor.prototype.isCorsEnabledForUrl=function(l){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||l.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=
-new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(l)||"https://raw.githubusercontent.com/"===l.substring(0,34)||"https://fonts.googleapis.com/"===l.substring(0,29)||"https://fonts.gstatic.com/"===l.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var l=new mxUrlConverter;l.updateBaseUrl();var A=l.convert,L=this;l.convert=function(Q){if(null!=Q){var O="http://"==Q.substring(0,7)||"https://"==Q.substring(0,8);O&&!navigator.onLine?
-Q=Editor.svgBrokenImage.src:!O||Q.substring(0,l.baseUrl.length)==l.baseUrl||L.crossOriginImages&&L.isCorsEnabledForUrl(Q)?"chrome-extension://"==Q.substring(0,19)||mxClient.IS_CHROMEAPP||(Q=A.apply(this,arguments)):Q=PROXY_URL+"?url="+encodeURIComponent(Q)}return Q};return l};Editor.createSvgDataUri=function(l){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(l)))};Editor.prototype.convertImageToDataUri=function(l,A){try{var L=!0,Q=window.setTimeout(mxUtils.bind(this,function(){L=
-!1;A(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(l))mxUtils.get(l,mxUtils.bind(this,function(R){window.clearTimeout(Q);L&&A(Editor.createSvgDataUri(R.getText()))}),function(){window.clearTimeout(Q);L&&A(Editor.svgBrokenImage.src)});else{var O=new Image;this.crossOriginImages&&(O.crossOrigin="anonymous");O.onload=function(){window.clearTimeout(Q);if(L)try{var R=document.createElement("canvas"),S=R.getContext("2d");R.height=O.height;R.width=O.width;S.drawImage(O,0,0);A(R.toDataURL())}catch(X){A(Editor.svgBrokenImage.src)}};
-O.onerror=function(){window.clearTimeout(Q);L&&A(Editor.svgBrokenImage.src)};O.src=l}}catch(R){A(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(l,A,L,Q){null==Q&&(Q=this.createImageUrlConverter());var O=0,R=L||{};L=mxUtils.bind(this,function(S,X){S=l.getElementsByTagName(S);for(var aa=0;aa<S.length;aa++)mxUtils.bind(this,function(Y){try{if(null!=Y){var Z=Q.convert(Y.getAttribute(X));if(null!=Z&&"data:"!=Z.substring(0,5)){var ca=R[Z];null==ca?(O++,this.convertImageToDataUri(Z,
-function(fa){null!=fa&&(R[Z]=fa,Y.setAttribute(X,fa));O--;0==O&&A(l)})):Y.setAttribute(X,ca)}else null!=Z&&Y.setAttribute(X,Z)}}catch(fa){}})(S[aa])});L("image","xlink:href");L("img","src");0==O&&A(l)};Editor.base64Encode=function(l){for(var A="",L=0,Q=l.length,O,R,S;L<Q;){O=l.charCodeAt(L++)&255;if(L==Q){A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4);A+="==";break}R=l.charCodeAt(L++);
-if(L==Q){A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(R&240)>>4);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2);A+="=";break}S=l.charCodeAt(L++);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(R&240)>>4);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&
-15)<<2|(S&192)>>6);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(S&63)}return A};Editor.prototype.loadUrl=function(l,A,L,Q,O,R,S,X){try{var aa=!S&&(Q||/(\.png)($|\?)/i.test(l)||/(\.jpe?g)($|\?)/i.test(l)||/(\.gif)($|\?)/i.test(l)||/(\.pdf)($|\?)/i.test(l));O=null!=O?O:!0;var Y=mxUtils.bind(this,function(){mxUtils.get(l,mxUtils.bind(this,function(Z){if(200<=Z.getStatus()&&299>=Z.getStatus()){if(null!=A){var ca=Z.getText();if(aa){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){Z=mxUtilsBinaryToArray(Z.request.responseBody).toArray();ca=Array(Z.length);for(var fa=0;fa<Z.length;fa++)ca[fa]=String.fromCharCode(Z[fa]);ca=ca.join("")}R=null!=R?R:"data:image/png;base64,";ca=R+Editor.base64Encode(ca)}A(ca)}}else null!=L&&(0==Z.getStatus()?L({message:mxResources.get("accessDenied")},Z):404==Z.getStatus()?L({code:Z.getStatus()},Z):L({message:mxResources.get("error")+" "+Z.getStatus()},Z))}),function(Z){null!=L&&L({message:mxResources.get("error")+
-" "+Z.getStatus()})},aa,this.timeout,function(){O&&null!=L&&L({code:App.ERROR_TIMEOUT,retry:Y})},X)});Y()}catch(Z){null!=L&&L(Z)}};Editor.prototype.absoluteCssFonts=function(l){var A=null;if(null!=l){var L=l.split("url(");if(0<L.length){A=[L[0]];l=window.location.pathname;var Q=null!=l?l.lastIndexOf("/"):-1;0<=Q&&(l=l.substring(0,Q+1));Q=document.getElementsByTagName("base");var O=null;null!=Q&&0<Q.length&&(O=Q[0].getAttribute("href"));for(var R=1;R<L.length;R++)if(Q=L[R].indexOf(")"),0<Q){var S=
-Editor.trimCssUrl(L[R].substring(0,Q));this.graph.isRelativeUrl(S)&&(S=null!=O?O+S:window.location.protocol+"//"+window.location.hostname+("/"==S.charAt(0)?"":l)+S);A.push('url("'+S+'"'+L[R].substring(Q))}else A.push(L[R])}else A=[l]}return null!=A?A.join(""):null};Editor.prototype.mapFontUrl=function(l,A,L){/^https?:\/\//.test(A)&&!this.isCorsEnabledForUrl(A)&&(A=PROXY_URL+"?url="+encodeURIComponent(A));L(l,A)};Editor.prototype.embedCssFonts=function(l,A){var L=l.split("url("),Q=0;null==this.cachedFonts&&
-(this.cachedFonts={});var O=mxUtils.bind(this,function(){if(0==Q){for(var aa=[L[0]],Y=1;Y<L.length;Y++){var Z=L[Y].indexOf(")");aa.push('url("');aa.push(this.cachedFonts[Editor.trimCssUrl(L[Y].substring(0,Z))]);aa.push('"'+L[Y].substring(Z))}A(aa.join(""))}});if(0<L.length){for(l=1;l<L.length;l++){var R=L[l].indexOf(")"),S=null,X=L[l].indexOf("format(",R);0<X&&(S=Editor.trimCssUrl(L[l].substring(X+7,L[l].indexOf(")",X))));mxUtils.bind(this,function(aa){if(null==this.cachedFonts[aa]){this.cachedFonts[aa]=
-aa;Q++;var Y="application/x-font-ttf";if("svg"==S||/(\.svg)($|\?)/i.test(aa))Y="image/svg+xml";else if("otf"==S||"embedded-opentype"==S||/(\.otf)($|\?)/i.test(aa))Y="application/x-font-opentype";else if("woff"==S||/(\.woff)($|\?)/i.test(aa))Y="application/font-woff";else if("woff2"==S||/(\.woff2)($|\?)/i.test(aa))Y="application/font-woff2";else if("eot"==S||/(\.eot)($|\?)/i.test(aa))Y="application/vnd.ms-fontobject";else if("sfnt"==S||/(\.sfnt)($|\?)/i.test(aa))Y="application/font-sfnt";this.mapFontUrl(Y,
-aa,mxUtils.bind(this,function(Z,ca){this.loadUrl(ca,mxUtils.bind(this,function(fa){this.cachedFonts[aa]=fa;Q--;O()}),mxUtils.bind(this,function(fa){Q--;O()}),!0,null,"data:"+Z+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(L[l].substring(0,R)),S)}O()}else A(l)};Editor.prototype.loadFonts=function(l){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(A){this.resolvedFontCss=A;null!=l&&l()})):null!=l&&l()};Editor.prototype.createGoogleFontCache=
-function(){var l={},A;for(A in Graph.fontMapping)Graph.isCssFontUrl(A)&&(l[A]=Graph.fontMapping[A]);return l};Editor.prototype.embedExtFonts=function(l){var A=this.graph.getCustomFonts();if(0<A.length){var L=[],Q=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var O=mxUtils.bind(this,function(){0==Q&&this.embedCssFonts(L.join(""),l)}),R=0;R<A.length;R++)mxUtils.bind(this,function(S,X){Graph.isCssFontUrl(X)?null==this.cachedGoogleFonts[X]?(Q++,this.loadUrl(X,
-mxUtils.bind(this,function(aa){this.cachedGoogleFonts[X]=aa;L.push(aa+"\n");Q--;O()}),mxUtils.bind(this,function(aa){Q--;L.push("@import url("+X+");\n");O()}))):L.push(this.cachedGoogleFonts[X]+"\n"):L.push('@font-face {font-family: "'+S+'";src: url("'+X+'")}\n')})(A[R].name,A[R].url);O()}else l()};Editor.prototype.addMathCss=function(l){l=l.getElementsByTagName("defs");if(null!=l&&0<l.length)for(var A=document.getElementsByTagName("style"),L=0;L<A.length;L++){var Q=mxUtils.getTextContent(A[L]);0>
-Q.indexOf("mxPageSelector")&&0<Q.indexOf("MathJax")&&l[0].appendChild(A[L].cloneNode(!0))}};Editor.prototype.addFontCss=function(l,A){A=null!=A?A:this.absoluteCssFonts(this.fontCss);if(null!=A){var L=l.getElementsByTagName("defs"),Q=l.ownerDocument;0==L.length?(L=null!=Q.createElementNS?Q.createElementNS(mxConstants.NS_SVG,"defs"):Q.createElement("defs"),null!=l.firstChild?l.insertBefore(L,l.firstChild):l.appendChild(L)):L=L[0];l=null!=Q.createElementNS?Q.createElementNS(mxConstants.NS_SVG,"style"):
-Q.createElement("style");l.setAttribute("type","text/css");mxUtils.setTextContent(l,A);L.appendChild(l)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(l,A,L){var Q=mxClient.IS_FF?8192:16384;return Math.min(L,Math.min(Q/l,Q/A))};Editor.prototype.exportToCanvas=function(l,A,L,Q,O,R,S,X,aa,Y,Z,ca,fa,la,ia,qa,ka,Da){try{R=null!=R?R:!0;S=null!=S?S:!0;ca=null!=ca?ca:this.graph;fa=null!=fa?fa:0;var Ea=aa?null:
-ca.background;Ea==mxConstants.NONE&&(Ea=null);null==Ea&&(Ea=Q);null==Ea&&0==aa&&(Ea=qa?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(ca.getSvg(null,null,fa,la,null,S,null,null,null,Y,null,qa,ka,Da),mxUtils.bind(this,function(za){try{var Oa=new Image;Oa.onload=mxUtils.bind(this,function(){try{var Ga=function(){mxClient.IS_SF?window.setTimeout(function(){Ba.drawImage(Oa,0,0);l(Ia,za)},0):(Ba.drawImage(Oa,0,0),l(Ia,za))},Ia=document.createElement("canvas"),ra=parseInt(za.getAttribute("width")),
-ua=parseInt(za.getAttribute("height"));X=null!=X?X:1;null!=A&&(X=R?Math.min(1,Math.min(3*A/(4*ua),A/ra)):A/ra);X=this.getMaxCanvasScale(ra,ua,X);ra=Math.ceil(X*ra);ua=Math.ceil(X*ua);Ia.setAttribute("width",ra);Ia.setAttribute("height",ua);var Ba=Ia.getContext("2d");null!=Ea&&(Ba.beginPath(),Ba.rect(0,0,ra,ua),Ba.fillStyle=Ea,Ba.fill());1!=X&&Ba.scale(X,X);if(ia){var Fa=ca.view,wa=Fa.scale;Fa.scale=1;var La=btoa(unescape(encodeURIComponent(Fa.createSvgGrid(Fa.gridColor))));Fa.scale=wa;La="data:image/svg+xml;base64,"+
-La;var ja=ca.gridSize*Fa.gridSteps*X,xa=ca.getGraphBounds(),sa=Fa.translate.x*wa,da=Fa.translate.y*wa,ba=sa+(xa.x-sa)/wa-fa,na=da+(xa.y-da)/wa-fa,ea=new Image;ea.onload=function(){try{for(var ha=-Math.round(ja-mxUtils.mod((sa-ba)*X,ja)),oa=-Math.round(ja-mxUtils.mod((da-na)*X,ja));ha<ra;ha+=ja)for(var ma=oa;ma<ua;ma+=ja)Ba.drawImage(ea,ha/X,ma/X);Ga()}catch(va){null!=O&&O(va)}};ea.onerror=function(ha){null!=O&&O(ha)};ea.src=La}else Ga()}catch(ha){null!=O&&O(ha)}});Oa.onerror=function(Ga){null!=O&&
-O(Ga)};Y&&this.graph.addSvgShadow(za);this.graph.mathEnabled&&this.addMathCss(za);var Aa=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(za,this.resolvedFontCss),Oa.src=Editor.createSvgDataUri(mxUtils.getXml(za))}catch(Ga){null!=O&&O(Ga)}});this.embedExtFonts(mxUtils.bind(this,function(Ga){try{null!=Ga&&this.addFontCss(za,Ga),this.loadFonts(Aa)}catch(Ia){null!=O&&O(Ia)}}))}catch(Ga){null!=O&&O(Ga)}}),L,Z)}catch(za){null!=O&&O(za)}};Editor.crcTable=[];for(var v=0;256>v;v++)for(var x=
-v,B=0;8>B;B++)x=1==(x&1)?3988292384^x>>>1:x>>>1,Editor.crcTable[v]=x;Editor.updateCRC=function(l,A,L,Q){for(var O=0;O<Q;O++)l=Editor.crcTable[(l^A.charCodeAt(L+O))&255]^l>>>8;return l};Editor.crc32=function(l){for(var A=-1,L=0;L<l.length;L++)A=A>>>8^Editor.crcTable[(A^l.charCodeAt(L))&255];return(A^-1)>>>0};Editor.writeGraphModelToPng=function(l,A,L,Q,O){function R(Z,ca){var fa=aa;aa+=ca;return Z.substring(fa,aa)}function S(Z){Z=R(Z,4);return Z.charCodeAt(3)+(Z.charCodeAt(2)<<8)+(Z.charCodeAt(1)<<
-16)+(Z.charCodeAt(0)<<24)}function X(Z){return String.fromCharCode(Z>>24&255,Z>>16&255,Z>>8&255,Z&255)}l=l.substring(l.indexOf(",")+1);l=window.atob?atob(l):Base64.decode(l,!0);var aa=0;if(R(l,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=O&&O();else if(R(l,4),"IHDR"!=R(l,4))null!=O&&O();else{R(l,17);O=l.substring(0,aa);do{var Y=S(l);if("IDAT"==R(l,4)){O=l.substring(0,aa-8);"pHYs"==A&&"dpi"==L?(L=Math.round(Q/.0254),L=X(L)+X(L)+String.fromCharCode(1)):L=L+String.fromCharCode(0)+
-("zTXt"==A?String.fromCharCode(0):"")+Q;Q=4294967295;Q=Editor.updateCRC(Q,A,0,4);Q=Editor.updateCRC(Q,L,0,L.length);O+=X(L.length)+A+L+X(Q^4294967295);O+=l.substring(aa-8,l.length);break}O+=l.substring(aa-8,aa-4+Y);R(l,Y);R(l,4)}while(Y);return"data:image/png;base64,"+(window.btoa?btoa(O):Base64.encode(O,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var D=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(l,A){D.apply(this,
-arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var K=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){K.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(l,A){var L=null;null!=l.editor.graph.getModel().getParent(A)?L=A.getId():null!=l.currentPage&&(L=l.currentPage.getId());return L});if(null!=window.StyleFormatPanel){var c=Format.prototype.init;
-Format.prototype.init=function(){c.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var e=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?e.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var l=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=l&&l.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=
+function(l){if((/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))&&!this.isCorsEnabledForUrl(l)){var A=/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l);A=/\.png$/i.test(l)||/\.pdf$/i.test(l)||A;var L="t="+(new Date).getTime();l=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+L+(A?"&base64=1":"")}return l};Editor.prototype.isCorsEnabledForUrl=function(l){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||l.substring(0,window.location.origin.length)==
+window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(l)||"https://raw.githubusercontent.com/"===l.substring(0,34)||"https://fonts.googleapis.com/"===l.substring(0,29)||"https://fonts.gstatic.com/"===l.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var l=new mxUrlConverter;l.updateBaseUrl();var A=l.convert,L=this;l.convert=function(Q){if(null!=
+Q){var O="http://"==Q.substring(0,7)||"https://"==Q.substring(0,8);O&&!navigator.onLine?Q=Editor.svgBrokenImage.src:!O||Q.substring(0,l.baseUrl.length)==l.baseUrl||L.crossOriginImages&&L.isCorsEnabledForUrl(Q)?"chrome-extension://"==Q.substring(0,19)||mxClient.IS_CHROMEAPP||(Q=A.apply(this,arguments)):Q=PROXY_URL+"?url="+encodeURIComponent(Q)}return Q};return l};Editor.createSvgDataUri=function(l){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(l)))};Editor.prototype.convertImageToDataUri=
+function(l,A){try{var L=!0,Q=window.setTimeout(mxUtils.bind(this,function(){L=!1;A(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(l))mxUtils.get(l,mxUtils.bind(this,function(R){window.clearTimeout(Q);L&&A(Editor.createSvgDataUri(R.getText()))}),function(){window.clearTimeout(Q);L&&A(Editor.svgBrokenImage.src)});else{var O=new Image;this.crossOriginImages&&(O.crossOrigin="anonymous");O.onload=function(){window.clearTimeout(Q);if(L)try{var R=document.createElement("canvas"),S=R.getContext("2d");
+R.height=O.height;R.width=O.width;S.drawImage(O,0,0);A(R.toDataURL())}catch(X){A(Editor.svgBrokenImage.src)}};O.onerror=function(){window.clearTimeout(Q);L&&A(Editor.svgBrokenImage.src)};O.src=l}}catch(R){A(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(l,A,L,Q){null==Q&&(Q=this.createImageUrlConverter());var O=0,R=L||{};L=mxUtils.bind(this,function(S,X){S=l.getElementsByTagName(S);for(var aa=0;aa<S.length;aa++)mxUtils.bind(this,function(Y){try{if(null!=Y){var Z=Q.convert(Y.getAttribute(X));
+if(null!=Z&&"data:"!=Z.substring(0,5)){var ca=R[Z];null==ca?(O++,this.convertImageToDataUri(Z,function(fa){null!=fa&&(R[Z]=fa,Y.setAttribute(X,fa));O--;0==O&&A(l)})):Y.setAttribute(X,ca)}else null!=Z&&Y.setAttribute(X,Z)}}catch(fa){}})(S[aa])});L("image","xlink:href");L("img","src");0==O&&A(l)};Editor.base64Encode=function(l){for(var A="",L=0,Q=l.length,O,R,S;L<Q;){O=l.charCodeAt(L++)&255;if(L==Q){A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&
+3)<<4);A+="==";break}R=l.charCodeAt(L++);if(L==Q){A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(R&240)>>4);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2);A+="=";break}S=l.charCodeAt(L++);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&
+3)<<4|(R&240)>>4);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2|(S&192)>>6);A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(S&63)}return A};Editor.prototype.loadUrl=function(l,A,L,Q,O,R,S,X){try{var aa=!S&&(Q||/(\.png)($|\?)/i.test(l)||/(\.jpe?g)($|\?)/i.test(l)||/(\.gif)($|\?)/i.test(l)||/(\.pdf)($|\?)/i.test(l));O=null!=O?O:!0;var Y=mxUtils.bind(this,function(){mxUtils.get(l,mxUtils.bind(this,function(Z){if(200<=Z.getStatus()&&
+299>=Z.getStatus()){if(null!=A){var ca=Z.getText();if(aa){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){Z=mxUtilsBinaryToArray(Z.request.responseBody).toArray();ca=Array(Z.length);for(var fa=0;fa<Z.length;fa++)ca[fa]=String.fromCharCode(Z[fa]);ca=ca.join("")}R=null!=R?R:"data:image/png;base64,";ca=R+Editor.base64Encode(ca)}A(ca)}}else null!=L&&(0==Z.getStatus()?L({message:mxResources.get("accessDenied")},Z):404==Z.getStatus()?L({code:Z.getStatus()},
+Z):L({message:mxResources.get("error")+" "+Z.getStatus()},Z))}),function(Z){null!=L&&L({message:mxResources.get("error")+" "+Z.getStatus()})},aa,this.timeout,function(){O&&null!=L&&L({code:App.ERROR_TIMEOUT,retry:Y})},X)});Y()}catch(Z){null!=L&&L(Z)}};Editor.prototype.absoluteCssFonts=function(l){var A=null;if(null!=l){var L=l.split("url(");if(0<L.length){A=[L[0]];l=window.location.pathname;var Q=null!=l?l.lastIndexOf("/"):-1;0<=Q&&(l=l.substring(0,Q+1));Q=document.getElementsByTagName("base");var O=
+null;null!=Q&&0<Q.length&&(O=Q[0].getAttribute("href"));for(var R=1;R<L.length;R++)if(Q=L[R].indexOf(")"),0<Q){var S=Editor.trimCssUrl(L[R].substring(0,Q));this.graph.isRelativeUrl(S)&&(S=null!=O?O+S:window.location.protocol+"//"+window.location.hostname+("/"==S.charAt(0)?"":l)+S);A.push('url("'+S+'"'+L[R].substring(Q))}else A.push(L[R])}else A=[l]}return null!=A?A.join(""):null};Editor.prototype.mapFontUrl=function(l,A,L){/^https?:\/\//.test(A)&&!this.isCorsEnabledForUrl(A)&&(A=PROXY_URL+"?url="+
+encodeURIComponent(A));L(l,A)};Editor.prototype.embedCssFonts=function(l,A){var L=l.split("url("),Q=0;null==this.cachedFonts&&(this.cachedFonts={});var O=mxUtils.bind(this,function(){if(0==Q){for(var aa=[L[0]],Y=1;Y<L.length;Y++){var Z=L[Y].indexOf(")");aa.push('url("');aa.push(this.cachedFonts[Editor.trimCssUrl(L[Y].substring(0,Z))]);aa.push('"'+L[Y].substring(Z))}A(aa.join(""))}});if(0<L.length){for(l=1;l<L.length;l++){var R=L[l].indexOf(")"),S=null,X=L[l].indexOf("format(",R);0<X&&(S=Editor.trimCssUrl(L[l].substring(X+
+7,L[l].indexOf(")",X))));mxUtils.bind(this,function(aa){if(null==this.cachedFonts[aa]){this.cachedFonts[aa]=aa;Q++;var Y="application/x-font-ttf";if("svg"==S||/(\.svg)($|\?)/i.test(aa))Y="image/svg+xml";else if("otf"==S||"embedded-opentype"==S||/(\.otf)($|\?)/i.test(aa))Y="application/x-font-opentype";else if("woff"==S||/(\.woff)($|\?)/i.test(aa))Y="application/font-woff";else if("woff2"==S||/(\.woff2)($|\?)/i.test(aa))Y="application/font-woff2";else if("eot"==S||/(\.eot)($|\?)/i.test(aa))Y="application/vnd.ms-fontobject";
+else if("sfnt"==S||/(\.sfnt)($|\?)/i.test(aa))Y="application/font-sfnt";this.mapFontUrl(Y,aa,mxUtils.bind(this,function(Z,ca){this.loadUrl(ca,mxUtils.bind(this,function(fa){this.cachedFonts[aa]=fa;Q--;O()}),mxUtils.bind(this,function(fa){Q--;O()}),!0,null,"data:"+Z+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(L[l].substring(0,R)),S)}O()}else A(l)};Editor.prototype.loadFonts=function(l){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(A){this.resolvedFontCss=
+A;null!=l&&l()})):null!=l&&l()};Editor.prototype.createGoogleFontCache=function(){var l={},A;for(A in Graph.fontMapping)Graph.isCssFontUrl(A)&&(l[A]=Graph.fontMapping[A]);return l};Editor.prototype.embedExtFonts=function(l){var A=this.graph.getCustomFonts();if(0<A.length){var L=[],Q=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var O=mxUtils.bind(this,function(){0==Q&&this.embedCssFonts(L.join(""),l)}),R=0;R<A.length;R++)mxUtils.bind(this,function(S,X){Graph.isCssFontUrl(X)?
+null==this.cachedGoogleFonts[X]?(Q++,this.loadUrl(X,mxUtils.bind(this,function(aa){this.cachedGoogleFonts[X]=aa;L.push(aa+"\n");Q--;O()}),mxUtils.bind(this,function(aa){Q--;L.push("@import url("+X+");\n");O()}))):L.push(this.cachedGoogleFonts[X]+"\n"):L.push('@font-face {font-family: "'+S+'";src: url("'+X+'")}\n')})(A[R].name,A[R].url);O()}else l()};Editor.prototype.addMathCss=function(l){l=l.getElementsByTagName("defs");if(null!=l&&0<l.length)for(var A=document.getElementsByTagName("style"),L=0;L<
+A.length;L++){var Q=mxUtils.getTextContent(A[L]);0>Q.indexOf("mxPageSelector")&&0<Q.indexOf("MathJax")&&l[0].appendChild(A[L].cloneNode(!0))}};Editor.prototype.addFontCss=function(l,A){A=null!=A?A:this.absoluteCssFonts(this.fontCss);if(null!=A){var L=l.getElementsByTagName("defs"),Q=l.ownerDocument;0==L.length?(L=null!=Q.createElementNS?Q.createElementNS(mxConstants.NS_SVG,"defs"):Q.createElement("defs"),null!=l.firstChild?l.insertBefore(L,l.firstChild):l.appendChild(L)):L=L[0];l=null!=Q.createElementNS?
+Q.createElementNS(mxConstants.NS_SVG,"style"):Q.createElement("style");l.setAttribute("type","text/css");mxUtils.setTextContent(l,A);L.appendChild(l)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(l,A,L){var Q=mxClient.IS_FF?8192:16384;return Math.min(L,Math.min(Q/l,Q/A))};Editor.prototype.exportToCanvas=function(l,A,L,Q,O,R,S,X,aa,Y,Z,ca,fa,la,ia,qa,ka,Da){try{R=null!=R?R:!0;S=null!=S?S:!0;ca=null!=
+ca?ca:this.graph;fa=null!=fa?fa:0;var Ea=aa?null:ca.background;Ea==mxConstants.NONE&&(Ea=null);null==Ea&&(Ea=Q);null==Ea&&0==aa&&(Ea=qa?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(ca.getSvg(null,null,fa,la,null,S,null,null,null,Y,null,qa,ka,Da),mxUtils.bind(this,function(za){try{var Oa=new Image;Oa.onload=mxUtils.bind(this,function(){try{var Ga=function(){mxClient.IS_SF?window.setTimeout(function(){Ba.drawImage(Oa,0,0);l(Ia,za)},0):(Ba.drawImage(Oa,0,0),l(Ia,za))},Ia=document.createElement("canvas"),
+ra=parseInt(za.getAttribute("width")),ua=parseInt(za.getAttribute("height"));X=null!=X?X:1;null!=A&&(X=R?Math.min(1,Math.min(3*A/(4*ua),A/ra)):A/ra);X=this.getMaxCanvasScale(ra,ua,X);ra=Math.ceil(X*ra);ua=Math.ceil(X*ua);Ia.setAttribute("width",ra);Ia.setAttribute("height",ua);var Ba=Ia.getContext("2d");null!=Ea&&(Ba.beginPath(),Ba.rect(0,0,ra,ua),Ba.fillStyle=Ea,Ba.fill());1!=X&&Ba.scale(X,X);if(ia){var Fa=ca.view,wa=Fa.scale;Fa.scale=1;var La=btoa(unescape(encodeURIComponent(Fa.createSvgGrid(Fa.gridColor))));
+Fa.scale=wa;La="data:image/svg+xml;base64,"+La;var ja=ca.gridSize*Fa.gridSteps*X,xa=ca.getGraphBounds(),sa=Fa.translate.x*wa,da=Fa.translate.y*wa,ba=sa+(xa.x-sa)/wa-fa,na=da+(xa.y-da)/wa-fa,ea=new Image;ea.onload=function(){try{for(var ha=-Math.round(ja-mxUtils.mod((sa-ba)*X,ja)),oa=-Math.round(ja-mxUtils.mod((da-na)*X,ja));ha<ra;ha+=ja)for(var ma=oa;ma<ua;ma+=ja)Ba.drawImage(ea,ha/X,ma/X);Ga()}catch(va){null!=O&&O(va)}};ea.onerror=function(ha){null!=O&&O(ha)};ea.src=La}else Ga()}catch(ha){null!=
+O&&O(ha)}});Oa.onerror=function(Ga){null!=O&&O(Ga)};Y&&this.graph.addSvgShadow(za);this.graph.mathEnabled&&this.addMathCss(za);var Aa=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(za,this.resolvedFontCss),Oa.src=Editor.createSvgDataUri(mxUtils.getXml(za))}catch(Ga){null!=O&&O(Ga)}});this.embedExtFonts(mxUtils.bind(this,function(Ga){try{null!=Ga&&this.addFontCss(za,Ga),this.loadFonts(Aa)}catch(Ia){null!=O&&O(Ia)}}))}catch(Ga){null!=O&&O(Ga)}}),L,Z)}catch(za){null!=O&&
+O(za)}};Editor.crcTable=[];for(var v=0;256>v;v++)for(var x=v,B=0;8>B;B++)x=1==(x&1)?3988292384^x>>>1:x>>>1,Editor.crcTable[v]=x;Editor.updateCRC=function(l,A,L,Q){for(var O=0;O<Q;O++)l=Editor.crcTable[(l^A.charCodeAt(L+O))&255]^l>>>8;return l};Editor.crc32=function(l){for(var A=-1,L=0;L<l.length;L++)A=A>>>8^Editor.crcTable[(A^l.charCodeAt(L))&255];return(A^-1)>>>0};Editor.writeGraphModelToPng=function(l,A,L,Q,O){function R(Z,ca){var fa=aa;aa+=ca;return Z.substring(fa,aa)}function S(Z){Z=R(Z,4);return Z.charCodeAt(3)+
+(Z.charCodeAt(2)<<8)+(Z.charCodeAt(1)<<16)+(Z.charCodeAt(0)<<24)}function X(Z){return String.fromCharCode(Z>>24&255,Z>>16&255,Z>>8&255,Z&255)}l=l.substring(l.indexOf(",")+1);l=window.atob?atob(l):Base64.decode(l,!0);var aa=0;if(R(l,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=O&&O();else if(R(l,4),"IHDR"!=R(l,4))null!=O&&O();else{R(l,17);O=l.substring(0,aa);do{var Y=S(l);if("IDAT"==R(l,4)){O=l.substring(0,aa-8);"pHYs"==A&&"dpi"==L?(L=Math.round(Q/.0254),L=X(L)+X(L)+String.fromCharCode(1)):
+L=L+String.fromCharCode(0)+("zTXt"==A?String.fromCharCode(0):"")+Q;Q=4294967295;Q=Editor.updateCRC(Q,A,0,4);Q=Editor.updateCRC(Q,L,0,L.length);O+=X(L.length)+A+L+X(Q^4294967295);O+=l.substring(aa-8,l.length);break}O+=l.substring(aa-8,aa-4+Y);R(l,Y);R(l,4)}while(Y);return"data:image/png;base64,"+(window.btoa?btoa(O):Base64.encode(O,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var D=ColorDialog.addRecentColor;ColorDialog.addRecentColor=
+function(l,A){D.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var K=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){K.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(l,A){var L=null;null!=l.editor.graph.getModel().getParent(A)?L=A.getId():null!=l.currentPage&&(L=l.currentPage.getId());return L});if(null!=window.StyleFormatPanel){var c=
+Format.prototype.init;Format.prototype.init=function(){c.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var e=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?e.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var l=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=l&&l.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=
function(l){return!1};var g=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(l){l=g.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var A=this.editorUi,L=A.editor.graph,Q=this.createOption(mxResources.get("shadow"),function(){return L.shadowVisible},function(O){var R=new ChangePageSetup(A);R.ignoreColor=!0;R.ignoreImage=!0;R.shadowVisible=O;L.model.execute(R)},{install:function(O){this.listener=function(){O(L.shadowVisible)};
A.addListener("shadowVisibleChanged",this.listener)},destroy:function(){A.removeListener(this.listener)}});Editor.enableShadowOption||(Q.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(Q,60));l.appendChild(Q)}return l};var q=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(l){l=q.apply(this,arguments);var A=this.editorUi,L=A.editor.graph;if(L.isEnabled()){var Q=A.getCurrentFile();if(null!=Q&&Q.isAutosaveOptional()){var O=
this.createOption(mxResources.get("autosave"),function(){return A.editor.autosave},function(S){A.editor.setAutosave(S);A.editor.autosave&&Q.isModified()&&Q.fileChanged()},{install:function(S){this.listener=function(){S(A.editor.autosave)};A.editor.addListener("autosaveChanged",this.listener)},destroy:function(){A.editor.removeListener(this.listener)}});l.appendChild(O)}}if(this.isMathOptionVisible()&&L.isEnabled()&&"undefined"!==typeof MathJax){O=this.createOption(mxResources.get("mathematicalTypesetting"),
@@ -11602,8 +11602,8 @@ stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"
font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},
{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=
function(l,A,L){if(null!=A){var Q=function(R){if(null!=R)if(L)for(var S=0;S<R.length;S++)A[R[S].name]=R[S];else for(var X in A){var aa=!1;for(S=0;S<R.length;S++)if(R[S].name==X&&R[S].type==A[X].type){aa=!0;break}aa||delete A[X]}},O=this.editorUi.editor.graph.view.getState(l);null!=O&&null!=O.shape&&(O.shape.commonCustomPropAdded||(O.shape.commonCustomPropAdded=!0,O.shape.customProperties=O.shape.customProperties||[],O.cell.vertex?Array.prototype.push.apply(O.shape.customProperties,Editor.commonVertexProperties):
-Array.prototype.push.apply(O.shape.customProperties,Editor.commonEdgeProperties)),Q(O.shape.customProperties));l=l.getAttribute("customProperties");if(null!=l)try{Q(JSON.parse(l))}catch(R){}}};var n=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var l=this.editorUi.getSelectionState();"image"!=l.style.shape&&!l.containsLabel&&0<l.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));n.apply(this,arguments);if(Editor.enableCustomProperties){for(var A=
-{},L=l.vertices,Q=l.edges,O=0;O<L.length;O++)this.findCommonProperties(L[O],A,0==O);for(O=0;O<Q.length;O++)this.findCommonProperties(Q[O],A,0==L.length&&0==O);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(A).length&&this.container.appendChild(this.addProperties(this.createPanel(),A,l))}};var m=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(l){this.addActions(l,["copyStyle","pasteStyle"]);return m.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=
+Array.prototype.push.apply(O.shape.customProperties,Editor.commonEdgeProperties)),Q(O.shape.customProperties));l=l.getAttribute("customProperties");if(null!=l)try{Q(JSON.parse(l))}catch(R){}}};var m=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var l=this.editorUi.getSelectionState();"image"!=l.style.shape&&!l.containsLabel&&0<l.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));m.apply(this,arguments);if(Editor.enableCustomProperties){for(var A=
+{},L=l.vertices,Q=l.edges,O=0;O<L.length;O++)this.findCommonProperties(L[O],A,0==O);for(O=0;O<Q.length;O++)this.findCommonProperties(Q[O],A,0==L.length&&0==O);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(A).length&&this.container.appendChild(this.addProperties(this.createPanel(),A,l))}};var n=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(l){this.addActions(l,["copyStyle","pasteStyle"]);return n.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=
!0;StyleFormatPanel.prototype.addProperties=function(l,A,L){function Q(Ba,Fa,wa,La){ca.getModel().beginUpdate();try{var ja=[],xa=[];if(null!=wa.index){for(var sa=[],da=wa.parentRow.nextSibling;da&&da.getAttribute("data-pName")==Ba;)sa.push(da.getAttribute("data-pValue")),da=da.nextSibling;wa.index<sa.length?null!=La?sa.splice(La,1):sa[wa.index]=Fa:sa.push(Fa);null!=wa.size&&sa.length>wa.size&&(sa=sa.slice(0,wa.size));Fa=sa.join(",");null!=wa.countProperty&&(ca.setCellStyles(wa.countProperty,sa.length,
ca.getSelectionCells()),ja.push(wa.countProperty),xa.push(sa.length))}ca.setCellStyles(Ba,Fa,ca.getSelectionCells());ja.push(Ba);xa.push(Fa);if(null!=wa.dependentProps)for(Ba=0;Ba<wa.dependentProps.length;Ba++){var ba=wa.dependentPropsDefVal[Ba],na=wa.dependentPropsVals[Ba];if(na.length>Fa)na=na.slice(0,Fa);else for(var ea=na.length;ea<Fa;ea++)na.push(ba);na=na.join(",");ca.setCellStyles(wa.dependentProps[Ba],na,ca.getSelectionCells());ja.push(wa.dependentProps[Ba]);xa.push(na)}if("function"==typeof wa.onChange)wa.onChange(ca,
Fa);Z.editorUi.fireEvent(new mxEventObject("styleChanged","keys",ja,"values",xa,"cells",ca.getSelectionCells()))}finally{ca.getModel().endUpdate()}}function O(Ba,Fa,wa){var La=mxUtils.getOffset(l,!0),ja=mxUtils.getOffset(Ba,!0);Fa.style.position="absolute";Fa.style.left=ja.x-La.x+"px";Fa.style.top=ja.y-La.y+"px";Fa.style.width=Ba.offsetWidth+"px";Fa.style.height=Ba.offsetHeight-(wa?4:0)+"px";Fa.style.zIndex=5}function R(Ba,Fa,wa){var La=document.createElement("div");La.style.width="32px";La.style.height=
@@ -11726,261 +11726,261 @@ A.appendChild(S);R.appendChild(A);this.container=R};var W=ChangePageSetup.protot
this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else W.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=
!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var U=document.createElement("canvas"),V=new Image;V.onload=function(){try{U.getContext("2d").drawImage(V,0,0);var l=U.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=l&&6<l.length}catch(A){}};V.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(l){}Editor.prototype.useCanvasForExport=
!1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(f,k,d){d.ui=f.ui;return k};b.afterDecode=function(f,k,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(f,k,d){d.ui=f.ui;return k};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(f,k,d){d.ui=f.ui;return k};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&
"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,
-mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(c,e,g,q,n,m,z){m=null!=m?m:0<=c.indexOf("NetworkError")||0<=c.indexOf("SecurityError")||0<=c.indexOf("NS_ERROR_FAILURE")||0<=c.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
-"1"!=urlParams.dev)try{if(c!=EditorUi.lastErrorMessage&&(null==c||null==e||-1==c.indexOf("Script error")&&-1==c.indexOf("extension"))&&null!=c&&0>c.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=c;var C=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";n=null!=n?n:Error(c);(new Image).src=C+"/log?severity="+m+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(c)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(g)+(null!=q?":colno:"+
-encodeURIComponent(q):"")+(null!=n&&null!=n.stack?"&stack="+encodeURIComponent(n.stack):"")}}catch(u){}try{z||null==window.console||console.error(m,c,e,g,q,n)}catch(u){}};EditorUi.logEvent=function(c){if("1"==urlParams.dev)EditorUi.debug("logEvent",c);else if(EditorUi.enableLogging)try{var e=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=e+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=c?"&data="+encodeURIComponent(JSON.stringify(c)):"")}catch(g){}};EditorUi.sendReport=
+mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(c,e,g,q,m,n,z){n=null!=n?n:0<=c.indexOf("NetworkError")||0<=c.indexOf("SecurityError")||0<=c.indexOf("NS_ERROR_FAILURE")||0<=c.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(c!=EditorUi.lastErrorMessage&&(null==c||null==e||-1==c.indexOf("Script error")&&-1==c.indexOf("extension"))&&null!=c&&0>c.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=c;var C=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";m=null!=m?m:Error(c);(new Image).src=C+"/log?severity="+n+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(c)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(g)+(null!=q?":colno:"+
+encodeURIComponent(q):"")+(null!=m&&null!=m.stack?"&stack="+encodeURIComponent(m.stack):"")}}catch(u){}try{z||null==window.console||console.error(n,c,e,g,q,m)}catch(u){}};EditorUi.logEvent=function(c){if("1"==urlParams.dev)EditorUi.debug("logEvent",c);else if(EditorUi.enableLogging)try{var e=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=e+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=c?"&data="+encodeURIComponent(JSON.stringify(c)):"")}catch(g){}};EditorUi.sendReport=
function(c,e){if("1"==urlParams.dev)EditorUi.debug("sendReport",c);else if(EditorUi.enableLogging)try{e=null!=e?e:5E4,c.length>e&&(c=c.substring(0,e)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(c))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var c=[(new Date).toISOString()],e=0;e<arguments.length;e++)c.push(arguments[e]);console.log.apply(console,
c)}}catch(g){}};EditorUi.removeChildNodes=function(c){for(;null!=c.firstChild;)c.removeChild(c.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
-!0;EditorUi.prototype.embedExportBorder=8;EditorUi.prototype.embedExportBackground=null;EditorUi.prototype.shareCursorPosition=!0;EditorUi.prototype.showRemoteCursors=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var c=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!c.getContext||!c.getContext("2d"))}catch(n){}try{var e=document.createElement("canvas"),g=new Image;g.onload=function(){try{e.getContext("2d").drawImage(g,0,0);var n=
-e.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=n&&6<n.length}catch(m){}};g.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}try{e=document.createElement("canvas");e.width=e.height=1;var q=e.toDataURL("image/jpeg");
-EditorUi.prototype.jpgSupported=null!==q.match("image/jpeg")}catch(n){}})();EditorUi.prototype.openLink=function(c,e,g){return this.editor.graph.openLink(c,e,g)};EditorUi.prototype.showSplash=function(c){};EditorUi.prototype.getLocalData=function(c,e){e(localStorage.getItem(c))};EditorUi.prototype.setLocalData=function(c,e,g){localStorage.setItem(c,e);null!=g&&g()};EditorUi.prototype.removeLocalData=function(c,e){localStorage.removeItem(c);e()};EditorUi.prototype.setShareCursorPosition=function(c){this.shareCursorPosition=
+!0;EditorUi.prototype.embedExportBorder=8;EditorUi.prototype.embedExportBackground=null;EditorUi.prototype.shareCursorPosition=!0;EditorUi.prototype.showRemoteCursors=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var c=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!c.getContext||!c.getContext("2d"))}catch(m){}try{var e=document.createElement("canvas"),g=new Image;g.onload=function(){try{e.getContext("2d").drawImage(g,0,0);var m=
+e.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=m&&6<m.length}catch(n){}};g.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(m){}try{e=document.createElement("canvas");e.width=e.height=1;var q=e.toDataURL("image/jpeg");
+EditorUi.prototype.jpgSupported=null!==q.match("image/jpeg")}catch(m){}})();EditorUi.prototype.openLink=function(c,e,g){return this.editor.graph.openLink(c,e,g)};EditorUi.prototype.showSplash=function(c){};EditorUi.prototype.getLocalData=function(c,e){e(localStorage.getItem(c))};EditorUi.prototype.setLocalData=function(c,e,g){localStorage.setItem(c,e);null!=g&&g()};EditorUi.prototype.removeLocalData=function(c,e){localStorage.removeItem(c);e()};EditorUi.prototype.setShareCursorPosition=function(c){this.shareCursorPosition=
c;this.fireEvent(new mxEventObject("shareCursorPositionChanged"))};EditorUi.prototype.isShareCursorPosition=function(){return this.shareCursorPosition};EditorUi.prototype.setShowRemoteCursors=function(c){this.showRemoteCursors=c;this.fireEvent(new mxEventObject("showRemoteCursorsChanged"))};EditorUi.prototype.isShowRemoteCursors=function(){return this.showRemoteCursors};EditorUi.prototype.setMathEnabled=function(c){this.editor.graph.mathEnabled=c;this.editor.updateGraphComponents();this.editor.graph.refresh();
this.editor.graph.defaultMathEnabled=c;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(c){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(c){return this.isOfflineApp()||!navigator.onLine||!c&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.isExternalDataComms=function(){return"1"!=urlParams.offline&&!this.isOffline()&&!this.isOfflineApp()};
-EditorUi.prototype.createSpinner=function(c,e,g){var q=null==c||null==e;g=null!=g?g:24;var n=new Spinner({lines:12,length:g,width:Math.round(g/3),radius:Math.round(g/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),m=n.spin;n.spin=function(C,u){var y=!1;this.active||(m.call(this,C),this.active=!0,null!=u&&(q&&(e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,c=document.body.clientWidth/2-2),y=document.createElement("div"),
+EditorUi.prototype.createSpinner=function(c,e,g){var q=null==c||null==e;g=null!=g?g:24;var m=new Spinner({lines:12,length:g,width:Math.round(g/3),radius:Math.round(g/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),n=m.spin;m.spin=function(C,u){var y=!1;this.active||(n.call(this,C),this.active=!0,null!=u&&(q&&(e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,c=document.body.clientWidth/2-2),y=document.createElement("div"),
y.style.position="absolute",y.style.whiteSpace="nowrap",y.style.background="#4B4243",y.style.color="white",y.style.fontFamily=Editor.defaultHtmlFont,y.style.fontSize="9pt",y.style.padding="6px",y.style.paddingLeft="10px",y.style.paddingRight="10px",y.style.zIndex=2E9,y.style.left=Math.max(0,c)+"px",y.style.top=Math.max(0,e+70)+"px",mxUtils.setPrefixedStyle(y.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(y.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(y.style,
-"boxShadow","2px 2px 3px 0px #ddd"),"..."!=u.substring(u.length-3,u.length)&&"!"!=u.charAt(u.length-1)&&(u+="..."),y.innerHTML=u,C.appendChild(y),n.status=y),this.pause=mxUtils.bind(this,function(){var I=function(){};this.active&&(I=mxUtils.bind(this,function(){this.spin(C,u)}));this.stop();return I}),y=!0);return y};var z=n.stop;n.stop=function(){z.call(this);this.active=!1;null!=n.status&&null!=n.status.parentNode&&n.status.parentNode.removeChild(n.status);n.status=null};n.pause=function(){return function(){}};
-return n};EditorUi.prototype.isCompatibleString=function(c){try{var e=mxUtils.parseXml(c),g=this.editor.extractGraphModel(e.documentElement,!0);return null!=g&&0==g.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=function(c){return 8<c.length&&(208==c.charCodeAt(0)&&207==c.charCodeAt(1)&&17==c.charCodeAt(2)&&224==c.charCodeAt(3)&&161==c.charCodeAt(4)&&177==c.charCodeAt(5)&&26==c.charCodeAt(6)&&225==c.charCodeAt(7)||80==c.charCodeAt(0)&&75==c.charCodeAt(1)&&
+"boxShadow","2px 2px 3px 0px #ddd"),"..."!=u.substring(u.length-3,u.length)&&"!"!=u.charAt(u.length-1)&&(u+="..."),y.innerHTML=u,C.appendChild(y),m.status=y),this.pause=mxUtils.bind(this,function(){var I=function(){};this.active&&(I=mxUtils.bind(this,function(){this.spin(C,u)}));this.stop();return I}),y=!0);return y};var z=m.stop;m.stop=function(){z.call(this);this.active=!1;null!=m.status&&null!=m.status.parentNode&&m.status.parentNode.removeChild(m.status);m.status=null};m.pause=function(){return function(){}};
+return m};EditorUi.prototype.isCompatibleString=function(c){try{var e=mxUtils.parseXml(c),g=this.editor.extractGraphModel(e.documentElement,!0);return null!=g&&0==g.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=function(c){return 8<c.length&&(208==c.charCodeAt(0)&&207==c.charCodeAt(1)&&17==c.charCodeAt(2)&&224==c.charCodeAt(3)&&161==c.charCodeAt(4)&&177==c.charCodeAt(5)&&26==c.charCodeAt(6)&&225==c.charCodeAt(7)||80==c.charCodeAt(0)&&75==c.charCodeAt(1)&&
3==c.charCodeAt(2)&&4==c.charCodeAt(3)||80==c.charCodeAt(0)&&75==c.charCodeAt(1)&&3==c.charCodeAt(2)&&6==c.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(c){return 8<c.length&&(208==c.charCodeAt(0)&&207==c.charCodeAt(1)&&17==c.charCodeAt(2)&&224==c.charCodeAt(3)&&161==c.charCodeAt(4)&&177==c.charCodeAt(5)&&26==c.charCodeAt(6)&&225==c.charCodeAt(7)||60==c.charCodeAt(0)&&63==c.charCodeAt(1)&&120==c.charCodeAt(2)&&109==c.charCodeAt(3)&&108==c.charCodeAt(3))};var b=EditorUi.prototype.createKeyHandler;
-EditorUi.prototype.createKeyHandler=function(c){var e=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var g=e.getFunction,q=this.editor.graph,n=this;e.getFunction=function(m){if(q.isSelectionEmpty()&&null!=n.pages&&0<n.pages.length){var z=n.getSelectedPageIndex();if(mxEvent.isShiftDown(m)){if(37==m.keyCode)return function(){0<z&&n.movePage(z,z-1)};if(38==m.keyCode)return function(){0<z&&n.movePage(z,0)};if(39==m.keyCode)return function(){z<n.pages.length-1&&n.movePage(z,
-z+1)};if(40==m.keyCode)return function(){z<n.pages.length-1&&n.movePage(z,n.pages.length-1)}}else if(mxEvent.isControlDown(m)||mxClient.IS_MAC&&mxEvent.isMetaDown(m)){if(37==m.keyCode)return function(){0<z&&n.selectNextPage(!1)};if(38==m.keyCode)return function(){0<z&&n.selectPage(n.pages[0])};if(39==m.keyCode)return function(){z<n.pages.length-1&&n.selectNextPage(!0)};if(40==m.keyCode)return function(){z<n.pages.length-1&&n.selectPage(n.pages[n.pages.length-1])}}}return!(65<=m.keyCode&&90>=m.keyCode)||
-q.isSelectionEmpty()||mxEvent.isAltDown(m)||mxEvent.isShiftDown(m)||mxEvent.isControlDown(m)||mxClient.IS_MAC&&mxEvent.isMetaDown(m)?g.apply(this,arguments):null}}return e};var f=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var e=f.apply(this,arguments);if(null==e)try{var g=c.indexOf("&lt;mxfile ");if(0<=g){var q=c.lastIndexOf("&lt;/mxfile&gt;");q>g&&(e=c.substring(g,q+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,
-""))}else{var n=mxUtils.parseXml(c),m=this.editor.extractGraphModel(n.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility);e=null!=m?mxUtils.getXml(m):""}}catch(z){}return e};EditorUi.prototype.validateFileData=function(c){if(null!=c&&0<c.length){var e=c.indexOf('<meta charset="utf-8">');0<=e&&(c=c.slice(0,e)+'<meta charset="utf-8"/>'+c.slice(e+23-1,c.length));c=Graph.zapGremlins(c)}return c};EditorUi.prototype.replaceFileData=function(c){c=this.validateFileData(c);
-c=null!=c&&0<c.length?mxUtils.parseXml(c).documentElement:null;var e=null!=c?this.editor.extractGraphModel(c,!0):null;null!=e&&(c=e);if(null!=c){e=this.editor.graph;e.model.beginUpdate();try{var g=null!=this.pages?this.pages.slice():null,q=c.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<q.length||1==q.length&&q[0].hasAttribute("name")){this.fileNode=c;this.pages=null!=this.pages?this.pages:[];for(var n=q.length-1;0<=n;n--){var m=this.updatePageRoot(new DiagramPage(q[n]));null==m.getName()&&
-m.setName(mxResources.get("pageWithNumber",[n+1]));e.model.execute(new ChangePage(this,m,0==n?m:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=c.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(c.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),e.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(c),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);
-if(null!=g)for(n=0;n<g.length;n++)e.model.execute(new ChangePage(this,g[n],null))}finally{e.model.endUpdate()}}};EditorUi.prototype.createFileData=function(c,e,g,q,n,m,z,C,u,y,I){e=null!=e?e:this.editor.graph;n=null!=n?n:!1;u=null!=u?u:!0;var N=null;if(null==g||g.getMode()==App.MODE_DEVICE||g.getMode()==App.MODE_BROWSER)var t="_blank";else N=t=q;if(null==c)return"";var p=c;if("mxfile"!=p.nodeName.toLowerCase()){if(I){var F=c.ownerDocument.createElement("diagram");F.setAttribute("id",Editor.guid());
+EditorUi.prototype.createKeyHandler=function(c){var e=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var g=e.getFunction,q=this.editor.graph,m=this;e.getFunction=function(n){if(q.isSelectionEmpty()&&null!=m.pages&&0<m.pages.length){var z=m.getSelectedPageIndex();if(mxEvent.isShiftDown(n)){if(37==n.keyCode)return function(){0<z&&m.movePage(z,z-1)};if(38==n.keyCode)return function(){0<z&&m.movePage(z,0)};if(39==n.keyCode)return function(){z<m.pages.length-1&&m.movePage(z,
+z+1)};if(40==n.keyCode)return function(){z<m.pages.length-1&&m.movePage(z,m.pages.length-1)}}else if(mxEvent.isControlDown(n)||mxClient.IS_MAC&&mxEvent.isMetaDown(n)){if(37==n.keyCode)return function(){0<z&&m.selectNextPage(!1)};if(38==n.keyCode)return function(){0<z&&m.selectPage(m.pages[0])};if(39==n.keyCode)return function(){z<m.pages.length-1&&m.selectNextPage(!0)};if(40==n.keyCode)return function(){z<m.pages.length-1&&m.selectPage(m.pages[m.pages.length-1])}}}return!(65<=n.keyCode&&90>=n.keyCode)||
+q.isSelectionEmpty()||mxEvent.isAltDown(n)||mxEvent.isShiftDown(n)||mxEvent.isControlDown(n)||mxClient.IS_MAC&&mxEvent.isMetaDown(n)?g.apply(this,arguments):null}}return e};var f=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var e=f.apply(this,arguments);if(null==e)try{var g=c.indexOf("&lt;mxfile ");if(0<=g){var q=c.lastIndexOf("&lt;/mxfile&gt;");q>g&&(e=c.substring(g,q+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,
+""))}else{var m=mxUtils.parseXml(c),n=this.editor.extractGraphModel(m.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility);e=null!=n?mxUtils.getXml(n):""}}catch(z){}return e};EditorUi.prototype.validateFileData=function(c){if(null!=c&&0<c.length){var e=c.indexOf('<meta charset="utf-8">');0<=e&&(c=c.slice(0,e)+'<meta charset="utf-8"/>'+c.slice(e+23-1,c.length));c=Graph.zapGremlins(c)}return c};EditorUi.prototype.replaceFileData=function(c){c=this.validateFileData(c);
+c=null!=c&&0<c.length?mxUtils.parseXml(c).documentElement:null;var e=null!=c?this.editor.extractGraphModel(c,!0):null;null!=e&&(c=e);if(null!=c){e=this.editor.graph;e.model.beginUpdate();try{var g=null!=this.pages?this.pages.slice():null,q=c.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<q.length||1==q.length&&q[0].hasAttribute("name")){this.fileNode=c;this.pages=null!=this.pages?this.pages:[];for(var m=q.length-1;0<=m;m--){var n=this.updatePageRoot(new DiagramPage(q[m]));null==n.getName()&&
+n.setName(mxResources.get("pageWithNumber",[m+1]));e.model.execute(new ChangePage(this,n,0==m?n:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=c.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(c.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),e.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(c),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);
+if(null!=g)for(m=0;m<g.length;m++)e.model.execute(new ChangePage(this,g[m],null))}finally{e.model.endUpdate()}}};EditorUi.prototype.createFileData=function(c,e,g,q,m,n,z,C,u,y,I){e=null!=e?e:this.editor.graph;m=null!=m?m:!1;u=null!=u?u:!0;var N=null;if(null==g||g.getMode()==App.MODE_DEVICE||g.getMode()==App.MODE_BROWSER)var t="_blank";else N=t=q;if(null==c)return"";var p=c;if("mxfile"!=p.nodeName.toLowerCase()){if(I){var F=c.ownerDocument.createElement("diagram");F.setAttribute("id",Editor.guid());
F.appendChild(c)}else{F=Graph.zapGremlins(mxUtils.getXml(c));p=Graph.compress(F);if(Graph.decompress(p)!=F)return F;F=c.ownerDocument.createElement("diagram");F.setAttribute("id",Editor.guid());mxUtils.setTextContent(F,p)}p=c.ownerDocument.createElement("mxfile");p.appendChild(F)}y?(p=p.cloneNode(!0),p.removeAttribute("modified"),p.removeAttribute("host"),p.removeAttribute("agent"),p.removeAttribute("etag"),p.removeAttribute("userAgent"),p.removeAttribute("version"),p.removeAttribute("editor"),p.removeAttribute("type")):
(p.removeAttribute("userAgent"),p.removeAttribute("version"),p.removeAttribute("editor"),p.removeAttribute("pages"),p.removeAttribute("type"),mxClient.IS_CHROMEAPP?p.setAttribute("host","Chrome"):EditorUi.isElectronApp?p.setAttribute("host","Electron"):p.setAttribute("host",window.location.hostname),p.setAttribute("modified",(new Date).toISOString()),p.setAttribute("agent",navigator.appVersion),p.setAttribute("version",EditorUi.VERSION),p.setAttribute("etag",Editor.guid()),c=null!=g?g.getMode():this.mode,
-null!=c&&p.setAttribute("type",c),1<p.getElementsByTagName("diagram").length&&null!=this.pages&&p.setAttribute("pages",this.pages.length));I=I?mxUtils.getPrettyXml(p):mxUtils.getXml(p);if(!m&&!n&&(z||null!=g&&/(\.html)$/i.test(g.getTitle())))I=this.getHtml2(mxUtils.getXml(p),e,null!=g?g.getTitle():null,t,N);else if(m||!n&&null!=g&&/(\.svg)$/i.test(g.getTitle()))null==g||g.getMode()!=App.MODE_DEVICE&&g.getMode()!=App.MODE_BROWSER||(q=null),I=this.getEmbeddedSvg(I,e,q,null,C,u,N);return I};EditorUi.prototype.getXmlFileData=
-function(c,e,g,q){c=null!=c?c:!0;e=null!=e?e:!1;g=null!=g?g:!Editor.compressXml;var n=this.editor.getGraphXml(c,q);if(c&&null!=this.fileNode&&null!=this.currentPage)if(c=function(u){var y=u.getElementsByTagName("mxGraphModel");y=0<y.length?y[0]:null;null==y&&g?(y=mxUtils.trim(mxUtils.getTextContent(u)),u=u.cloneNode(!1),0<y.length&&(y=Graph.decompress(y),null!=y&&0<y.length&&u.appendChild(mxUtils.parseXml(y).documentElement))):null==y||g?u=u.cloneNode(!0):(u=u.cloneNode(!1),mxUtils.setTextContent(u,
-Graph.compressNode(y)));n.appendChild(u)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(n)),n=this.fileNode.cloneNode(!1),e)c(this.currentPage.node);else for(e=0;e<this.pages.length;e++){var m=this.pages[e],z=m.node;if(m!=this.currentPage)if(m.needsUpdate){var C=new mxCodec(mxUtils.createXmlDocument());C=C.encode(new mxGraphModel(m.root));this.editor.graph.saveViewState(m.viewState,C,null,q);EditorUi.removeChildNodes(z);mxUtils.setTextContent(z,
-Graph.compressNode(C));delete m.needsUpdate}else q&&(this.updatePageRoot(m),null!=m.viewState.backgroundImage&&(null!=m.viewState.backgroundImage.originalSrc?m.viewState.backgroundImage=this.createImageForPageLink(m.viewState.backgroundImage.originalSrc,m):Graph.isPageLink(m.viewState.backgroundImage.src)&&(m.viewState.backgroundImage=this.createImageForPageLink(m.viewState.backgroundImage.src,m))),null!=m.viewState.backgroundImage&&null!=m.viewState.backgroundImage.originalSrc&&(C=new mxCodec(mxUtils.createXmlDocument()),
-C=C.encode(new mxGraphModel(m.root)),this.editor.graph.saveViewState(m.viewState,C,null,q),z=z.cloneNode(!1),mxUtils.setTextContent(z,Graph.compressNode(C))));c(z)}return n};EditorUi.prototype.anonymizeString=function(c,e){for(var g=[],q=0;q<c.length;q++){var n=c.charAt(q);0<=EditorUi.ignoredAnonymizedChars.indexOf(n)?g.push(n):isNaN(parseInt(n))?n.toLowerCase()!=n?g.push(String.fromCharCode(65+Math.round(25*Math.random()))):n.toUpperCase()!=n?g.push(String.fromCharCode(97+Math.round(25*Math.random()))):
-/\s/.test(n)?g.push(" "):g.push("?"):g.push(e?"0":Math.round(9*Math.random()))}return g.join("")};EditorUi.prototype.anonymizePatch=function(c){if(null!=c[EditorUi.DIFF_INSERT])for(var e=0;e<c[EditorUi.DIFF_INSERT].length;e++)try{var g=mxUtils.parseXml(c[EditorUi.DIFF_INSERT][e].data).documentElement.cloneNode(!1);null!=g.getAttribute("name")&&g.setAttribute("name",this.anonymizeString(g.getAttribute("name")));c[EditorUi.DIFF_INSERT][e].data=mxUtils.getXml(g)}catch(m){c[EditorUi.DIFF_INSERT][e].data=
-m.message}if(null!=c[EditorUi.DIFF_UPDATE]){for(var q in c[EditorUi.DIFF_UPDATE]){var n=c[EditorUi.DIFF_UPDATE][q];null!=n.name&&(n.name=this.anonymizeString(n.name));null!=n.cells&&(e=mxUtils.bind(this,function(m){var z=n.cells[m];if(null!=z){for(var C in z)null!=z[C].value&&(z[C].value="["+z[C].value.length+"]"),null!=z[C].xmlValue&&(z[C].xmlValue="["+z[C].xmlValue.length+"]"),null!=z[C].style&&(z[C].style="["+z[C].style.length+"]"),mxUtils.isEmptyObject(z[C])&&delete z[C];mxUtils.isEmptyObject(z)&&
-delete n.cells[m]}}),e(EditorUi.DIFF_INSERT),e(EditorUi.DIFF_UPDATE),mxUtils.isEmptyObject(n.cells)&&delete n.cells);mxUtils.isEmptyObject(n)&&delete c[EditorUi.DIFF_UPDATE][q]}mxUtils.isEmptyObject(c[EditorUi.DIFF_UPDATE])&&delete c[EditorUi.DIFF_UPDATE]}return c};EditorUi.prototype.anonymizeAttributes=function(c,e){if(null!=c.attributes)for(var g=0;g<c.attributes.length;g++)"as"!=c.attributes[g].name&&c.setAttribute(c.attributes[g].name,this.anonymizeString(c.attributes[g].value,e));if(null!=c.childNodes)for(g=
+null!=c&&p.setAttribute("type",c),1<p.getElementsByTagName("diagram").length&&null!=this.pages&&p.setAttribute("pages",this.pages.length));I=I?mxUtils.getPrettyXml(p):mxUtils.getXml(p);if(!n&&!m&&(z||null!=g&&/(\.html)$/i.test(g.getTitle())))I=this.getHtml2(mxUtils.getXml(p),e,null!=g?g.getTitle():null,t,N);else if(n||!m&&null!=g&&/(\.svg)$/i.test(g.getTitle()))null==g||g.getMode()!=App.MODE_DEVICE&&g.getMode()!=App.MODE_BROWSER||(q=null),I=this.getEmbeddedSvg(I,e,q,null,C,u,N);return I};EditorUi.prototype.getXmlFileData=
+function(c,e,g,q){c=null!=c?c:!0;e=null!=e?e:!1;g=null!=g?g:!Editor.compressXml;var m=this.editor.getGraphXml(c,q);if(c&&null!=this.fileNode&&null!=this.currentPage)if(c=function(u){var y=u.getElementsByTagName("mxGraphModel");y=0<y.length?y[0]:null;null==y&&g?(y=mxUtils.trim(mxUtils.getTextContent(u)),u=u.cloneNode(!1),0<y.length&&(y=Graph.decompress(y),null!=y&&0<y.length&&u.appendChild(mxUtils.parseXml(y).documentElement))):null==y||g?u=u.cloneNode(!0):(u=u.cloneNode(!1),mxUtils.setTextContent(u,
+Graph.compressNode(y)));m.appendChild(u)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(m)),m=this.fileNode.cloneNode(!1),e)c(this.currentPage.node);else for(e=0;e<this.pages.length;e++){var n=this.pages[e],z=n.node;if(n!=this.currentPage)if(n.needsUpdate){var C=new mxCodec(mxUtils.createXmlDocument());C=C.encode(new mxGraphModel(n.root));this.editor.graph.saveViewState(n.viewState,C,null,q);EditorUi.removeChildNodes(z);mxUtils.setTextContent(z,
+Graph.compressNode(C));delete n.needsUpdate}else q&&(this.updatePageRoot(n),null!=n.viewState.backgroundImage&&(null!=n.viewState.backgroundImage.originalSrc?n.viewState.backgroundImage=this.createImageForPageLink(n.viewState.backgroundImage.originalSrc,n):Graph.isPageLink(n.viewState.backgroundImage.src)&&(n.viewState.backgroundImage=this.createImageForPageLink(n.viewState.backgroundImage.src,n))),null!=n.viewState.backgroundImage&&null!=n.viewState.backgroundImage.originalSrc&&(C=new mxCodec(mxUtils.createXmlDocument()),
+C=C.encode(new mxGraphModel(n.root)),this.editor.graph.saveViewState(n.viewState,C,null,q),z=z.cloneNode(!1),mxUtils.setTextContent(z,Graph.compressNode(C))));c(z)}return m};EditorUi.prototype.anonymizeString=function(c,e){for(var g=[],q=0;q<c.length;q++){var m=c.charAt(q);0<=EditorUi.ignoredAnonymizedChars.indexOf(m)?g.push(m):isNaN(parseInt(m))?m.toLowerCase()!=m?g.push(String.fromCharCode(65+Math.round(25*Math.random()))):m.toUpperCase()!=m?g.push(String.fromCharCode(97+Math.round(25*Math.random()))):
+/\s/.test(m)?g.push(" "):g.push("?"):g.push(e?"0":Math.round(9*Math.random()))}return g.join("")};EditorUi.prototype.anonymizePatch=function(c){if(null!=c[EditorUi.DIFF_INSERT])for(var e=0;e<c[EditorUi.DIFF_INSERT].length;e++)try{var g=mxUtils.parseXml(c[EditorUi.DIFF_INSERT][e].data).documentElement.cloneNode(!1);null!=g.getAttribute("name")&&g.setAttribute("name",this.anonymizeString(g.getAttribute("name")));c[EditorUi.DIFF_INSERT][e].data=mxUtils.getXml(g)}catch(n){c[EditorUi.DIFF_INSERT][e].data=
+n.message}if(null!=c[EditorUi.DIFF_UPDATE]){for(var q in c[EditorUi.DIFF_UPDATE]){var m=c[EditorUi.DIFF_UPDATE][q];null!=m.name&&(m.name=this.anonymizeString(m.name));null!=m.cells&&(e=mxUtils.bind(this,function(n){var z=m.cells[n];if(null!=z){for(var C in z)null!=z[C].value&&(z[C].value="["+z[C].value.length+"]"),null!=z[C].xmlValue&&(z[C].xmlValue="["+z[C].xmlValue.length+"]"),null!=z[C].style&&(z[C].style="["+z[C].style.length+"]"),mxUtils.isEmptyObject(z[C])&&delete z[C];mxUtils.isEmptyObject(z)&&
+delete m.cells[n]}}),e(EditorUi.DIFF_INSERT),e(EditorUi.DIFF_UPDATE),mxUtils.isEmptyObject(m.cells)&&delete m.cells);mxUtils.isEmptyObject(m)&&delete c[EditorUi.DIFF_UPDATE][q]}mxUtils.isEmptyObject(c[EditorUi.DIFF_UPDATE])&&delete c[EditorUi.DIFF_UPDATE]}return c};EditorUi.prototype.anonymizeAttributes=function(c,e){if(null!=c.attributes)for(var g=0;g<c.attributes.length;g++)"as"!=c.attributes[g].name&&c.setAttribute(c.attributes[g].name,this.anonymizeString(c.attributes[g].value,e));if(null!=c.childNodes)for(g=
0;g<c.childNodes.length;g++)this.anonymizeAttributes(c.childNodes[g],e)};EditorUi.prototype.anonymizeNode=function(c,e){e=c.getElementsByTagName("mxCell");for(var g=0;g<e.length;g++)null!=e[g].getAttribute("value")&&e[g].setAttribute("value","["+e[g].getAttribute("value").length+"]"),null!=e[g].getAttribute("xmlValue")&&e[g].setAttribute("xmlValue","["+e[g].getAttribute("xmlValue").length+"]"),null!=e[g].getAttribute("style")&&e[g].setAttribute("style","["+e[g].getAttribute("style").length+"]"),null!=
e[g].parentNode&&"root"!=e[g].parentNode.nodeName&&null!=e[g].parentNode.parentNode&&(e[g].setAttribute("id",e[g].parentNode.getAttribute("id")),e[g].parentNode.parentNode.replaceChild(e[g],e[g].parentNode));return c};EditorUi.prototype.synchronizeCurrentFile=function(c){var e=this.getCurrentFile();null!=e&&(e.savingFile?this.handleError({message:mxResources.get("busy")}):!c&&e.invalidChecksum?e.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(e.clearAutosave(),
-this.editor.setStatus(""),c?e.reloadFile(mxUtils.bind(this,function(){e.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(g){e.handleFileError(g,!0)})):e.synchronizeFile(mxUtils.bind(this,function(){e.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(g){e.handleFileError(g,!0)}))))};EditorUi.prototype.getFileData=function(c,e,g,q,n,m,z,C,u,y,I){n=null!=n?n:!0;m=null!=m?m:!1;var N=this.editor.graph;if(e||!c&&null!=u&&/(\.svg)$/i.test(u.getTitle())){var t=
+this.editor.setStatus(""),c?e.reloadFile(mxUtils.bind(this,function(){e.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(g){e.handleFileError(g,!0)})):e.synchronizeFile(mxUtils.bind(this,function(){e.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(g){e.handleFileError(g,!0)}))))};EditorUi.prototype.getFileData=function(c,e,g,q,m,n,z,C,u,y,I){m=null!=m?m:!0;n=null!=n?n:!1;var N=this.editor.graph;if(e||!c&&null!=u&&/(\.svg)$/i.test(u.getTitle())){var t=
null!=N.themes&&"darkTheme"==N.defaultThemeName;y=!1;if(t||null!=this.pages&&this.currentPage!=this.pages[0]){var p=N.getGlobalVariable;N=this.createTemporaryGraph(t?N.getDefaultStylesheet():N.getStylesheet());N.setBackgroundImage=this.editor.graph.setBackgroundImage;N.background=this.editor.graph.background;var F=this.pages[0];this.currentPage==F?N.setBackgroundImage(this.editor.graph.backgroundImage):null!=F.viewState&&null!=F.viewState&&N.setBackgroundImage(F.viewState.backgroundImage);N.getGlobalVariable=
-function(J){return"page"==J?F.getName():"pagenumber"==J?1:p.apply(this,arguments)};document.body.appendChild(N.container);N.model.setRoot(F.root)}}z=null!=z?z:this.getXmlFileData(n,m,y,I);u=null!=u?u:this.getCurrentFile();c=this.createFileData(z,N,u,window.location.href,c,e,g,q,n,C,y);N!=this.editor.graph&&N.container.parentNode.removeChild(N.container);return c};EditorUi.prototype.getHtml=function(c,e,g,q,n,m){m=null!=m?m:!0;var z=null,C=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=e){z=
-m?e.getGraphBounds():e.getBoundingBox(e.getSelectionCells());var u=e.view.scale;m=Math.floor(z.x/u-e.view.translate.x);u=Math.floor(z.y/u-e.view.translate.y);z=e.background;null==n&&(e=this.getBasenames().join(";"),0<e.length&&(C=EditorUi.drawHost+"/embed.js?s="+e));c.setAttribute("x0",m);c.setAttribute("y0",u)}null!=c&&(c.setAttribute("pan","1"),c.setAttribute("zoom","1"),c.setAttribute("resize","0"),c.setAttribute("fit","0"),c.setAttribute("border","20"),c.setAttribute("links","1"),null!=q&&c.setAttribute("edit",
-q));null!=n&&(n=n.replace(/&/g,"&amp;"));c=null!=c?Graph.zapGremlins(mxUtils.getXml(c)):"";q=Graph.compress(c);Graph.decompress(q)!=c&&(q=encodeURIComponent(c));return(null==n?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=n?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==n?null!=g?"<title>"+mxUtils.htmlEntities(g)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=n?'<meta http-equiv="refresh" content="0;URL=\''+
-n+"'\"/>\n":"")+"</head>\n<body"+(null==n&&null!=z&&z!=mxConstants.NONE?' style="background-color:'+z+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+q+"</div>\n</div>\n"+(null==n?'<script type="text/javascript" src="'+C+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+n+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+
-"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(c,e,g,q,n){e=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=n&&(n=n.replace(/&/g,"&amp;"));c={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(c),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==n?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':
-"")+"<!DOCTYPE html>\n<html"+(null!=n?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==n?null!=g?"<title>"+mxUtils.htmlEntities(g)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=n?'<meta http-equiv="refresh" content="0;URL=\''+n+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>\n'+(null==n?'<script type="text/javascript" src="'+
-e+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+n+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(c){c=this.validateFileData(c);this.pages=this.fileNode=this.currentPage=null;var e=null!=c&&0<c.length?mxUtils.parseXml(c).documentElement:null,g=Editor.extractParserError(e,mxResources.get("invalidOrMissingFile"));if(g)throw EditorUi.debug("EditorUi.setFileData ParserError",
+function(J){return"page"==J?F.getName():"pagenumber"==J?1:p.apply(this,arguments)};document.body.appendChild(N.container);N.model.setRoot(F.root)}}z=null!=z?z:this.getXmlFileData(m,n,y,I);u=null!=u?u:this.getCurrentFile();c=this.createFileData(z,N,u,window.location.href,c,e,g,q,m,C,y);N!=this.editor.graph&&N.container.parentNode.removeChild(N.container);return c};EditorUi.prototype.getHtml=function(c,e,g,q,m,n){n=null!=n?n:!0;var z=null,C=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=e){z=
+n?e.getGraphBounds():e.getBoundingBox(e.getSelectionCells());var u=e.view.scale;n=Math.floor(z.x/u-e.view.translate.x);u=Math.floor(z.y/u-e.view.translate.y);z=e.background;null==m&&(e=this.getBasenames().join(";"),0<e.length&&(C=EditorUi.drawHost+"/embed.js?s="+e));c.setAttribute("x0",n);c.setAttribute("y0",u)}null!=c&&(c.setAttribute("pan","1"),c.setAttribute("zoom","1"),c.setAttribute("resize","0"),c.setAttribute("fit","0"),c.setAttribute("border","20"),c.setAttribute("links","1"),null!=q&&c.setAttribute("edit",
+q));null!=m&&(m=m.replace(/&/g,"&amp;"));c=null!=c?Graph.zapGremlins(mxUtils.getXml(c)):"";q=Graph.compress(c);Graph.decompress(q)!=c&&(q=encodeURIComponent(c));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=g?"<title>"+mxUtils.htmlEntities(g)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+
+m+"'\"/>\n":"")+"</head>\n<body"+(null==m&&null!=z&&z!=mxConstants.NONE?' style="background-color:'+z+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+q+"</div>\n</div>\n"+(null==m?'<script type="text/javascript" src="'+C+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+
+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(c,e,g,q,m){e=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=m&&(m=m.replace(/&/g,"&amp;"));c={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(c),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':
+"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=g?"<title>"+mxUtils.htmlEntities(g)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>\n'+(null==m?'<script type="text/javascript" src="'+
+e+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(c){c=this.validateFileData(c);this.pages=this.fileNode=this.currentPage=null;var e=null!=c&&0<c.length?mxUtils.parseXml(c).documentElement:null,g=Editor.extractParserError(e,mxResources.get("invalidOrMissingFile"));if(g)throw EditorUi.debug("EditorUi.setFileData ParserError",
[this],"data",[c],"node",[e],"cause",[g]),Error(mxResources.get("notADiagramFile")+" ("+g+")");c=null!=e?this.editor.extractGraphModel(e,!0):null;null!=c&&(e=c);if(null!=e&&"mxfile"==e.nodeName&&(c=e.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name"))){g=null;this.fileNode=e;this.pages=[];for(var q=0;q<c.length;q++)null==c[q].getAttribute("id")&&c[q].setAttribute("id",q),e=new DiagramPage(c[q]),null==e.getName()&&e.setName(mxResources.get("pageWithNumber",
[q+1])),this.pages.push(e),null!=urlParams["page-id"]&&e.getId()==urlParams["page-id"]&&(g=e);this.currentPage=null!=g?g:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];e=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=e&&(this.fileNode=e.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(e.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(e);
-null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var n=urlParams["layer-ids"].split(" ");e={};for(q=0;q<n.length;q++)e[n[q]]=!0;var m=this.editor.graph.getModel(),z=m.getChildren(m.root);for(q=0;q<z.length;q++){var C=z[q];m.setVisible(C,e[C.id]||!1)}}catch(u){}};EditorUi.prototype.getBaseFilename=function(c){var e=this.getCurrentFile();e=null!=e&&null!=e.getTitle()?e.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(e)||/(\.html)$/i.test(e)||
-/(\.svg)$/i.test(e)||/(\.png)$/i.test(e))e=e.substring(0,e.lastIndexOf("."));/(\.drawio)$/i.test(e)&&(e=e.substring(0,e.lastIndexOf(".")));!c&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(e=e+"-"+this.currentPage.getName());return e};EditorUi.prototype.downloadFile=function(c,e,g,q,n,m,z,C,u,y,I,N){try{q=null!=q?q:this.editor.graph.isSelectionEmpty();var t=this.getBaseFilename("remoteSvg"==c?
-!1:!n),p=t+("xml"==c||"pdf"==c&&I?".drawio":"")+"."+c;if("xml"==c){var F=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,q,n,null,null,null,e);this.saveData(p,c,F,"text/xml")}else if("html"==c)F=this.getHtml2(this.getFileData(!0),this.editor.graph,t),this.saveData(p,c,F,"text/html");else if("svg"!=c&&"xmlsvg"!=c||!this.spinner.spin(document.body,mxResources.get("export"))){if("xmlpng"==c)p=t+".png";else if("jpeg"==c)p=t+".jpg";else if("remoteSvg"==c){p=t+".svg";c="svg";var J=parseInt(u);
-"string"===typeof C&&0<C.indexOf("%")&&(C=parseInt(C)/100);if(0<J){var M=this.editor.graph,H=M.getGraphBounds();var G=Math.ceil(H.width*C/M.view.scale+2*J);var E=Math.ceil(H.height*C/M.view.scale+2*J)}}this.saveRequest(p,c,mxUtils.bind(this,function(V,l){try{var A=this.editor.graph.pageVisible;0==m&&(this.editor.graph.pageVisible=m);var L=this.createDownloadRequest(V,c,q,l,z,n,C,u,y,I,N,G,E);this.editor.graph.pageVisible=A;return L}catch(Q){this.handleError(Q)}}))}else{var P=null,T=mxUtils.bind(this,
+null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var m=urlParams["layer-ids"].split(" ");e={};for(q=0;q<m.length;q++)e[m[q]]=!0;var n=this.editor.graph.getModel(),z=n.getChildren(n.root);for(q=0;q<z.length;q++){var C=z[q];n.setVisible(C,e[C.id]||!1)}}catch(u){}};EditorUi.prototype.getBaseFilename=function(c){var e=this.getCurrentFile();e=null!=e&&null!=e.getTitle()?e.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(e)||/(\.html)$/i.test(e)||
+/(\.svg)$/i.test(e)||/(\.png)$/i.test(e))e=e.substring(0,e.lastIndexOf("."));/(\.drawio)$/i.test(e)&&(e=e.substring(0,e.lastIndexOf(".")));!c&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(e=e+"-"+this.currentPage.getName());return e};EditorUi.prototype.downloadFile=function(c,e,g,q,m,n,z,C,u,y,I,N){try{q=null!=q?q:this.editor.graph.isSelectionEmpty();var t=this.getBaseFilename("remoteSvg"==c?
+!1:!m),p=t+("xml"==c||"pdf"==c&&I?".drawio":"")+"."+c;if("xml"==c){var F=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,q,m,null,null,null,e);this.saveData(p,c,F,"text/xml")}else if("html"==c)F=this.getHtml2(this.getFileData(!0),this.editor.graph,t),this.saveData(p,c,F,"text/html");else if("svg"!=c&&"xmlsvg"!=c||!this.spinner.spin(document.body,mxResources.get("export"))){if("xmlpng"==c)p=t+".png";else if("jpeg"==c)p=t+".jpg";else if("remoteSvg"==c){p=t+".svg";c="svg";var J=parseInt(u);
+"string"===typeof C&&0<C.indexOf("%")&&(C=parseInt(C)/100);if(0<J){var M=this.editor.graph,H=M.getGraphBounds();var G=Math.ceil(H.width*C/M.view.scale+2*J);var E=Math.ceil(H.height*C/M.view.scale+2*J)}}this.saveRequest(p,c,mxUtils.bind(this,function(V,l){try{var A=this.editor.graph.pageVisible;0==n&&(this.editor.graph.pageVisible=n);var L=this.createDownloadRequest(V,c,q,l,z,m,C,u,y,I,N,G,E);this.editor.graph.pageVisible=A;return L}catch(Q){this.handleError(Q)}}))}else{var P=null,T=mxUtils.bind(this,
function(V){V.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",V,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(P)}))});if("svg"==c){var W=this.editor.graph.background;if(z||W==mxConstants.NONE)W=null;var U=this.editor.graph.getSvg(W,null,null,null,null,q);g&&this.editor.graph.addSvgShadow(U);this.editor.convertImages(U,mxUtils.bind(this,mxUtils.bind(this,function(V){this.spinner.stop();T(Graph.xmlDeclaration+
-"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(V))})))}else p=t+".svg",P=this.getFileData(!1,!0,null,mxUtils.bind(this,function(V){this.spinner.stop();T(V)}),q)}}catch(V){this.handleError(V)}};EditorUi.prototype.createDownloadRequest=function(c,e,g,q,n,m,z,C,u,y,I,N,t){var p=this.editor.graph,F=p.getGraphBounds();g=this.getFileData(!0,null,null,null,g,0==m?!1:"xmlpng"!=e,null,null,null,!1,"pdf"==e);var J="",M="";if(F.width*F.height>MAX_AREA||g.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
-y=y?"1":"0";"pdf"==e&&(null!=I?M="&from="+I.from+"&to="+I.to:0==m&&(M="&allPages=1"));"xmlpng"==e&&(y="1",e="png");if(("xmlpng"==e||"svg"==e)&&null!=this.pages&&null!=this.currentPage)for(m=0;m<this.pages.length;m++)if(this.pages[m]==this.currentPage){J="&from="+m;break}m=p.background;"png"!=e&&"pdf"!=e&&"svg"!=e||!n?n||null!=m&&m!=mxConstants.NONE||(m="#ffffff"):m=mxConstants.NONE;n={globalVars:p.getExportVariables()};u&&(n.grid={size:p.gridSize,steps:p.view.gridSteps,color:p.view.gridColor});Graph.translateDiagram&&
-(n.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+e+J+M+"&bg="+(null!=m?m:mxConstants.NONE)+"&base64="+q+"&embedXml="+y+"&xml="+encodeURIComponent(g)+(null!=c?"&filename="+encodeURIComponent(c):"")+"&extras="+encodeURIComponent(JSON.stringify(n))+(null!=z?"&scale="+z:"")+(null!=C?"&border="+C:"")+(N&&isFinite(N)?"&w="+N:"")+(t&&isFinite(t)?"&h="+t:""))};EditorUi.prototype.setMode=function(c,e){this.mode=c};EditorUi.prototype.loadDescriptor=function(c,e,g){var q=
-window.location.hash,n=mxUtils.bind(this,function(z){var C=null!=c.data?c.data:"";null!=z&&0<z.length&&(0<C.length&&(C+="\n"),C+=z);z=new LocalFile(this,"csv"!=c.format&&0<C.length?C:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);z.getHash=function(){return q};this.fileLoaded(z);"csv"==c.format&&this.importCsv(C,mxUtils.bind(this,function(t){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=c.update){var u=
+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(V))})))}else p=t+".svg",P=this.getFileData(!1,!0,null,mxUtils.bind(this,function(V){this.spinner.stop();T(V)}),q)}}catch(V){this.handleError(V)}};EditorUi.prototype.createDownloadRequest=function(c,e,g,q,m,n,z,C,u,y,I,N,t){var p=this.editor.graph,F=p.getGraphBounds();g=this.getFileData(!0,null,null,null,g,0==n?!1:"xmlpng"!=e,null,null,null,!1,"pdf"==e);var J="",M="";if(F.width*F.height>MAX_AREA||g.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
+y=y?"1":"0";"pdf"==e&&(null!=I?M="&from="+I.from+"&to="+I.to:0==n&&(M="&allPages=1"));"xmlpng"==e&&(y="1",e="png");if(("xmlpng"==e||"svg"==e)&&null!=this.pages&&null!=this.currentPage)for(n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){J="&from="+n;break}n=p.background;"png"!=e&&"pdf"!=e&&"svg"!=e||!m?m||null!=n&&n!=mxConstants.NONE||(n="#ffffff"):n=mxConstants.NONE;m={globalVars:p.getExportVariables()};u&&(m.grid={size:p.gridSize,steps:p.view.gridSteps,color:p.view.gridColor});Graph.translateDiagram&&
+(m.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+e+J+M+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+q+"&embedXml="+y+"&xml="+encodeURIComponent(g)+(null!=c?"&filename="+encodeURIComponent(c):"")+"&extras="+encodeURIComponent(JSON.stringify(m))+(null!=z?"&scale="+z:"")+(null!=C?"&border="+C:"")+(N&&isFinite(N)?"&w="+N:"")+(t&&isFinite(t)?"&h="+t:""))};EditorUi.prototype.setMode=function(c,e){this.mode=c};EditorUi.prototype.loadDescriptor=function(c,e,g){var q=
+window.location.hash,m=mxUtils.bind(this,function(z){var C=null!=c.data?c.data:"";null!=z&&0<z.length&&(0<C.length&&(C+="\n"),C+=z);z=new LocalFile(this,"csv"!=c.format&&0<C.length?C:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);z.getHash=function(){return q};this.fileLoaded(z);"csv"==c.format&&this.importCsv(C,mxUtils.bind(this,function(t){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=c.update){var u=
null!=c.interval?parseInt(c.interval):6E4,y=null,I=mxUtils.bind(this,function(){var t=this.currentPage;mxUtils.post(c.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(p){t===this.currentPage&&(200<=p.getStatus()&&300>=p.getStatus()?(this.updateDiagram(p.getText()),N()):this.handleError({message:mxResources.get("error")+" "+p.getStatus()}))}),mxUtils.bind(this,function(p){this.handleError(p)}))}),N=mxUtils.bind(this,function(){window.clearTimeout(y);
-y=window.setTimeout(I,u)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){N();I()}));N();I()}null!=e&&e()});if(null!=c.url&&0<c.url.length){var m=c.url;if(/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))m=this.editor.getProxiedUrl(m);this.editor.loadUrl(m,mxUtils.bind(this,function(z){n(z)}),mxUtils.bind(this,function(z){null!=g&&g(z)}))}else n("")};EditorUi.prototype.updateDiagram=function(c){function e(E){var P=new mxCellOverlay(E.image||
-n.warningImage,E.tooltip,E.align,E.valign,E.offset);P.addListener(mxEvent.CLICK,function(T,W){q.alert(E.tooltip)});return P}var g=null,q=this;if(null!=c&&0<c.length&&(g=mxUtils.parseXml(c),c=null!=g?g.documentElement:null,null!=c&&"updates"==c.nodeName)){var n=this.editor.graph,m=n.getModel();m.beginUpdate();var z=null;try{for(c=c.firstChild;null!=c;){if("update"==c.nodeName){var C=m.getCell(c.getAttribute("id"));if(null!=C){try{var u=c.getAttribute("value");if(null!=u){var y=mxUtils.parseXml(u).documentElement;
-if(null!=y)if("1"==y.getAttribute("replace-value"))m.setValue(C,y);else for(var I=y.attributes,N=0;N<I.length;N++)n.setAttributeForCell(C,I[N].nodeName,0<I[N].nodeValue.length?I[N].nodeValue:null)}}catch(E){null!=window.console&&console.log("Error in value for "+C.id+": "+E)}try{var t=c.getAttribute("style");null!=t&&n.model.setStyle(C,t)}catch(E){null!=window.console&&console.log("Error in style for "+C.id+": "+E)}try{var p=c.getAttribute("icon");if(null!=p){var F=0<p.length?JSON.parse(p):null;null!=
-F&&F.append||n.removeCellOverlays(C);null!=F&&n.addCellOverlay(C,e(F))}}catch(E){null!=window.console&&console.log("Error in icon for "+C.id+": "+E)}try{var J=c.getAttribute("geometry");if(null!=J){J=JSON.parse(J);var M=n.getCellGeometry(C);if(null!=M){M=M.clone();for(key in J){var H=parseFloat(J[key]);"dx"==key?M.x+=H:"dy"==key?M.y+=H:"dw"==key?M.width+=H:"dh"==key?M.height+=H:M[key]=parseFloat(J[key])}n.model.setGeometry(C,M)}}}catch(E){null!=window.console&&console.log("Error in icon for "+C.id+
-": "+E)}}}else if("model"==c.nodeName){for(var G=c.firstChild;null!=G&&G.nodeType!=mxConstants.NODETYPE_ELEMENT;)G=G.nextSibling;null!=G&&(new mxCodec(c.firstChild)).decode(G,m)}else if("view"==c.nodeName){if(c.hasAttribute("scale")&&(n.view.scale=parseFloat(c.getAttribute("scale"))),c.hasAttribute("dx")||c.hasAttribute("dy"))n.view.translate=new mxPoint(parseFloat(c.getAttribute("dx")||0),parseFloat(c.getAttribute("dy")||0))}else"fit"==c.nodeName&&(z=c.hasAttribute("max-scale")?parseFloat(c.getAttribute("max-scale")):
-1);c=c.nextSibling}}finally{m.endUpdate()}null!=z&&this.chromelessResize&&this.chromelessResize(!0,z)}return g};EditorUi.prototype.getCopyFilename=function(c,e){var g=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename;c="";var q=g.lastIndexOf(".");0<=q&&(c=g.substring(q),g=g.substring(0,q));if(e){e=g;var n=new Date;g=n.getFullYear();q=n.getMonth()+1;var m=n.getDate(),z=n.getHours(),C=n.getMinutes();n=n.getSeconds();g=e+(" "+(g+"-"+q+"-"+m+"-"+z+"-"+C+"-"+n))}return g=mxResources.get("copyOf",
-[g])+c};EditorUi.prototype.fileLoaded=function(c,e){var g=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var q=!1;this.hideDialog();null!=g&&(EditorUi.debug("File.closed",[g]),g.removeListener(this.descriptorChangedListener),g.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var n=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=g&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
-this.setBackgroundImage(null);!e&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();e||this.showSplash()});if(null!=c)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(c);c.addListener("descriptorChanged",this.descriptorChangedListener);
-c.addListener("contentChanged",this.descriptorChangedListener);c.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(c.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();c.isEditable()?c.isModified()?(c.addUnsavedStatus(),null!=c.backupPatch&&c.patch([c.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");
-!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));q=!0;if(!this.isOffline()&&null!=c.getMode()){var m="1"==urlParams.sketch?"sketch":uiTheme;if(null==m)m="default";else if("sketch"==m||"min"==m)m+=Editor.isDarkMode()?
-"-dark":"-light";EditorUi.logEvent({category:c.getMode().toUpperCase()+"-OPEN-FILE-"+c.getHash(),action:"size_"+c.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+m})}EditorUi.debug("File.opened",[c]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==c.getMode()&&c.getMode()!=App.MODE_DEVICE&&null!=c.getMode())try{this.addRecent({id:c.getHash(),title:c.getTitle(),mode:c.getMode()})}catch(z){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+
-1),mxSettings.save()}catch(z){}}catch(z){this.fileLoadedError=z;if(null!=c)try{c.close()}catch(C){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=c?c.getHash():"none"),action:"message_"+z.message,label:"stack_"+z.stack})}catch(C){}c=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=g?this.fileLoaded(g)||n():n()});e?c():this.handleError(z,
-mxResources.get("errorLoadingFile"),c,!0,null,null,!0)}else n();return q};EditorUi.prototype.getHashValueForPages=function(c,e){var g=0,q=new mxGraphModel,n=new mxCodec;null!=e&&(e.byteCount=0,e.attrCount=0,e.eltCount=0,e.nodeCount=0);for(var m=0;m<c.length;m++){this.updatePageRoot(c[m]);var z=c[m].node.cloneNode(!1);z.removeAttribute("name");q.root=c[m].root;var C=n.encode(q);this.editor.graph.saveViewState(c[m].viewState,C,!0);C.removeAttribute("pageWidth");C.removeAttribute("pageHeight");z.appendChild(C);
-null!=e&&(e.eltCount+=z.getElementsByTagName("*").length,e.nodeCount+=z.getElementsByTagName("mxCell").length);g=(g<<5)-g+this.hashValue(z,function(u,y,I,N){return!N||"mxGeometry"!=u.nodeName&&"mxPoint"!=u.nodeName||"x"!=y&&"y"!=y&&"width"!=y&&"height"!=y?N&&"mxCell"==u.nodeName&&"previous"==y?null:I:Math.round(I)},e)<<0}return g};EditorUi.prototype.hashValue=function(c,e,g){var q=0;if(null!=c&&"object"===typeof c&&"number"===typeof c.nodeType&&"string"===typeof c.nodeName&&"function"===typeof c.getAttribute){null!=
-c.nodeName&&(q^=this.hashValue(c.nodeName,e,g));if(null!=c.attributes){null!=g&&(g.attrCount+=c.attributes.length);for(var n=0;n<c.attributes.length;n++){var m=c.attributes[n].name,z=null!=e?e(c,m,c.attributes[n].value,!0):c.attributes[n].value;null!=z&&(q^=this.hashValue(m,e,g)+this.hashValue(z,e,g))}}if(null!=c.childNodes)for(n=0;n<c.childNodes.length;n++)q=(q<<5)-q+this.hashValue(c.childNodes[n],e,g)<<0}else if(null!=c&&"function"!==typeof c){c=String(c);e=0;null!=g&&(g.byteCount+=c.length);for(n=
-0;n<c.length;n++)e=(e<<5)-e+c.charCodeAt(n)<<0;q^=e}return q};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(c,e,g,q,n,m,z){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(c){null==c&&(c=this.emptyLibraryXml);
-this.loadLibrary(new StorageLibrary(this,c,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(c){var e=mxUtils.createXmlDocument(),g=e.createElement("mxlibrary");mxUtils.setTextContent(g,JSON.stringify(c));e.appendChild(g);return mxUtils.getXml(e)};EditorUi.prototype.closeLibrary=function(c){null!=c&&(this.removeLibrarySidebar(c.getHash()),c.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(c.getHash()),".scratchpad"==c.title&&(this.scratchpad=
-null))};EditorUi.prototype.removeLibrarySidebar=function(c){var e=this.sidebar.palettes[c];if(null!=e){for(var g=0;g<e.length;g++)e[g].parentNode.removeChild(e[g]);delete this.sidebar.palettes[c]}};EditorUi.prototype.repositionLibrary=function(c){var e=this.sidebar.container;if(null==c){var g=this.sidebar.palettes["L.scratchpad"];null==g&&(g=this.sidebar.palettes.search);null!=g&&(c=g[g.length-1].nextSibling)}c=null!=c?c:e.firstChild.nextSibling.nextSibling;g=e.lastChild;var q=g.previousSibling;e.insertBefore(g,
-c);e.insertBefore(q,g)};EditorUi.prototype.loadLibrary=function(c,e){var g=mxUtils.parseXml(c.getData());if("mxlibrary"==g.documentElement.nodeName){var q=JSON.parse(mxUtils.getTextContent(g.documentElement));this.libraryLoaded(c,q,g.documentElement.getAttribute("title"),e)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(c){return""};EditorUi.prototype.libraryLoaded=function(c,e,g,q){if(null!=this.sidebar){c.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(c.getHash());
-".scratchpad"==c.title&&(this.scratchpad=c);var n=this.sidebar.palettes[c.getHash()];n=null!=n?n[n.length-1].nextSibling:null;this.removeLibrarySidebar(c.getHash());var m=null,z=mxUtils.bind(this,function(G,E){0==G.length&&c.isEditable()?(null==m&&(m=document.createElement("div"),m.className="geDropTarget",mxUtils.write(m,mxResources.get("dragElementsHere"))),E.appendChild(m)):this.addLibraryEntries(G,E)});null!=this.sidebar&&null!=e&&this.sidebar.addEntries(e);null==g&&(g=c.getTitle(),null!=g&&/(\.xml)$/i.test(g)&&
-(g=g.substring(0,g.lastIndexOf("."))));var C=this.sidebar.addPalette(c.getHash(),g,null!=q?q:!0,mxUtils.bind(this,function(G){z(e,G)}));this.repositionLibrary(n);var u=C.parentNode.previousSibling;q=u.getAttribute("title");null!=q&&0<q.length&&".scratchpad"!=c.title&&u.setAttribute("title",this.getLibraryStorageHint(c)+"\n"+q);var y=document.createElement("div");y.style.position="absolute";y.style.right="0px";y.style.top="0px";y.style.padding="8px";y.style.backgroundColor="inherit";u.style.position=
-"relative";var I=document.createElement("img");I.className="geAdaptiveAsset";I.setAttribute("src",Editor.crossImage);I.setAttribute("title",mxResources.get("close"));I.setAttribute("valign","absmiddle");I.setAttribute("border","0");I.style.position="relative";I.style.top="2px";I.style.width="14px";I.style.cursor="pointer";I.style.margin="0 3px";var N=null;if(".scratchpad"!=c.title||this.closableScratchpad)y.appendChild(I),mxEvent.addListener(I,"click",mxUtils.bind(this,function(G){if(!mxEvent.isConsumed(G)){var E=
+y=window.setTimeout(I,u)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){N();I()}));N();I()}null!=e&&e()});if(null!=c.url&&0<c.url.length){var n=this.editor.getProxiedUrl(c.url);this.editor.loadUrl(n,mxUtils.bind(this,function(z){m(z)}),mxUtils.bind(this,function(z){null!=g&&g(z)}))}else m("")};EditorUi.prototype.updateDiagram=function(c){function e(E){var P=new mxCellOverlay(E.image||m.warningImage,E.tooltip,E.align,E.valign,E.offset);P.addListener(mxEvent.CLICK,function(T,
+W){q.alert(E.tooltip)});return P}var g=null,q=this;if(null!=c&&0<c.length&&(g=mxUtils.parseXml(c),c=null!=g?g.documentElement:null,null!=c&&"updates"==c.nodeName)){var m=this.editor.graph,n=m.getModel();n.beginUpdate();var z=null;try{for(c=c.firstChild;null!=c;){if("update"==c.nodeName){var C=n.getCell(c.getAttribute("id"));if(null!=C){try{var u=c.getAttribute("value");if(null!=u){var y=mxUtils.parseXml(u).documentElement;if(null!=y)if("1"==y.getAttribute("replace-value"))n.setValue(C,y);else for(var I=
+y.attributes,N=0;N<I.length;N++)m.setAttributeForCell(C,I[N].nodeName,0<I[N].nodeValue.length?I[N].nodeValue:null)}}catch(E){null!=window.console&&console.log("Error in value for "+C.id+": "+E)}try{var t=c.getAttribute("style");null!=t&&m.model.setStyle(C,t)}catch(E){null!=window.console&&console.log("Error in style for "+C.id+": "+E)}try{var p=c.getAttribute("icon");if(null!=p){var F=0<p.length?JSON.parse(p):null;null!=F&&F.append||m.removeCellOverlays(C);null!=F&&m.addCellOverlay(C,e(F))}}catch(E){null!=
+window.console&&console.log("Error in icon for "+C.id+": "+E)}try{var J=c.getAttribute("geometry");if(null!=J){J=JSON.parse(J);var M=m.getCellGeometry(C);if(null!=M){M=M.clone();for(key in J){var H=parseFloat(J[key]);"dx"==key?M.x+=H:"dy"==key?M.y+=H:"dw"==key?M.width+=H:"dh"==key?M.height+=H:M[key]=parseFloat(J[key])}m.model.setGeometry(C,M)}}}catch(E){null!=window.console&&console.log("Error in icon for "+C.id+": "+E)}}}else if("model"==c.nodeName){for(var G=c.firstChild;null!=G&&G.nodeType!=mxConstants.NODETYPE_ELEMENT;)G=
+G.nextSibling;null!=G&&(new mxCodec(c.firstChild)).decode(G,n)}else if("view"==c.nodeName){if(c.hasAttribute("scale")&&(m.view.scale=parseFloat(c.getAttribute("scale"))),c.hasAttribute("dx")||c.hasAttribute("dy"))m.view.translate=new mxPoint(parseFloat(c.getAttribute("dx")||0),parseFloat(c.getAttribute("dy")||0))}else"fit"==c.nodeName&&(z=c.hasAttribute("max-scale")?parseFloat(c.getAttribute("max-scale")):1);c=c.nextSibling}}finally{n.endUpdate()}null!=z&&this.chromelessResize&&this.chromelessResize(!0,
+z)}return g};EditorUi.prototype.getCopyFilename=function(c,e){var g=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename;c="";var q=g.lastIndexOf(".");0<=q&&(c=g.substring(q),g=g.substring(0,q));if(e){e=g;var m=new Date;g=m.getFullYear();q=m.getMonth()+1;var n=m.getDate(),z=m.getHours(),C=m.getMinutes();m=m.getSeconds();g=e+(" "+(g+"-"+q+"-"+n+"-"+z+"-"+C+"-"+m))}return g=mxResources.get("copyOf",[g])+c};EditorUi.prototype.fileLoaded=function(c,e){var g=this.getCurrentFile();this.fileEditable=
+this.fileLoadedError=null;this.setCurrentFile(null);var q=!1;this.hideDialog();null!=g&&(EditorUi.debug("File.closed",[g]),g.removeListener(this.descriptorChangedListener),g.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var m=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=g&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!e&&null!=window.location.hash&&0<window.location.hash.length&&
+(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();e||this.showSplash()});if(null!=c)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(c);c.addListener("descriptorChanged",this.descriptorChangedListener);c.addListener("contentChanged",this.descriptorChangedListener);c.open();
+delete this.openingFile;this.setGraphEnabled(!0);this.setMode(c.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();c.isEditable()?c.isModified()?(c.addUnsavedStatus(),null!=c.backupPatch&&c.patch([c.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),
+this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));q=!0;if(!this.isOffline()&&null!=c.getMode()){var n="1"==urlParams.sketch?"sketch":uiTheme;if(null==n)n="default";else if("sketch"==n||"min"==n)n+=Editor.isDarkMode()?"-dark":"-light";EditorUi.logEvent({category:c.getMode().toUpperCase()+"-OPEN-FILE-"+c.getHash(),
+action:"size_"+c.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+n})}EditorUi.debug("File.opened",[c]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==c.getMode()&&c.getMode()!=App.MODE_DEVICE&&null!=c.getMode())try{this.addRecent({id:c.getHash(),title:c.getTitle(),mode:c.getMode()})}catch(z){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(z){}}catch(z){this.fileLoadedError=
+z;if(null!=c)try{c.close()}catch(C){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=c?c.getHash():"none"),action:"message_"+z.message,label:"stack_"+z.stack})}catch(C){}c=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=g?this.fileLoaded(g)||m():m()});e?c():this.handleError(z,mxResources.get("errorLoadingFile"),c,!0,null,null,
+!0)}else m();return q};EditorUi.prototype.getHashValueForPages=function(c,e){var g=0,q=new mxGraphModel,m=new mxCodec;null!=e&&(e.byteCount=0,e.attrCount=0,e.eltCount=0,e.nodeCount=0);for(var n=0;n<c.length;n++){this.updatePageRoot(c[n]);var z=c[n].node.cloneNode(!1);z.removeAttribute("name");q.root=c[n].root;var C=m.encode(q);this.editor.graph.saveViewState(c[n].viewState,C,!0);C.removeAttribute("pageWidth");C.removeAttribute("pageHeight");z.appendChild(C);null!=e&&(e.eltCount+=z.getElementsByTagName("*").length,
+e.nodeCount+=z.getElementsByTagName("mxCell").length);g=(g<<5)-g+this.hashValue(z,function(u,y,I,N){return!N||"mxGeometry"!=u.nodeName&&"mxPoint"!=u.nodeName||"x"!=y&&"y"!=y&&"width"!=y&&"height"!=y?N&&"mxCell"==u.nodeName&&"previous"==y?null:I:Math.round(I)},e)<<0}return g};EditorUi.prototype.hashValue=function(c,e,g){var q=0;if(null!=c&&"object"===typeof c&&"number"===typeof c.nodeType&&"string"===typeof c.nodeName&&"function"===typeof c.getAttribute){null!=c.nodeName&&(q^=this.hashValue(c.nodeName,
+e,g));if(null!=c.attributes){null!=g&&(g.attrCount+=c.attributes.length);for(var m=0;m<c.attributes.length;m++){var n=c.attributes[m].name,z=null!=e?e(c,n,c.attributes[m].value,!0):c.attributes[m].value;null!=z&&(q^=this.hashValue(n,e,g)+this.hashValue(z,e,g))}}if(null!=c.childNodes)for(m=0;m<c.childNodes.length;m++)q=(q<<5)-q+this.hashValue(c.childNodes[m],e,g)<<0}else if(null!=c&&"function"!==typeof c){c=String(c);e=0;null!=g&&(g.byteCount+=c.length);for(m=0;m<c.length;m++)e=(e<<5)-e+c.charCodeAt(m)<<
+0;q^=e}return q};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(c,e,g,q,m,n,z){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(c){null==c&&(c=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,
+c,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(c){var e=mxUtils.createXmlDocument(),g=e.createElement("mxlibrary");mxUtils.setTextContent(g,JSON.stringify(c));e.appendChild(g);return mxUtils.getXml(e)};EditorUi.prototype.closeLibrary=function(c){null!=c&&(this.removeLibrarySidebar(c.getHash()),c.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(c.getHash()),".scratchpad"==c.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=
+function(c){var e=this.sidebar.palettes[c];if(null!=e){for(var g=0;g<e.length;g++)e[g].parentNode.removeChild(e[g]);delete this.sidebar.palettes[c]}};EditorUi.prototype.repositionLibrary=function(c){var e=this.sidebar.container;if(null==c){var g=this.sidebar.palettes["L.scratchpad"];null==g&&(g=this.sidebar.palettes.search);null!=g&&(c=g[g.length-1].nextSibling)}c=null!=c?c:e.firstChild.nextSibling.nextSibling;g=e.lastChild;var q=g.previousSibling;e.insertBefore(g,c);e.insertBefore(q,g)};EditorUi.prototype.loadLibrary=
+function(c,e){var g=mxUtils.parseXml(c.getData());if("mxlibrary"==g.documentElement.nodeName){var q=JSON.parse(mxUtils.getTextContent(g.documentElement));this.libraryLoaded(c,q,g.documentElement.getAttribute("title"),e)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(c){return""};EditorUi.prototype.libraryLoaded=function(c,e,g,q){if(null!=this.sidebar){c.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(c.getHash());".scratchpad"==c.title&&
+(this.scratchpad=c);var m=this.sidebar.palettes[c.getHash()];m=null!=m?m[m.length-1].nextSibling:null;this.removeLibrarySidebar(c.getHash());var n=null,z=mxUtils.bind(this,function(G,E){0==G.length&&c.isEditable()?(null==n&&(n=document.createElement("div"),n.className="geDropTarget",mxUtils.write(n,mxResources.get("dragElementsHere"))),E.appendChild(n)):this.addLibraryEntries(G,E)});null!=this.sidebar&&null!=e&&this.sidebar.addEntries(e);null==g&&(g=c.getTitle(),null!=g&&/(\.xml)$/i.test(g)&&(g=g.substring(0,
+g.lastIndexOf("."))));var C=this.sidebar.addPalette(c.getHash(),g,null!=q?q:!0,mxUtils.bind(this,function(G){z(e,G)}));this.repositionLibrary(m);var u=C.parentNode.previousSibling;q=u.getAttribute("title");null!=q&&0<q.length&&".scratchpad"!=c.title&&u.setAttribute("title",this.getLibraryStorageHint(c)+"\n"+q);var y=document.createElement("div");y.style.position="absolute";y.style.right="0px";y.style.top="0px";y.style.padding="8px";y.style.backgroundColor="inherit";u.style.position="relative";var I=
+document.createElement("img");I.className="geAdaptiveAsset";I.setAttribute("src",Editor.crossImage);I.setAttribute("title",mxResources.get("close"));I.setAttribute("valign","absmiddle");I.setAttribute("border","0");I.style.position="relative";I.style.top="2px";I.style.width="14px";I.style.cursor="pointer";I.style.margin="0 3px";var N=null;if(".scratchpad"!=c.title||this.closableScratchpad)y.appendChild(I),mxEvent.addListener(I,"click",mxUtils.bind(this,function(G){if(!mxEvent.isConsumed(G)){var E=
mxUtils.bind(this,function(){this.closeLibrary(c)});null!=N?this.confirm(mxResources.get("allChangesLost"),null,E,mxResources.get("cancel"),mxResources.get("discardChanges")):E();mxEvent.consume(G)}}));if(c.isEditable()){var t=this.editor.graph,p=null,F=mxUtils.bind(this,function(G){this.showLibraryDialog(c.getTitle(),C,e,c,c.getMode());mxEvent.consume(G)}),J=mxUtils.bind(this,function(G){c.setModified(!0);c.isAutosave()?(null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p),p=I.cloneNode(!1),
p.setAttribute("src",Editor.spinImage),p.setAttribute("title",mxResources.get("saving")),p.style.cursor="default",p.style.marginRight="2px",p.style.marginTop="-2px",y.insertBefore(p,y.firstChild),u.style.paddingRight=18*y.childNodes.length+"px",this.saveLibrary(c.getTitle(),e,c,c.getMode(),!0,!0,function(){null!=p&&null!=p.parentNode&&(p.parentNode.removeChild(p),u.style.paddingRight=18*y.childNodes.length+"px")})):null==N&&(N=I.cloneNode(!1),N.setAttribute("src",Editor.saveImage),N.setAttribute("title",
mxResources.get("save")),y.insertBefore(N,y.firstChild),mxEvent.addListener(N,"click",mxUtils.bind(this,function(E){this.saveLibrary(c.getTitle(),e,c,c.getMode(),c.constructor==LocalLibrary,!0,function(){null==N||c.isModified()||(u.style.paddingRight=18*y.childNodes.length+"px",N.parentNode.removeChild(N),N=null)});mxEvent.consume(E)})),u.style.paddingRight=18*y.childNodes.length+"px")}),M=mxUtils.bind(this,function(G,E,P,T){G=t.cloneCells(mxUtils.sortCells(t.model.getTopmostCells(G)));for(var W=
-0;W<G.length;W++){var U=t.getCellGeometry(G[W]);null!=U&&U.translate(-E.x,-E.y)}C.appendChild(this.sidebar.createVertexTemplateFromCells(G,E.width,E.height,T||"",!0,null,!1));G={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(G))),w:E.width,h:E.height};null!=T&&(G.title=T);e.push(G);J(P);null!=m&&null!=m.parentNode&&0<e.length&&(m.parentNode.removeChild(m),m=null)}),H=mxUtils.bind(this,function(G){if(t.isSelectionEmpty())t.getRubberband().isActive()?(t.getRubberband().execute(G),t.getRubberband().reset()):
+0;W<G.length;W++){var U=t.getCellGeometry(G[W]);null!=U&&U.translate(-E.x,-E.y)}C.appendChild(this.sidebar.createVertexTemplateFromCells(G,E.width,E.height,T||"",!0,null,!1));G={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(G))),w:E.width,h:E.height};null!=T&&(G.title=T);e.push(G);J(P);null!=n&&null!=n.parentNode&&0<e.length&&(n.parentNode.removeChild(n),n=null)}),H=mxUtils.bind(this,function(G){if(t.isSelectionEmpty())t.getRubberband().isActive()?(t.getRubberband().execute(G),t.getRubberband().reset()):
this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var E=t.getSelectionCells(),P=t.view.getBounds(E),T=t.view.scale;P.x/=T;P.y/=T;P.width/=T;P.height/=T;P.x-=t.view.translate.x;P.y-=t.view.translate.y;M(E,P)}mxEvent.consume(G)});mxEvent.addGestureListeners(C,function(){},mxUtils.bind(this,function(G){t.isMouseDown&&null!=t.panningManager&&null!=t.graphHandler.first&&(t.graphHandler.suspend(),null!=t.graphHandler.hint&&(t.graphHandler.hint.style.visibility=
"hidden"),C.style.backgroundColor="#f1f3f4",C.style.cursor="copy",t.panningManager.stop(),t.autoScroll=!1,mxEvent.consume(G))}),mxUtils.bind(this,function(G){t.isMouseDown&&null!=t.panningManager&&null!=t.graphHandler&&(C.style.backgroundColor="",C.style.cursor="default",this.sidebar.showTooltips=!0,t.panningManager.stop(),t.graphHandler.reset(),t.isMouseDown=!1,t.autoScroll=!0,H(G),mxEvent.consume(G))}));mxEvent.addListener(C,"mouseleave",mxUtils.bind(this,function(G){t.isMouseDown&&null!=t.graphHandler.first&&
(t.graphHandler.resume(),null!=t.graphHandler.hint&&(t.graphHandler.hint.style.visibility="visible"),C.style.backgroundColor="",C.style.cursor="",t.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(C,"dragover",mxUtils.bind(this,function(G){C.style.backgroundColor="#f1f3f4";G.dataTransfer.dropEffect="copy";C.style.cursor="copy";this.sidebar.hideTooltip();G.stopPropagation();G.preventDefault()})),mxEvent.addListener(C,"drop",mxUtils.bind(this,function(G){C.style.cursor="";C.style.backgroundColor=
-"";0<G.dataTransfer.files.length&&this.importFiles(G.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(E,P,T,W,U,V,l,A,L){if(null!=E&&"image/"==P.substring(0,6))E="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(E),E=[new mxCell("",new mxGeometry(0,0,U,V),E)],E[0].vertex=!0,M(E,new mxRectangle(0,0,U,V),G,mxEvent.isAltDown(G)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=m&&null!=m.parentNode&&0<e.length&&
-(m.parentNode.removeChild(m),m=null);else{var Q=!1,O=mxUtils.bind(this,function(R,S){null!=R&&"application/pdf"==S&&(S=Editor.extractGraphModelFromPdf(R),null!=S&&0<S.length&&(R=S));if(null!=R)if(R=mxUtils.parseXml(R),"mxlibrary"==R.documentElement.nodeName)try{var X=JSON.parse(mxUtils.getTextContent(R.documentElement));z(X,C);e=e.concat(X);J(G);this.spinner.stop();Q=!0}catch(ca){}else if("mxfile"==R.documentElement.nodeName)try{var aa=R.documentElement.getElementsByTagName("diagram");for(X=0;X<aa.length;X++){var Y=
-this.stringToCells(Editor.getDiagramNodeXml(aa[X])),Z=this.editor.graph.getBoundingBoxFromGeometry(Y);M(Y,new mxRectangle(0,0,Z.width,Z.height),G)}Q=!0}catch(ca){null!=window.console&&console.log("error in drop handler:",ca)}Q||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=m&&null!=m.parentNode&&0<e.length&&(m.parentNode.removeChild(m),m=null)});null!=L&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?this.importVisio(L,function(R){O(R,
+"";0<G.dataTransfer.files.length&&this.importFiles(G.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(E,P,T,W,U,V,l,A,L){if(null!=E&&"image/"==P.substring(0,6))E="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(E),E=[new mxCell("",new mxGeometry(0,0,U,V),E)],E[0].vertex=!0,M(E,new mxRectangle(0,0,U,V),G,mxEvent.isAltDown(G)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=n&&null!=n.parentNode&&0<e.length&&
+(n.parentNode.removeChild(n),n=null);else{var Q=!1,O=mxUtils.bind(this,function(R,S){null!=R&&"application/pdf"==S&&(S=Editor.extractGraphModelFromPdf(R),null!=S&&0<S.length&&(R=S));if(null!=R)if(R=mxUtils.parseXml(R),"mxlibrary"==R.documentElement.nodeName)try{var X=JSON.parse(mxUtils.getTextContent(R.documentElement));z(X,C);e=e.concat(X);J(G);this.spinner.stop();Q=!0}catch(ca){}else if("mxfile"==R.documentElement.nodeName)try{var aa=R.documentElement.getElementsByTagName("diagram");for(X=0;X<aa.length;X++){var Y=
+this.stringToCells(Editor.getDiagramNodeXml(aa[X])),Z=this.editor.graph.getBoundingBoxFromGeometry(Y);M(Y,new mxRectangle(0,0,Z.width,Z.height),G)}Q=!0}catch(ca){null!=window.console&&console.log("error in drop handler:",ca)}Q||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=n&&null!=n.parentNode&&0<e.length&&(n.parentNode.removeChild(n),n=null)});null!=L&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?this.importVisio(L,function(R){O(R,
"text/xml")},null,l):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(E,l)&&null!=L?this.isExternalDataComms()?this.parseFile(L,mxUtils.bind(this,function(R){4==R.readyState&&(this.spinner.stop(),200<=R.status&&299>=R.status?O(R.responseText,"text/xml"):this.handleError({message:mxResources.get(413==R.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("notInOffline"))):O(E,P)}}));
G.stopPropagation();G.preventDefault()})),mxEvent.addListener(C,"dragleave",function(G){C.style.cursor="";C.style.backgroundColor="";G.stopPropagation();G.preventDefault()}));I=I.cloneNode(!1);I.setAttribute("src",Editor.editImage);I.setAttribute("title",mxResources.get("edit"));y.insertBefore(I,y.firstChild);mxEvent.addListener(I,"click",F);mxEvent.addListener(C,"dblclick",function(G){mxEvent.getSource(G)==C&&F(G)});q=I.cloneNode(!1);q.setAttribute("src",Editor.plusImage);q.setAttribute("title",
mxResources.get("add"));y.insertBefore(q,y.firstChild);mxEvent.addListener(q,"click",H);this.isOffline()||".scratchpad"!=c.title||null==EditorUi.scratchpadHelpLink||(q=document.createElement("span"),q.setAttribute("title",mxResources.get("help")),q.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(q,"?"),mxEvent.addGestureListeners(q,mxUtils.bind(this,function(G){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(G)})),y.insertBefore(q,y.firstChild))}u.appendChild(y);
-u.style.paddingRight=18*y.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(c,e){for(var g=0;g<c.length;g++){var q=c[g],n=q.data;if(null!=n){n=this.convertDataUri(n);var m="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==q.aspect&&(m+="aspect=fixed;");e.appendChild(this.sidebar.createVertexTemplate(m+"image="+n,q.w,q.h,"",q.title||"",!1,null,!0))}else null!=q.xml&&(n=this.stringToCells(Graph.decompress(q.xml)),0<n.length&&e.appendChild(this.sidebar.createVertexTemplateFromCells(n,
+u.style.paddingRight=18*y.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(c,e){for(var g=0;g<c.length;g++){var q=c[g],m=q.data;if(null!=m){m=this.convertDataUri(m);var n="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==q.aspect&&(n+="aspect=fixed;");e.appendChild(this.sidebar.createVertexTemplate(n+"image="+m,q.w,q.h,"",q.title||"",!1,null,!0))}else null!=q.xml&&(m=this.stringToCells(Graph.decompress(q.xml)),0<m.length&&e.appendChild(this.sidebar.createVertexTemplateFromCells(m,
q.w,q.h,q.title||"",!0,null,!0)))}};EditorUi.prototype.getResource=function(c){return null!=c?c[mxLanguage]||c.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground=
"rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.shapeBackgroundColor=Editor.darkColor,Graph.prototype.shapeForegroundColor=Editor.lightColor,Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultPageBorderColor=
"#505759",BaseFormatPanel.prototype.buttonBackgroundColor=Editor.darkColor,mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";Editor.sketchFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)}];"1"==urlParams.sketch&&("undefined"!==
typeof Menus&&(Menus.prototype.defaultFonts=Menus.prototype.defaultFonts.concat(Editor.sketchFonts)),Graph.prototype.defaultVertexStyle={hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled="1"==urlParams.grid,
-Graph.prototype.defaultPageVisible="1"==urlParams.pv,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(c,e,g,q,n,m,z){c=new ImageDialog(this,c,e,g,q,n,m,z);this.showDialog(c.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);c.init()};EditorUi.prototype.showBackgroundImageDialog=function(c,e){c=null!=c?c:mxUtils.bind(this,function(g,q){q||(g=new ChangePageSetup(this,null,g),
-g.ignoreColor=!0,this.editor.graph.model.execute(g))});c=new BackgroundImageDialog(this,c,e);this.showDialog(c.container,400,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(c,e,g,q,n){c=new LibraryDialog(this,c,e,g,q,n);this.showDialog(c.container,640,440,!0,!1,mxUtils.bind(this,function(m){m&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));c.init()};var k=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(c){var e=k.apply(this,arguments);
+Graph.prototype.defaultPageVisible="1"==urlParams.pv,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(c,e,g,q,m,n,z){c=new ImageDialog(this,c,e,g,q,m,n,z);this.showDialog(c.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);c.init()};EditorUi.prototype.showBackgroundImageDialog=function(c,e){c=null!=c?c:mxUtils.bind(this,function(g,q){q||(g=new ChangePageSetup(this,null,g),
+g.ignoreColor=!0,this.editor.graph.model.execute(g))});c=new BackgroundImageDialog(this,c,e);this.showDialog(c.container,400,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(c,e,g,q,m){c=new LibraryDialog(this,c,e,g,q,m);this.showDialog(c.container,640,440,!0,!1,mxUtils.bind(this,function(n){n&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));c.init()};var k=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(c){var e=k.apply(this,arguments);
this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(g){this.editor.graph.isSelectionEmpty()&&e.refresh()}));return e};EditorUi.prototype.createSidebarFooterContainer=function(){var c=this.createDiv("geSidebarContainer geSidebarFooter");c.style.position="absolute";c.style.overflow="hidden";var e=document.createElement("a");e.className="geTitle";e.style.color="#DF6C0C";e.style.fontWeight="bold";e.style.height="100%";e.style.paddingTop="9px";e.innerHTML="<span>+</span>";var g=
-e.getElementsByTagName("span")[0];g.style.fontSize="18px";g.style.marginRight="5px";mxUtils.write(e,mxResources.get("moreShapes")+"...");mxEvent.addListener(e,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(q){q.preventDefault()}));mxEvent.addListener(e,"click",mxUtils.bind(this,function(q){this.actions.get("shapes").funct();mxEvent.consume(q)}));c.appendChild(e);return c};EditorUi.prototype.handleError=function(c,e,g,q,n,m,z){var C=null!=this.spinner&&null!=this.spinner.pause?
+e.getElementsByTagName("span")[0];g.style.fontSize="18px";g.style.marginRight="5px";mxUtils.write(e,mxResources.get("moreShapes")+"...");mxEvent.addListener(e,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(q){q.preventDefault()}));mxEvent.addListener(e,"click",mxUtils.bind(this,function(q){this.actions.get("shapes").funct();mxEvent.consume(q)}));c.appendChild(e);return c};EditorUi.prototype.handleError=function(c,e,g,q,m,n,z){var C=null!=this.spinner&&null!=this.spinner.pause?
this.spinner.pause():function(){},u=null!=c&&null!=c.error?c.error:c;if(null!=c&&("1"==urlParams.test||null!=c.stack)&&null!=c.message)try{z?null!=window.console&&console.error("EditorUi.handleError:",c):EditorUi.logError("Caught: "+(""==c.message&&null!=c.name)?c.name:c.message,c.filename,c.lineNumber,c.columnNumber,c,"INFO")}catch(p){}if(null!=u||null!=e){z=mxUtils.htmlEntities(mxResources.get("unknownError"));var y=mxResources.get("ok"),I=null;e=null!=e?e:mxResources.get("error");if(null!=u){null!=
-u.retry&&(y=mxResources.get("cancel"),I=function(){C();u.retry()});if(404==u.code||404==u.status||403==u.code){z=403==u.code?null!=u.message?mxUtils.htmlEntities(u.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=n?n:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var N=null!=n?null:null!=m?m:window.location.hash;if(null!=N&&("#G"==N.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==
-N.substring(0,45))&&(null!=c&&null!=c.error&&(null!=c.error.errors&&0<c.error.errors.length&&"fileAccess"==c.error.errors[0].reason||null!=c.error.data&&0<c.error.data.length&&"fileAccess"==c.error.data[0].reason)||404==u.code||404==u.status)){N="#U"==N.substring(0,2)?N.substring(45,N.lastIndexOf("%26ex")):N.substring(2);this.showError(e,z,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+N);this.handleError(c,e,g,q,n)}),
+u.retry&&(y=mxResources.get("cancel"),I=function(){C();u.retry()});if(404==u.code||404==u.status||403==u.code){z=403==u.code?null!=u.message?mxUtils.htmlEntities(u.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=m?m:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var N=null!=m?null:null!=n?n:window.location.hash;if(null!=N&&("#G"==N.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==
+N.substring(0,45))&&(null!=c&&null!=c.error&&(null!=c.error.errors&&0<c.error.errors.length&&"fileAccess"==c.error.errors[0].reason||null!=c.error.data&&0<c.error.data.length&&"fileAccess"==c.error.data[0].reason)||404==u.code||404==u.status)){N="#U"==N.substring(0,2)?N.substring(45,N.lastIndexOf("%26ex")):N.substring(2);this.showError(e,z,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+N);this.handleError(c,e,g,q,m)}),
I,mxResources.get("changeUser"),mxUtils.bind(this,function(){function p(){H.innerText="";for(var G=0;G<F.length;G++){var E=document.createElement("option");mxUtils.write(E,F[G].displayName);E.value=G;H.appendChild(E);E=document.createElement("option");E.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(E,"<"+F[G].email+">");E.setAttribute("disabled","disabled");H.appendChild(E)}E=document.createElement("option");mxUtils.write(E,mxResources.get("addAccount"));E.value=F.length;H.appendChild(E)}var F=this.drive.getUsersList(),
J=document.createElement("div"),M=document.createElement("span");M.style.marginTop="6px";mxUtils.write(M,mxResources.get("changeUser")+": ");J.appendChild(M);var H=document.createElement("select");H.style.width="200px";p();mxEvent.addListener(H,"change",mxUtils.bind(this,function(){var G=H.value,E=F.length!=G;E&&this.drive.setUser(F[G]);this.drive.authorize(E,mxUtils.bind(this,function(){E||(F=this.drive.getUsersList(),p())}),mxUtils.bind(this,function(P){this.handleError(P)}),!0)}));J.appendChild(H);
J=new CustomDialog(this,J,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(J.container,300,100,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=g&&g()}),480,150);return}}null!=u.message?z=""==u.message&&null!=u.name?mxUtils.htmlEntities(u.name):mxUtils.htmlEntities(u.message):null!=u.response&&null!=u.response.error?z=mxUtils.htmlEntities(u.response.error):"undefined"!==typeof window.App&&(u.code==App.ERROR_TIMEOUT?
-z=mxUtils.htmlEntities(mxResources.get("timeout")):u.code==App.ERROR_BUSY?z=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof u&&0<u.length&&(z=mxUtils.htmlEntities(u)))}var t=m=null;null!=u&&null!=u.helpLink?(m=mxResources.get("help"),t=mxUtils.bind(this,function(){return this.editor.graph.openLink(u.helpLink)})):null!=u&&null!=u.ownerEmail&&(m=mxResources.get("contactOwner"),z+=mxUtils.htmlEntities(" ("+m+": "+u.ownerEmail+")"),t=mxUtils.bind(this,function(){return this.openLink("mailto:"+
-mxUtils.htmlEntities(u.ownerEmail))}));this.showError(e,z,y,g,I,null,null,m,t,null,null,null,q?g:null)}else null!=g&&g()};EditorUi.prototype.alert=function(c,e,g){c=new ErrorDialog(this,null,c,mxResources.get("ok"),e);this.showDialog(c.container,g||340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(c,e,g,q,n,m){var z=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},C=Math.min(200,28*Math.ceil(c.length/50));c=new ConfirmDialog(this,c,function(){z();null!=e&&
-e()},function(){z();null!=g&&g()},q,n,null,null,null,null,C);this.showDialog(c.container,340,46+C,!0,m);c.init()};EditorUi.prototype.showBanner=function(c,e,g,q){var n=!1;if(!(this.bannerShowing||this["hideBanner"+c]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+c])){var m=document.createElement("div");m.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+
-mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(m.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(m.style,"transition","all 1s ease");m.className="geBtn gePrimaryBtn";n=document.createElement("img");n.setAttribute("src",IMAGE_PATH+"/logo.png");n.setAttribute("border","0");n.setAttribute("align","absmiddle");n.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";m.appendChild(n);
-n=document.createElement("img");n.setAttribute("src",Dialog.prototype.closeImage);n.setAttribute("title",mxResources.get(q?"doNotShowAgain":"close"));n.setAttribute("border","0");n.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";m.appendChild(n);mxUtils.write(m,e);document.body.appendChild(m);this.bannerShowing=!0;e=document.createElement("div");e.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var z=document.createElement("input");
-z.setAttribute("type","checkbox");z.setAttribute("id","geDoNotShowAgainCheckbox");z.style.marginRight="6px";if(!q){e.appendChild(z);var C=document.createElement("label");C.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(C,mxResources.get("doNotShowAgain"));e.appendChild(C);m.style.paddingBottom="30px";m.appendChild(e)}var u=mxUtils.bind(this,function(){null!=m.parentNode&&(m.parentNode.removeChild(m),this.bannerShowing=!1,z.checked||q)&&(this["hideBanner"+c]=!0,isLocalStorage&&null!=
-mxSettings.settings&&(mxSettings.settings["close"+c]=Date.now(),mxSettings.save()))});mxEvent.addListener(n,"click",mxUtils.bind(this,function(I){mxEvent.consume(I);u()}));var y=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){u()}),1E3)});mxEvent.addListener(m,"click",mxUtils.bind(this,function(I){var N=mxEvent.getSource(I);N!=z&&N!=C?(null!=g&&g(),u(),mxEvent.consume(I)):y()}));window.setTimeout(mxUtils.bind(this,
-function(){mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(y,3E4);n=!0}return n};EditorUi.prototype.setCurrentFile=function(c){null!=c&&(c.opened=new Date);this.currentFile=c};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(c,e,g,q){c=c.toDataURL("image/"+g);if(null!=c&&6<c.length)null!=e&&(c=Editor.writeGraphModelToPng(c,
-"tEXt","mxfile",encodeURIComponent(e))),0<q&&(c=Editor.writeGraphModelToPng(c,"pHYs","dpi",q));else throw{message:mxResources.get("unknownError")};return c};EditorUi.prototype.saveCanvas=function(c,e,g,q,n){var m="jpeg"==g?"jpg":g;q=this.getBaseFilename(q)+(null!=e?".drawio":"")+"."+m;c=this.createImageDataUri(c,e,g,n);this.saveData(q,m,c.substring(c.lastIndexOf(",")+1),"image/"+g,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
-"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(c,e){c=new TextareaDialog(this,c,e,null,null,mxResources.get("close"));this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(c,e,g,q,n,m){"text/xml"!=g||/(\.drawio)$/i.test(e)||/(\.xml)$/i.test(e)||/(\.svg)$/i.test(e)||
-/(\.html)$/i.test(e)||(e=e+"."+(null!=m?m:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)c=q?this.base64ToBlob(c,g):new Blob([c],{type:g}),navigator.msSaveOrOpenBlob(c,e);else if(mxClient.IS_IE)g=window.open("about:blank","_blank"),null==g?mxUtils.popup(c,!0):(g.document.write(c),g.document.close(),g.document.execCommand("SaveAs",!0,e),g.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==g||"image/"!=g.substring(0,6)?this.showTextDialog(e+":",c):this.openInNewWindow(c,
-g,q);else{var z=document.createElement("a");m=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof z.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var C=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);m=65==(C?parseInt(C[2],10):!1)?!1:m}if(m||this.isOffline()){z.href=URL.createObjectURL(q?this.base64ToBlob(c,g):new Blob([c],{type:g}));m?z.download=e:z.setAttribute("target","_blank");document.body.appendChild(z);try{window.setTimeout(function(){URL.revokeObjectURL(z.href)},
-2E4),z.click(),z.parentNode.removeChild(z)}catch(u){}}else this.createEchoRequest(c,e,g,q,n).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(c,e,g,q,n,m){c="xml="+encodeURIComponent(c);return new mxXmlRequest(SAVE_URL,c+(null!=g?"&mime="+g:"")+(null!=n?"&format="+n:"")+(null!=m?"&base64="+m:"")+(null!=e?"&filename="+encodeURIComponent(e):"")+(q?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(c,e){e=e||"";c=atob(c);for(var g=c.length,q=Math.ceil(g/1024),n=Array(q),
-m=0;m<q;++m){for(var z=1024*m,C=Math.min(z+1024,g),u=Array(C-z),y=0;z<C;++y,++z)u[y]=c[z].charCodeAt(0);n[m]=new Uint8Array(u)}return new Blob(n,{type:e})};EditorUi.prototype.saveLocalFile=function(c,e,g,q,n,m,z,C){m=null!=m?m:!1;z=null!=z?z:"vsdx"!=n&&(!mxClient.IS_IOS||!navigator.standalone);n=this.getServiceCount(m);isLocalStorage&&n++;var u=4>=n?2:6<n?4:3;e=new CreateDialog(this,e,mxUtils.bind(this,function(y,I){try{if("_blank"==I)if(null!=g&&"image/"==g.substring(0,6))this.openInNewWindow(c,
+z=mxUtils.htmlEntities(mxResources.get("timeout")):u.code==App.ERROR_BUSY?z=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof u&&0<u.length&&(z=mxUtils.htmlEntities(u)))}var t=n=null;null!=u&&null!=u.helpLink?(n=mxResources.get("help"),t=mxUtils.bind(this,function(){return this.editor.graph.openLink(u.helpLink)})):null!=u&&null!=u.ownerEmail&&(n=mxResources.get("contactOwner"),z+=mxUtils.htmlEntities(" ("+n+": "+u.ownerEmail+")"),t=mxUtils.bind(this,function(){return this.openLink("mailto:"+
+mxUtils.htmlEntities(u.ownerEmail))}));this.showError(e,z,y,g,I,null,null,n,t,null,null,null,q?g:null)}else null!=g&&g()};EditorUi.prototype.alert=function(c,e,g){c=new ErrorDialog(this,null,c,mxResources.get("ok"),e);this.showDialog(c.container,g||340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(c,e,g,q,m,n){var z=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},C=Math.min(200,28*Math.ceil(c.length/50));c=new ConfirmDialog(this,c,function(){z();null!=e&&
+e()},function(){z();null!=g&&g()},q,m,null,null,null,null,C);this.showDialog(c.container,340,46+C,!0,n);c.init()};EditorUi.prototype.showBanner=function(c,e,g,q){var m=!1;if(!(this.bannerShowing||this["hideBanner"+c]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+c])){var n=document.createElement("div");n.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+
+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(n.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(n.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(n.style,"transition","all 1s ease");n.className="geBtn gePrimaryBtn";m=document.createElement("img");m.setAttribute("src",IMAGE_PATH+"/logo.png");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";n.appendChild(m);
+m=document.createElement("img");m.setAttribute("src",Dialog.prototype.closeImage);m.setAttribute("title",mxResources.get(q?"doNotShowAgain":"close"));m.setAttribute("border","0");m.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";n.appendChild(m);mxUtils.write(n,e);document.body.appendChild(n);this.bannerShowing=!0;e=document.createElement("div");e.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var z=document.createElement("input");
+z.setAttribute("type","checkbox");z.setAttribute("id","geDoNotShowAgainCheckbox");z.style.marginRight="6px";if(!q){e.appendChild(z);var C=document.createElement("label");C.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(C,mxResources.get("doNotShowAgain"));e.appendChild(C);n.style.paddingBottom="30px";n.appendChild(e)}var u=mxUtils.bind(this,function(){null!=n.parentNode&&(n.parentNode.removeChild(n),this.bannerShowing=!1,z.checked||q)&&(this["hideBanner"+c]=!0,isLocalStorage&&null!=
+mxSettings.settings&&(mxSettings.settings["close"+c]=Date.now(),mxSettings.save()))});mxEvent.addListener(m,"click",mxUtils.bind(this,function(I){mxEvent.consume(I);u()}));var y=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(n.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){u()}),1E3)});mxEvent.addListener(n,"click",mxUtils.bind(this,function(I){var N=mxEvent.getSource(I);N!=z&&N!=C?(null!=g&&g(),u(),mxEvent.consume(I)):y()}));window.setTimeout(mxUtils.bind(this,
+function(){mxUtils.setPrefixedStyle(n.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(y,3E4);m=!0}return m};EditorUi.prototype.setCurrentFile=function(c){null!=c&&(c.opened=new Date);this.currentFile=c};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(c,e,g,q){c=c.toDataURL("image/"+g);if(null!=c&&6<c.length)null!=e&&(c=Editor.writeGraphModelToPng(c,
+"tEXt","mxfile",encodeURIComponent(e))),0<q&&(c=Editor.writeGraphModelToPng(c,"pHYs","dpi",q));else throw{message:mxResources.get("unknownError")};return c};EditorUi.prototype.saveCanvas=function(c,e,g,q,m){var n="jpeg"==g?"jpg":g;q=this.getBaseFilename(q)+(null!=e?".drawio":"")+"."+n;c=this.createImageDataUri(c,e,g,m);this.saveData(q,n,c.substring(c.lastIndexOf(",")+1),"image/"+g,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
+"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(c,e){c=new TextareaDialog(this,c,e,null,null,mxResources.get("close"));this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(c,e,g,q,m,n){"text/xml"!=g||/(\.drawio)$/i.test(e)||/(\.xml)$/i.test(e)||/(\.svg)$/i.test(e)||
+/(\.html)$/i.test(e)||(e=e+"."+(null!=n?n:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)c=q?this.base64ToBlob(c,g):new Blob([c],{type:g}),navigator.msSaveOrOpenBlob(c,e);else if(mxClient.IS_IE)g=window.open("about:blank","_blank"),null==g?mxUtils.popup(c,!0):(g.document.write(c),g.document.close(),g.document.execCommand("SaveAs",!0,e),g.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==g||"image/"!=g.substring(0,6)?this.showTextDialog(e+":",c):this.openInNewWindow(c,
+g,q);else{var z=document.createElement("a");n=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof z.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var C=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);n=65==(C?parseInt(C[2],10):!1)?!1:n}if(n||this.isOffline()){z.href=URL.createObjectURL(q?this.base64ToBlob(c,g):new Blob([c],{type:g}));n?z.download=e:z.setAttribute("target","_blank");document.body.appendChild(z);try{window.setTimeout(function(){URL.revokeObjectURL(z.href)},
+2E4),z.click(),z.parentNode.removeChild(z)}catch(u){}}else this.createEchoRequest(c,e,g,q,m).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(c,e,g,q,m,n){c="xml="+encodeURIComponent(c);return new mxXmlRequest(SAVE_URL,c+(null!=g?"&mime="+g:"")+(null!=m?"&format="+m:"")+(null!=n?"&base64="+n:"")+(null!=e?"&filename="+encodeURIComponent(e):"")+(q?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(c,e){e=e||"";c=atob(c);for(var g=c.length,q=Math.ceil(g/1024),m=Array(q),
+n=0;n<q;++n){for(var z=1024*n,C=Math.min(z+1024,g),u=Array(C-z),y=0;z<C;++y,++z)u[y]=c[z].charCodeAt(0);m[n]=new Uint8Array(u)}return new Blob(m,{type:e})};EditorUi.prototype.saveLocalFile=function(c,e,g,q,m,n,z,C){n=null!=n?n:!1;z=null!=z?z:"vsdx"!=m&&(!mxClient.IS_IOS||!navigator.standalone);m=this.getServiceCount(n);isLocalStorage&&m++;var u=4>=m?2:6<m?4:3;e=new CreateDialog(this,e,mxUtils.bind(this,function(y,I){try{if("_blank"==I)if(null!=g&&"image/"==g.substring(0,6))this.openInNewWindow(c,
g,q);else if(null!=g&&"text/html"==g.substring(0,9)){var N=new EmbedDialog(this,c);this.showDialog(N.container,450,240,!0,!0);N.init()}else{var t=window.open("about:blank");null==t?mxUtils.popup(c,!0):(t.document.write("<pre>"+mxUtils.htmlEntities(c,!1)+"</pre>"),t.document.close())}else I==App.MODE_DEVICE||"download"==I?this.doSaveLocalFile(c,y,g,q,null,C):null!=y&&0<y.length&&this.pickFolder(I,mxUtils.bind(this,function(p){try{this.exportFile(c,y,g,q,I,p)}catch(F){this.handleError(F)}}))}catch(p){this.handleError(p)}}),
-mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,z,null,1<n,u,c,g,q);m=this.isServices(n)?n>u?390:280:160;this.showDialog(e.container,420,m,!0,!0);e.init()};EditorUi.prototype.openInNewWindow=function(c,e,g){var q=window.open("about:blank");null==q||null==q.document?mxUtils.popup(c,!0):("image/svg+xml"!=e||mxClient.IS_SVG?"image/svg+xml"!=e||g?(c=g?c:btoa(unescape(encodeURIComponent(c))),q.document.write('<html><img style="max-width:100%;" src="data:'+
+mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,n,z,null,1<m,u,c,g,q);n=this.isServices(m)?m>u?390:280:160;this.showDialog(e.container,420,n,!0,!0);e.init()};EditorUi.prototype.openInNewWindow=function(c,e,g){var q=window.open("about:blank");null==q||null==q.document?mxUtils.popup(c,!0):("image/svg+xml"!=e||mxClient.IS_SVG?"image/svg+xml"!=e||g?(c=g?c:btoa(unescape(encodeURIComponent(c))),q.document.write('<html><img style="max-width:100%;" src="data:'+
e+";base64,"+c+'"/></html>')):q.document.write("<html>"+c+"</html>"):q.document.write("<html><pre>"+mxUtils.htmlEntities(c,!1)+"</pre></html>"),q.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(c){if(null!=urlParams.tags){this.tagsDialog=
this.tagsComponent=null;var e=c(mxUtils.bind(this,function(q){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position="",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding=
"4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor="#ffffff",this.tagsComponent.div.style.border="2px solid black",this.tagsComponent.div.style.color="#000000"):(this.tagsComponent.div.style.backgroundColor="#000000",this.tagsComponent.div.style.color="#ffffff",mxUtils.setOpacity(this.tagsComponent.div,
-80)));if(null!=this.tagsDialog)this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null;else{this.tagsDialog=this.tagsComponent.div;mxEvent.addListener(this.tagsDialog,"mouseleave",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null)}));var n=e.getBoundingClientRect();this.tagsDialog.style.left=n.left+"px";this.tagsDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+
-4+"px";n=mxUtils.getCurrentStyle(this.editor.graph.container);this.tagsDialog.style.zIndex=n.zIndex;document.body.appendChild(this.tagsDialog);this.tagsComponent.refresh();this.editor.fireEvent(new mxEventObject("tagsDialogShown"))}mxEvent.consume(q)}),Editor.tagsImage,mxResources.get("tags"));this.editor.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var q=this.editor.graph.getAllTags();e.style.display=0<q.length?"":"none"}))}d.apply(this,arguments);this.editor.addListener("tagsDialogShown",
+80)));if(null!=this.tagsDialog)this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null;else{this.tagsDialog=this.tagsComponent.div;mxEvent.addListener(this.tagsDialog,"mouseleave",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null)}));var m=e.getBoundingClientRect();this.tagsDialog.style.left=m.left+"px";this.tagsDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+
+4+"px";m=mxUtils.getCurrentStyle(this.editor.graph.container);this.tagsDialog.style.zIndex=m.zIndex;document.body.appendChild(this.tagsDialog);this.tagsComponent.refresh();this.editor.fireEvent(new mxEventObject("tagsDialogShown"))}mxEvent.consume(q)}),Editor.tagsImage,mxResources.get("tags"));this.editor.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var q=this.editor.graph.getAllTags();e.style.display=0<q.length?"":"none"}))}d.apply(this,arguments);this.editor.addListener("tagsDialogShown",
mxUtils.bind(this,function(){null!=this.layersDialog&&(this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null)}));this.editor.addListener("layersDialogShown",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null)}));this.editor.addListener("pageSelected",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null);null!=this.layersDialog&&
(this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null)}));mxEvent.addListener(this.editor.graph.container,"click",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null);null!=this.layersDialog&&(this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null)}));if(this.isExportToCanvas()&&this.isChromelessImageExportEnabled()){this.exportDialog=null;var g=c(mxUtils.bind(this,
-function(q){var n=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",n);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)n.apply(this);else{this.exportDialog=document.createElement("div");var m=g.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";
-this.exportDialog.style.fontFamily=Editor.defaultHtmlFont;this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=m.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";m=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.exportDialog.style.zIndex=m.zIndex;var z=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});z.spin(this.exportDialog);this.editor.exportToCanvas(mxUtils.bind(this,function(C){z.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var u=this.createImageDataUri(C,null,"png");C=document.createElement("img");C.style.maxWidth="140px";C.style.maxHeight=
-"140px";C.style.cursor="pointer";C.style.backgroundColor="white";C.setAttribute("title",mxResources.get("openInNewWindow"));C.setAttribute("border","0");C.setAttribute("src",u);this.exportDialog.appendChild(C);mxEvent.addListener(C,"click",mxUtils.bind(this,function(){this.openInNewWindow(u.substring(u.indexOf(",")+1),"image/png",!0);n.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(C){this.spinner.stop();this.handleError(C)}),null,null,null,null,null,null,null,
-Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",n);document.body.appendChild(this.exportDialog)}mxEvent.consume(q)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(c,e,g,q,n){this.isLocalFileSave()?this.saveLocalFile(g,c,q,n,e):this.saveRequest(c,e,mxUtils.bind(this,function(m,z){return this.createEchoRequest(g,m,q,n,e,z)}),g,n,q)};EditorUi.prototype.saveRequest=function(c,e,g,q,n,m,z){z=null!=z?z:!mxClient.IS_IOS||!navigator.standalone;
-var C=this.getServiceCount(!1);isLocalStorage&&C++;var u=4>=C?2:6<C?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(y,I){if("_blank"==I||null!=y&&0<y.length){var N=g("_blank"==I?null:y,I==App.MODE_DEVICE||"download"==I||null==I||"_blank"==I?"0":"1");null!=N&&(I==App.MODE_DEVICE||"download"==I||"_blank"==I?N.simulate(document,"_blank"):this.pickFolder(I,mxUtils.bind(this,function(t){m=null!=m?m:"pdf"==e?"application/pdf":"image/"+e;if(null!=q)try{this.exportFile(q,y,m,!0,I,t)}catch(p){this.handleError(p)}else this.spinner.spin(document.body,
-mxResources.get("saving"))&&N.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=N.getStatus()&&299>=N.getStatus())try{this.exportFile(N.getText(),y,m,!0,I,t)}catch(p){this.handleError(p)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(p){this.spinner.stop();this.handleError(p)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,z,null,1<C,u,q,m,n);C=this.isServices(C)?4<C?390:280:160;this.showDialog(c.container,
-420,C,!0,!0);c.init()};EditorUi.prototype.isServices=function(c){return 1!=c};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(c,e,g,q,n,m){};EditorUi.prototype.pickFolder=function(c,e,g){e(null)};EditorUi.prototype.exportSvg=function(c,e,g,q,n,m,z,C,u,y,I,N,t,p){if(this.spinner.spin(document.body,mxResources.get("export")))try{var F=this.editor.graph.isSelectionEmpty();g=null!=g?g:F;var J=e?null:this.editor.graph.background;J==mxConstants.NONE&&
-(J=null);null==J&&0==e&&(J=I?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var M=this.editor.graph.getSvg(J,c,z,C,null,g,null,null,"blank"==y?"_blank":"self"==y?"_top":null,null,!t,I,N);q&&this.editor.graph.addSvgShadow(M);var H=this.getBaseFilename()+(n?".drawio":"")+".svg";p=null!=p?p:mxUtils.bind(this,function(P){this.isLocalFileSave()||P.length<=MAX_REQUEST_SIZE?this.saveData(H,"svg",P,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
-mxUtils.bind(this,function(){mxUtils.popup(P)}))});var G=mxUtils.bind(this,function(P){this.spinner.stop();n&&P.setAttribute("content",this.getFileData(!0,null,null,null,g,u,null,null,null,!1));p(Graph.xmlDeclaration+"\n"+(n?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(P))});this.editor.graph.mathEnabled&&this.editor.addMathCss(M);var E=mxUtils.bind(this,function(P){m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(P,G,this.thumbImageCache)):
-G(P)});t?this.embedFonts(M,E):(this.editor.addFontCss(M),E(M))}catch(P){this.handleError(P)}};EditorUi.prototype.addRadiobox=function(c,e,g,q,n,m,z){return this.addCheckbox(c,g,q,n,m,z,!0,e)};EditorUi.prototype.addCheckbox=function(c,e,g,q,n,m,z,C){m=null!=m?m:!0;var u=document.createElement("input");u.style.marginRight="8px";u.style.marginTop="16px";u.setAttribute("type",z?"radio":"checkbox");z="geCheckbox-"+Editor.guid();u.id=z;null!=C&&u.setAttribute("name",C);g&&(u.setAttribute("checked","checked"),
-u.defaultChecked=!0);q&&u.setAttribute("disabled","disabled");m&&(c.appendChild(u),g=document.createElement("label"),mxUtils.write(g,e),g.setAttribute("for",z),c.appendChild(g),n||mxUtils.br(c));return u};EditorUi.prototype.addEditButton=function(c,e){var g=this.addCheckbox(c,mxResources.get("edit")+":",!0,null,!0);g.style.marginLeft="24px";var q=this.getCurrentFile(),n="";null!=q&&q.getMode()!=App.MODE_DEVICE&&q.getMode()!=App.MODE_BROWSER&&(n=window.location.href);var m=document.createElement("select");
-m.style.maxWidth="200px";m.style.width="auto";m.style.marginLeft="8px";m.style.marginRight="10px";m.className="geBtn";q=document.createElement("option");q.setAttribute("value","blank");mxUtils.write(q,mxResources.get("makeCopy"));m.appendChild(q);q=document.createElement("option");q.setAttribute("value","custom");mxUtils.write(q,mxResources.get("custom")+"...");m.appendChild(q);c.appendChild(m);mxEvent.addListener(m,"change",mxUtils.bind(this,function(){if("custom"==m.value){var z=new FilenameDialog(this,
-n,mxResources.get("ok"),function(C){null!=C?n=C:m.value="blank"},mxResources.get("url"),null,null,null,null,function(){m.value="blank"});this.showDialog(z.container,300,80,!0,!1);z.init()}}));mxEvent.addListener(g,"change",mxUtils.bind(this,function(){g.checked&&(null==e||e.checked)?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled")}));mxUtils.br(c);return{getLink:function(){return g.checked?"blank"===m.value?"_blank":n:null},getEditInput:function(){return g},getEditSelect:function(){return m}}};
-EditorUi.prototype.addLinkSection=function(c,e){function g(){var C=document.createElement("div");C.style.width="100%";C.style.height="100%";C.style.boxSizing="border-box";null!=m&&m!=mxConstants.NONE?(C.style.border="1px solid black",C.style.backgroundColor=m):(C.style.backgroundPosition="center center",C.style.backgroundRepeat="no-repeat",C.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')");z.innerText="";z.appendChild(C)}mxUtils.write(c,mxResources.get("links")+":");var q=document.createElement("select");
-q.style.width="100px";q.style.padding="0px";q.style.marginLeft="8px";q.style.marginRight="10px";q.className="geBtn";var n=document.createElement("option");n.setAttribute("value","auto");mxUtils.write(n,mxResources.get("automatic"));q.appendChild(n);n=document.createElement("option");n.setAttribute("value","blank");mxUtils.write(n,mxResources.get("openInNewWindow"));q.appendChild(n);n=document.createElement("option");n.setAttribute("value","self");mxUtils.write(n,mxResources.get("openInThisWindow"));
-q.appendChild(n);e&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),q.appendChild(e));c.appendChild(q);mxUtils.write(c,mxResources.get("borderColor")+":");var m="#0000ff",z=null;z=mxUtils.button("",mxUtils.bind(this,function(C){this.pickColor(m||"none",function(u){m=u;g()});mxEvent.consume(C)}));g();z.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";z.style.marginLeft="4px";z.style.height=
-"22px";z.style.width="22px";z.style.position="relative";z.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";z.className="geColorBtn";c.appendChild(z);mxUtils.br(c);return{getColor:function(){return m},getTarget:function(){return q.value},focus:function(){q.focus()}}};EditorUi.prototype.createUrlParameters=function(c,e,g,q,n,m,z){z=null!=z?z:[];q&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||z.push("lightbox=1"),"auto"!=c&&z.push("target="+c),null!=
-e&&e!=mxConstants.NONE&&z.push("highlight="+("#"==e.charAt(0)?e.substring(1):e)),null!=n&&0<n.length&&z.push("edit="+encodeURIComponent(n)),m&&z.push("layers=1"),this.editor.graph.foldingEnabled&&z.push("nav=1"));g&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&z.push("page-id="+this.currentPage.getId());return z};EditorUi.prototype.createLink=function(c,e,g,q,n,m,z,C,u,y){u=this.createUrlParameters(c,e,g,q,n,m,u);c=this.getCurrentFile();e=!0;null!=z?g="#U"+encodeURIComponent(z):
+function(q){var m=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",m);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)m.apply(this);else{this.exportDialog=document.createElement("div");var n=g.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";
+this.exportDialog.style.fontFamily=Editor.defaultHtmlFont;this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=n.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";n=mxUtils.getCurrentStyle(this.editor.graph.container);
+this.exportDialog.style.zIndex=n.zIndex;var z=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});z.spin(this.exportDialog);this.editor.exportToCanvas(mxUtils.bind(this,function(C){z.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var u=this.createImageDataUri(C,null,"png");C=document.createElement("img");C.style.maxWidth="140px";C.style.maxHeight=
+"140px";C.style.cursor="pointer";C.style.backgroundColor="white";C.setAttribute("title",mxResources.get("openInNewWindow"));C.setAttribute("border","0");C.setAttribute("src",u);this.exportDialog.appendChild(C);mxEvent.addListener(C,"click",mxUtils.bind(this,function(){this.openInNewWindow(u.substring(u.indexOf(",")+1),"image/png",!0);m.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(C){this.spinner.stop();this.handleError(C)}),null,null,null,null,null,null,null,
+Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",m);document.body.appendChild(this.exportDialog)}mxEvent.consume(q)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(c,e,g,q,m){this.isLocalFileSave()?this.saveLocalFile(g,c,q,m,e):this.saveRequest(c,e,mxUtils.bind(this,function(n,z){return this.createEchoRequest(g,n,q,m,e,z)}),g,m,q)};EditorUi.prototype.saveRequest=function(c,e,g,q,m,n,z){z=null!=z?z:!mxClient.IS_IOS||!navigator.standalone;
+var C=this.getServiceCount(!1);isLocalStorage&&C++;var u=4>=C?2:6<C?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(y,I){if("_blank"==I||null!=y&&0<y.length){var N=g("_blank"==I?null:y,I==App.MODE_DEVICE||"download"==I||null==I||"_blank"==I?"0":"1");null!=N&&(I==App.MODE_DEVICE||"download"==I||"_blank"==I?N.simulate(document,"_blank"):this.pickFolder(I,mxUtils.bind(this,function(t){n=null!=n?n:"pdf"==e?"application/pdf":"image/"+e;if(null!=q)try{this.exportFile(q,y,n,!0,I,t)}catch(p){this.handleError(p)}else this.spinner.spin(document.body,
+mxResources.get("saving"))&&N.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=N.getStatus()&&299>=N.getStatus())try{this.exportFile(N.getText(),y,n,!0,I,t)}catch(p){this.handleError(p)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(p){this.spinner.stop();this.handleError(p)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,z,null,1<C,u,q,n,m);C=this.isServices(C)?4<C?390:280:160;this.showDialog(c.container,
+420,C,!0,!0);c.init()};EditorUi.prototype.isServices=function(c){return 1!=c};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(c,e,g,q,m,n){};EditorUi.prototype.pickFolder=function(c,e,g){e(null)};EditorUi.prototype.exportSvg=function(c,e,g,q,m,n,z,C,u,y,I,N,t,p){if(this.spinner.spin(document.body,mxResources.get("export")))try{var F=this.editor.graph.isSelectionEmpty();g=null!=g?g:F;var J=e?null:this.editor.graph.background;J==mxConstants.NONE&&
+(J=null);null==J&&0==e&&(J=I?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var M=this.editor.graph.getSvg(J,c,z,C,null,g,null,null,"blank"==y?"_blank":"self"==y?"_top":null,null,!t,I,N);q&&this.editor.graph.addSvgShadow(M);var H=this.getBaseFilename()+(m?".drawio":"")+".svg";p=null!=p?p:mxUtils.bind(this,function(P){this.isLocalFileSave()||P.length<=MAX_REQUEST_SIZE?this.saveData(H,"svg",P,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
+mxUtils.bind(this,function(){mxUtils.popup(P)}))});var G=mxUtils.bind(this,function(P){this.spinner.stop();m&&P.setAttribute("content",this.getFileData(!0,null,null,null,g,u,null,null,null,!1));p(Graph.xmlDeclaration+"\n"+(m?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(P))});this.editor.graph.mathEnabled&&this.editor.addMathCss(M);var E=mxUtils.bind(this,function(P){n?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(P,G,this.thumbImageCache)):
+G(P)});t?this.embedFonts(M,E):(this.editor.addFontCss(M),E(M))}catch(P){this.handleError(P)}};EditorUi.prototype.addRadiobox=function(c,e,g,q,m,n,z){return this.addCheckbox(c,g,q,m,n,z,!0,e)};EditorUi.prototype.addCheckbox=function(c,e,g,q,m,n,z,C){n=null!=n?n:!0;var u=document.createElement("input");u.style.marginRight="8px";u.style.marginTop="16px";u.setAttribute("type",z?"radio":"checkbox");z="geCheckbox-"+Editor.guid();u.id=z;null!=C&&u.setAttribute("name",C);g&&(u.setAttribute("checked","checked"),
+u.defaultChecked=!0);q&&u.setAttribute("disabled","disabled");n&&(c.appendChild(u),g=document.createElement("label"),mxUtils.write(g,e),g.setAttribute("for",z),c.appendChild(g),m||mxUtils.br(c));return u};EditorUi.prototype.addEditButton=function(c,e){var g=this.addCheckbox(c,mxResources.get("edit")+":",!0,null,!0);g.style.marginLeft="24px";var q=this.getCurrentFile(),m="";null!=q&&q.getMode()!=App.MODE_DEVICE&&q.getMode()!=App.MODE_BROWSER&&(m=window.location.href);var n=document.createElement("select");
+n.style.maxWidth="200px";n.style.width="auto";n.style.marginLeft="8px";n.style.marginRight="10px";n.className="geBtn";q=document.createElement("option");q.setAttribute("value","blank");mxUtils.write(q,mxResources.get("makeCopy"));n.appendChild(q);q=document.createElement("option");q.setAttribute("value","custom");mxUtils.write(q,mxResources.get("custom")+"...");n.appendChild(q);c.appendChild(n);mxEvent.addListener(n,"change",mxUtils.bind(this,function(){if("custom"==n.value){var z=new FilenameDialog(this,
+m,mxResources.get("ok"),function(C){null!=C?m=C:n.value="blank"},mxResources.get("url"),null,null,null,null,function(){n.value="blank"});this.showDialog(z.container,300,80,!0,!1);z.init()}}));mxEvent.addListener(g,"change",mxUtils.bind(this,function(){g.checked&&(null==e||e.checked)?n.removeAttribute("disabled"):n.setAttribute("disabled","disabled")}));mxUtils.br(c);return{getLink:function(){return g.checked?"blank"===n.value?"_blank":m:null},getEditInput:function(){return g},getEditSelect:function(){return n}}};
+EditorUi.prototype.addLinkSection=function(c,e){function g(){var C=document.createElement("div");C.style.width="100%";C.style.height="100%";C.style.boxSizing="border-box";null!=n&&n!=mxConstants.NONE?(C.style.border="1px solid black",C.style.backgroundColor=n):(C.style.backgroundPosition="center center",C.style.backgroundRepeat="no-repeat",C.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')");z.innerText="";z.appendChild(C)}mxUtils.write(c,mxResources.get("links")+":");var q=document.createElement("select");
+q.style.width="100px";q.style.padding="0px";q.style.marginLeft="8px";q.style.marginRight="10px";q.className="geBtn";var m=document.createElement("option");m.setAttribute("value","auto");mxUtils.write(m,mxResources.get("automatic"));q.appendChild(m);m=document.createElement("option");m.setAttribute("value","blank");mxUtils.write(m,mxResources.get("openInNewWindow"));q.appendChild(m);m=document.createElement("option");m.setAttribute("value","self");mxUtils.write(m,mxResources.get("openInThisWindow"));
+q.appendChild(m);e&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),q.appendChild(e));c.appendChild(q);mxUtils.write(c,mxResources.get("borderColor")+":");var n="#0000ff",z=null;z=mxUtils.button("",mxUtils.bind(this,function(C){this.pickColor(n||"none",function(u){n=u;g()});mxEvent.consume(C)}));g();z.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";z.style.marginLeft="4px";z.style.height=
+"22px";z.style.width="22px";z.style.position="relative";z.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";z.className="geColorBtn";c.appendChild(z);mxUtils.br(c);return{getColor:function(){return n},getTarget:function(){return q.value},focus:function(){q.focus()}}};EditorUi.prototype.createUrlParameters=function(c,e,g,q,m,n,z){z=null!=z?z:[];q&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||z.push("lightbox=1"),"auto"!=c&&z.push("target="+c),null!=
+e&&e!=mxConstants.NONE&&z.push("highlight="+("#"==e.charAt(0)?e.substring(1):e)),null!=m&&0<m.length&&z.push("edit="+encodeURIComponent(m)),n&&z.push("layers=1"),this.editor.graph.foldingEnabled&&z.push("nav=1"));g&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&z.push("page-id="+this.currentPage.getId());return z};EditorUi.prototype.createLink=function(c,e,g,q,m,n,z,C,u,y){u=this.createUrlParameters(c,e,g,q,m,n,u);c=this.getCurrentFile();e=!0;null!=z?g="#U"+encodeURIComponent(z):
(c=this.getCurrentFile(),C||null==c||c.constructor!=window.DriveFile?g="#R"+encodeURIComponent(g?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(g="#"+c.getHash(),e=!1));e&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(c.getTitle()));y&&1<g.length&&(u.push("open="+g.substring(1)),g="");return(q&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+g};EditorUi.prototype.createHtml=function(c,e,g,q,n,m,z,C,u,y,I,N){this.getBasenames();var t={};""!=n&&n!=mxConstants.NONE&&(t.highlight=n);"auto"!==q&&(t.target=q);y||(t.lightbox=!1);t.nav=this.editor.graph.foldingEnabled;g=parseInt(g);isNaN(g)||100==g||(t.zoom=g/100);g=[];z&&(g.push("pages"),t.resize=!0,null!=this.pages&&null!=this.currentPage&&(t.page=mxUtils.indexOf(this.pages,
-this.currentPage)));e&&(g.push("zoom"),t.resize=!0);C&&g.push("layers");u&&g.push("tags");0<g.length&&(y&&g.push("lightbox"),t.toolbar=g.join(" "));null!=I&&0<I.length&&(t.edit=I);null!=c?t.url=c:t.xml=this.getFileData(!0,null,null,null,null,!z);e='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=g?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(t))+'"></div>';c=null!=c?"&fetch="+encodeURIComponent(c):"";N(e,'<script type="text/javascript" src="'+
-(0<c.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+c:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(c,e,g,q){var n=document.createElement("div");n.style.whiteSpace="nowrap";var m=document.createElement("h3");mxUtils.write(m,mxResources.get("html"));m.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";n.appendChild(m);var z=document.createElement("div");z.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var C=document.createElement("input");C.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";C.setAttribute("value","url");C.setAttribute("type","radio");C.setAttribute("name","type-embedhtmldialog");m=C.cloneNode(!0);m.setAttribute("value","copy");z.appendChild(m);var u=document.createElement("span");
+!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+g};EditorUi.prototype.createHtml=function(c,e,g,q,m,n,z,C,u,y,I,N){this.getBasenames();var t={};""!=m&&m!=mxConstants.NONE&&(t.highlight=m);"auto"!==q&&(t.target=q);y||(t.lightbox=!1);t.nav=this.editor.graph.foldingEnabled;g=parseInt(g);isNaN(g)||100==g||(t.zoom=g/100);g=[];z&&(g.push("pages"),t.resize=!0,null!=this.pages&&null!=this.currentPage&&(t.page=mxUtils.indexOf(this.pages,
+this.currentPage)));e&&(g.push("zoom"),t.resize=!0);C&&g.push("layers");u&&g.push("tags");0<g.length&&(y&&g.push("lightbox"),t.toolbar=g.join(" "));null!=I&&0<I.length&&(t.edit=I);null!=c?t.url=c:t.xml=this.getFileData(!0,null,null,null,null,!z);e='<div class="mxgraph" style="'+(n?"max-width:100%;":"")+(""!=g?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(t))+'"></div>';c=null!=c?"&fetch="+encodeURIComponent(c):"";N(e,'<script type="text/javascript" src="'+
+(0<c.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+c:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(c,e,g,q){var m=document.createElement("div");m.style.whiteSpace="nowrap";var n=document.createElement("h3");mxUtils.write(n,mxResources.get("html"));n.style.cssText=
+"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";m.appendChild(n);var z=document.createElement("div");z.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var C=document.createElement("input");C.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";C.setAttribute("value","url");C.setAttribute("type","radio");C.setAttribute("name","type-embedhtmldialog");n=C.cloneNode(!0);n.setAttribute("value","copy");z.appendChild(n);var u=document.createElement("span");
mxUtils.write(u,mxResources.get("includeCopyOfMyDiagram"));z.appendChild(u);mxUtils.br(z);z.appendChild(C);u=document.createElement("span");mxUtils.write(u,mxResources.get("publicDiagramUrl"));z.appendChild(u);var y=this.getCurrentFile();null==g&&null!=y&&y.constructor==window.DriveFile&&(u=document.createElement("a"),u.style.paddingLeft="12px",u.style.color="gray",u.style.cursor="pointer",mxUtils.write(u,mxResources.get("share")),z.appendChild(u),mxEvent.addListener(u,"click",mxUtils.bind(this,function(){this.hideDialog();
-this.drive.showPermissions(y.getId())})));m.setAttribute("checked","checked");null==g&&C.setAttribute("disabled","disabled");n.appendChild(z);var I=this.addLinkSection(n),N=this.addCheckbox(n,mxResources.get("zoom"),!0,null,!0);mxUtils.write(n,":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value="100%";n.appendChild(t);var p=this.addCheckbox(n,mxResources.get("fit"),!0);
-z=null!=this.pages&&1<this.pages.length;var F=F=this.addCheckbox(n,mxResources.get("allPages"),z,!z),J=this.addCheckbox(n,mxResources.get("layers"),!0),M=this.addCheckbox(n,mxResources.get("tags"),!0),H=this.addCheckbox(n,mxResources.get("lightbox"),!0),G=null;z=380;if(EditorUi.enableHtmlEditOption){G=this.addEditButton(n,H);var E=G.getEditInput();E.style.marginBottom="16px";z+=50;mxEvent.addListener(H,"change",function(){H.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled");
-E.checked&&H.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")})}c=new CustomDialog(this,n,mxUtils.bind(this,function(){q(C.checked?g:null,N.checked,t.value,I.getTarget(),I.getColor(),p.checked,F.checked,J.checked,M.checked,H.checked,null!=G?G.getLink():null)}),null,c,e);this.showDialog(c.container,340,z,!0,!0);m.focus()};EditorUi.prototype.showPublishLinkDialog=function(c,e,g,q,n,m,z,C){var u=document.createElement("div");u.style.whiteSpace=
+this.drive.showPermissions(y.getId())})));n.setAttribute("checked","checked");null==g&&C.setAttribute("disabled","disabled");m.appendChild(z);var I=this.addLinkSection(m),N=this.addCheckbox(m,mxResources.get("zoom"),!0,null,!0);mxUtils.write(m,":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value="100%";m.appendChild(t);var p=this.addCheckbox(m,mxResources.get("fit"),!0);
+z=null!=this.pages&&1<this.pages.length;var F=F=this.addCheckbox(m,mxResources.get("allPages"),z,!z),J=this.addCheckbox(m,mxResources.get("layers"),!0),M=this.addCheckbox(m,mxResources.get("tags"),!0),H=this.addCheckbox(m,mxResources.get("lightbox"),!0),G=null;z=380;if(EditorUi.enableHtmlEditOption){G=this.addEditButton(m,H);var E=G.getEditInput();E.style.marginBottom="16px";z+=50;mxEvent.addListener(H,"change",function(){H.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled");
+E.checked&&H.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")})}c=new CustomDialog(this,m,mxUtils.bind(this,function(){q(C.checked?g:null,N.checked,t.value,I.getTarget(),I.getColor(),p.checked,F.checked,J.checked,M.checked,H.checked,null!=G?G.getLink():null)}),null,c,e);this.showDialog(c.container,340,z,!0,!0);n.focus()};EditorUi.prototype.showPublishLinkDialog=function(c,e,g,q,m,n,z,C){var u=document.createElement("div");u.style.whiteSpace=
"nowrap";var y=document.createElement("h3");mxUtils.write(y,c||mxResources.get("link"));y.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";u.appendChild(y);var I=this.getCurrentFile();c=0;if(null==I||I.constructor!=window.DriveFile||e)z=null!=z?z:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{c=80;z=null!=z?z:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";y=document.createElement("div");y.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
var N=document.createElement("div");N.style.whiteSpace="normal";mxUtils.write(N,mxResources.get("linkAccountRequired"));y.appendChild(N);N=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(I.getId())}));N.style.marginTop="12px";N.className="geBtn";y.appendChild(N);u.appendChild(y);N=document.createElement("a");N.style.paddingLeft="12px";N.style.color="gray";N.style.fontSize="11px";N.style.cursor="pointer";mxUtils.write(N,mxResources.get("check"));y.appendChild(N);
mxEvent.addListener(N,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(T){this.spinner.stop();T=new ErrorDialog(this,null,mxResources.get(null!=T?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(T.container,300,80,!0,!1);T.init()}))}))}var t=null,p=null;if(null!=g||null!=q)c+=30,mxUtils.write(u,mxResources.get("width")+":"),t=document.createElement("input"),
-t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",u.appendChild(t),mxUtils.write(u,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=q+"px",u.appendChild(p),mxUtils.br(u);var F=this.addLinkSection(u,m);g=null!=this.pages&&1<this.pages.length;var J=null;
-if(null==I||I.constructor!=window.DriveFile||e)J=this.addCheckbox(u,mxResources.get("allPages"),g,!g);var M=this.addCheckbox(u,mxResources.get("lightbox"),!0,null,null,!m),H=this.addEditButton(u,M),G=H.getEditInput();m&&(G.style.marginLeft=M.style.marginLeft,M.style.display="none",c-=20);var E=this.addCheckbox(u,mxResources.get("layers"),!0);E.style.marginLeft=G.style.marginLeft;E.style.marginTop="8px";var P=this.addCheckbox(u,mxResources.get("tags"),!0);P.style.marginLeft=G.style.marginLeft;P.style.marginBottom=
-"16px";P.style.marginTop="16px";mxEvent.addListener(M,"change",function(){M.checked?(E.removeAttribute("disabled"),G.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&M.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});e=new CustomDialog(this,u,mxUtils.bind(this,function(){n(F.getTarget(),F.getColor(),null==J?!0:J.checked,M.checked,H.getLink(),E.checked,null!=t?t.value:null,
-null!=p?p.value:null,P.checked)}),null,mxResources.get("create"),z,C);this.showDialog(e.container,340,300+c,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):F.focus()};EditorUi.prototype.showRemoteExportDialog=function(c,e,g,q,n){var m=document.createElement("div");m.style.whiteSpace="nowrap";var z=document.createElement("h3");mxUtils.write(z,mxResources.get("image"));z.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
-(n?"10":"4")+"px";m.appendChild(z);if(n){mxUtils.write(m,mxResources.get("zoom")+":");var C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft="4px";C.style.marginRight="12px";C.value=this.lastExportZoom||"100%";m.appendChild(C);mxUtils.write(m,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=
-this.lastExportBorder||"0";m.appendChild(u);mxUtils.br(m)}var y=this.addCheckbox(m,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),I=q?null:this.addCheckbox(m,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram);z=this.editor.graph;var N=q?null:this.addCheckbox(m,mxResources.get("transparentBackground"),z.background==mxConstants.NONE||null==z.background);null!=N&&(N.style.marginBottom="16px");c=new CustomDialog(this,m,mxUtils.bind(this,function(){var t=
-parseInt(C.value)/100||1,p=parseInt(u.value)||0;g(!y.checked,null!=I?I.checked:!1,null!=N?N.checked:!1,t,p)}),null,c,e);this.showDialog(c.container,300,(n?25:0)+(q?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(c,e,g,q,n,m,z,C,u){z=null!=z?z:Editor.defaultIncludeDiagram;var y=document.createElement("div");y.style.whiteSpace="nowrap";var I=this.editor.graph,N="jpeg"==C?220:300,t=document.createElement("h3");mxUtils.write(t,c);t.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
+t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",u.appendChild(t),mxUtils.write(u,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=q+"px",u.appendChild(p),mxUtils.br(u);var F=this.addLinkSection(u,n);g=null!=this.pages&&1<this.pages.length;var J=null;
+if(null==I||I.constructor!=window.DriveFile||e)J=this.addCheckbox(u,mxResources.get("allPages"),g,!g);var M=this.addCheckbox(u,mxResources.get("lightbox"),!0,null,null,!n),H=this.addEditButton(u,M),G=H.getEditInput();n&&(G.style.marginLeft=M.style.marginLeft,M.style.display="none",c-=20);var E=this.addCheckbox(u,mxResources.get("layers"),!0);E.style.marginLeft=G.style.marginLeft;E.style.marginTop="8px";var P=this.addCheckbox(u,mxResources.get("tags"),!0);P.style.marginLeft=G.style.marginLeft;P.style.marginBottom=
+"16px";P.style.marginTop="16px";mxEvent.addListener(M,"change",function(){M.checked?(E.removeAttribute("disabled"),G.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&M.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});e=new CustomDialog(this,u,mxUtils.bind(this,function(){m(F.getTarget(),F.getColor(),null==J?!0:J.checked,M.checked,H.getLink(),E.checked,null!=t?t.value:null,
+null!=p?p.value:null,P.checked)}),null,mxResources.get("create"),z,C);this.showDialog(e.container,340,300+c,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):F.focus()};EditorUi.prototype.showRemoteExportDialog=function(c,e,g,q,m){var n=document.createElement("div");n.style.whiteSpace="nowrap";var z=document.createElement("h3");mxUtils.write(z,mxResources.get("image"));z.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
+(m?"10":"4")+"px";n.appendChild(z);if(m){mxUtils.write(n,mxResources.get("zoom")+":");var C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft="4px";C.style.marginRight="12px";C.value=this.lastExportZoom||"100%";n.appendChild(C);mxUtils.write(n,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=
+this.lastExportBorder||"0";n.appendChild(u);mxUtils.br(n)}var y=this.addCheckbox(n,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),I=q?null:this.addCheckbox(n,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram);z=this.editor.graph;var N=q?null:this.addCheckbox(n,mxResources.get("transparentBackground"),z.background==mxConstants.NONE||null==z.background);null!=N&&(N.style.marginBottom="16px");c=new CustomDialog(this,n,mxUtils.bind(this,function(){var t=
+parseInt(C.value)/100||1,p=parseInt(u.value)||0;g(!y.checked,null!=I?I.checked:!1,null!=N?N.checked:!1,t,p)}),null,c,e);this.showDialog(c.container,300,(m?25:0)+(q?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(c,e,g,q,m,n,z,C,u){z=null!=z?z:Editor.defaultIncludeDiagram;var y=document.createElement("div");y.style.whiteSpace="nowrap";var I=this.editor.graph,N="jpeg"==C?220:300,t=document.createElement("h3");mxUtils.write(t,c);t.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
y.appendChild(t);mxUtils.write(y,mxResources.get("zoom")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="12px";p.value=this.lastExportZoom||"100%";y.appendChild(p);mxUtils.write(y,mxResources.get("borderWidth")+":");var F=document.createElement("input");F.setAttribute("type","text");F.style.marginRight="16px";F.style.width="60px";F.style.marginLeft="4px";F.value=this.lastExportBorder||
"0";y.appendChild(F);mxUtils.br(y);var J=this.addCheckbox(y,mxResources.get("selectionOnly"),!1,I.isSelectionEmpty()),M=document.createElement("input");M.style.marginTop="16px";M.style.marginRight="8px";M.style.marginLeft="24px";M.setAttribute("disabled","disabled");M.setAttribute("type","checkbox");var H=document.createElement("select");H.style.marginTop="16px";H.style.marginLeft="8px";c=["selectionOnly","diagram","page"];var G={};for(t=0;t<c.length;t++)if(!I.isSelectionEmpty()||"selectionOnly"!=
-c[t]){var E=document.createElement("option");mxUtils.write(E,mxResources.get(c[t]));E.setAttribute("value",c[t]);H.appendChild(E);G[c[t]]=E}u?(mxUtils.write(y,mxResources.get("size")+":"),y.appendChild(H),mxUtils.br(y),N+=26,mxEvent.addListener(H,"change",function(){"selectionOnly"==H.value&&(J.checked=!0)})):m&&(y.appendChild(M),mxUtils.write(y,mxResources.get("crop")),mxUtils.br(y),N+=30,mxEvent.addListener(J,"change",function(){J.checked?M.removeAttribute("disabled"):M.setAttribute("disabled",
+c[t]){var E=document.createElement("option");mxUtils.write(E,mxResources.get(c[t]));E.setAttribute("value",c[t]);H.appendChild(E);G[c[t]]=E}u?(mxUtils.write(y,mxResources.get("size")+":"),y.appendChild(H),mxUtils.br(y),N+=26,mxEvent.addListener(H,"change",function(){"selectionOnly"==H.value&&(J.checked=!0)})):n&&(y.appendChild(M),mxUtils.write(y,mxResources.get("crop")),mxUtils.br(y),N+=30,mxEvent.addListener(J,"change",function(){J.checked?M.removeAttribute("disabled"):M.setAttribute("disabled",
"disabled")}));I.isSelectionEmpty()?u&&(J.style.display="none",J.nextSibling.style.display="none",J.nextSibling.nextSibling.style.display="none",N-=30):(H.value="diagram",M.setAttribute("checked","checked"),M.defaultChecked=!0,mxEvent.addListener(J,"change",function(){H.value=J.checked?"selectionOnly":"diagram"}));var P=this.addCheckbox(y,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=C),T=null;Editor.isDarkMode()&&(T=this.addCheckbox(y,mxResources.get("dark"),!0),N+=26);var W=this.addCheckbox(y,
mxResources.get("shadow"),I.shadowVisible),U=null;if("png"==C||"jpeg"==C)U=this.addCheckbox(y,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),N+=30;var V=this.addCheckbox(y,mxResources.get("includeCopyOfMyDiagram"),z,null,null,"jpeg"!=C);V.style.marginBottom="16px";var l=document.createElement("input");l.style.marginBottom="16px";l.style.marginRight="8px";l.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||l.setAttribute("disabled","disabled");var A=
-document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.style.marginBottom="16px";A.className="geBtn";m=document.createElement("option");m.setAttribute("value","none");mxUtils.write(m,mxResources.get("noChange"));A.appendChild(m);m=document.createElement("option");m.setAttribute("value","embedFonts");mxUtils.write(m,mxResources.get("embedFonts"));A.appendChild(m);m=document.createElement("option");m.setAttribute("value","lblToSvg");mxUtils.write(m,
-mxResources.get("lblToSvg"));this.isOffline()||EditorUi.isElectronApp||A.appendChild(m);mxEvent.addListener(A,"change",mxUtils.bind(this,function(){"lblToSvg"==A.value?(l.checked=!0,l.setAttribute("disabled","disabled"),G.page.style.display="none","page"==H.value&&(H.value="diagram"),W.checked=!1,W.setAttribute("disabled","disabled"),Q.style.display="inline-block",L.style.display="none"):"disabled"==l.getAttribute("disabled")&&(l.checked=!1,l.removeAttribute("disabled"),W.removeAttribute("disabled"),
+document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.style.marginBottom="16px";A.className="geBtn";n=document.createElement("option");n.setAttribute("value","none");mxUtils.write(n,mxResources.get("noChange"));A.appendChild(n);n=document.createElement("option");n.setAttribute("value","embedFonts");mxUtils.write(n,mxResources.get("embedFonts"));A.appendChild(n);n=document.createElement("option");n.setAttribute("value","lblToSvg");mxUtils.write(n,
+mxResources.get("lblToSvg"));this.isOffline()||EditorUi.isElectronApp||A.appendChild(n);mxEvent.addListener(A,"change",mxUtils.bind(this,function(){"lblToSvg"==A.value?(l.checked=!0,l.setAttribute("disabled","disabled"),G.page.style.display="none","page"==H.value&&(H.value="diagram"),W.checked=!1,W.setAttribute("disabled","disabled"),Q.style.display="inline-block",L.style.display="none"):"disabled"==l.getAttribute("disabled")&&(l.checked=!1,l.removeAttribute("disabled"),W.removeAttribute("disabled"),
G.page.style.display="",Q.style.display="none",L.style.display="")}));e&&(y.appendChild(l),mxUtils.write(y,mxResources.get("embedImages")),mxUtils.br(y),mxUtils.write(y,mxResources.get("txtSettings")+":"),y.appendChild(A),mxUtils.br(y),N+=60);var L=document.createElement("select");L.style.maxWidth="260px";L.style.marginLeft="8px";L.style.marginRight="10px";L.className="geBtn";e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));L.appendChild(e);
e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));L.appendChild(e);e=document.createElement("option");e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));L.appendChild(e);var Q=document.createElement("div");mxUtils.write(Q,mxResources.get("LinksLost"));Q.style.margin="7px";Q.style.display="none";"svg"==C&&(mxUtils.write(y,mxResources.get("links")+":"),y.appendChild(L),y.appendChild(Q),mxUtils.br(y),
-mxUtils.br(y),N+=50);g=new CustomDialog(this,y,mxUtils.bind(this,function(){this.lastExportBorder=F.value;this.lastExportZoom=p.value;n(p.value,P.checked,!J.checked,W.checked,V.checked,l.checked,F.value,M.checked,!1,L.value,null!=U?U.checked:null,null!=T?T.checked:null,H.value,"embedFonts"==A.value,"lblToSvg"==A.value)}),null,g,q);this.showDialog(g.container,340,N,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",
-!1,null)};EditorUi.prototype.showEmbedImageDialog=function(c,e,g,q,n){var m=document.createElement("div");m.style.whiteSpace="nowrap";var z=this.editor.graph;if(null!=e){var C=document.createElement("h3");mxUtils.write(C,e);C.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";m.appendChild(C)}var u=this.addCheckbox(m,mxResources.get("fit"),!0),y=this.addCheckbox(m,mxResources.get("shadow"),z.shadowVisible&&q,!q),I=this.addCheckbox(m,g),N=this.addCheckbox(m,mxResources.get("lightbox"),
-!0),t=this.addEditButton(m,N),p=t.getEditInput(),F=1<z.model.getChildCount(z.model.getRoot()),J=this.addCheckbox(m,mxResources.get("layers"),F,!F);J.style.marginLeft=p.style.marginLeft;J.style.marginBottom="12px";J.style.marginTop="8px";mxEvent.addListener(N,"change",function(){N.checked?(F&&J.removeAttribute("disabled"),p.removeAttribute("disabled")):(J.setAttribute("disabled","disabled"),p.setAttribute("disabled","disabled"));p.checked&&N.checked?t.getEditSelect().removeAttribute("disabled"):t.getEditSelect().setAttribute("disabled",
-"disabled")});e=new CustomDialog(this,m,mxUtils.bind(this,function(){c(u.checked,y.checked,I.checked,N.checked,t.getLink(),J.checked)}),null,mxResources.get("embed"),n);this.showDialog(e.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(c,e,g,q,n,m,z,C){function u(p){var F=" ",J="";q&&(F=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=I?"&page="+I:"")+(n?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",J+="cursor:pointer;");c&&(J+="max-width:100%;");var M="";g&&(M=' width="'+Math.round(y.width)+'" height="'+Math.round(y.height)+'"');z('<img src="'+p+'"'+M+(""!=J?' style="'+J+'"':"")+F+"/>")}var y=this.editor.graph.getGraphBounds(),I=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(p){var F=q?this.getFileData(!0):null;p=
+mxUtils.br(y),N+=50);g=new CustomDialog(this,y,mxUtils.bind(this,function(){this.lastExportBorder=F.value;this.lastExportZoom=p.value;m(p.value,P.checked,!J.checked,W.checked,V.checked,l.checked,F.value,M.checked,!1,L.value,null!=U?U.checked:null,null!=T?T.checked:null,H.value,"embedFonts"==A.value,"lblToSvg"==A.value)}),null,g,q);this.showDialog(g.container,340,N,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",
+!1,null)};EditorUi.prototype.showEmbedImageDialog=function(c,e,g,q,m){var n=document.createElement("div");n.style.whiteSpace="nowrap";var z=this.editor.graph;if(null!=e){var C=document.createElement("h3");mxUtils.write(C,e);C.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";n.appendChild(C)}var u=this.addCheckbox(n,mxResources.get("fit"),!0),y=this.addCheckbox(n,mxResources.get("shadow"),z.shadowVisible&&q,!q),I=this.addCheckbox(n,g),N=this.addCheckbox(n,mxResources.get("lightbox"),
+!0),t=this.addEditButton(n,N),p=t.getEditInput(),F=1<z.model.getChildCount(z.model.getRoot()),J=this.addCheckbox(n,mxResources.get("layers"),F,!F);J.style.marginLeft=p.style.marginLeft;J.style.marginBottom="12px";J.style.marginTop="8px";mxEvent.addListener(N,"change",function(){N.checked?(F&&J.removeAttribute("disabled"),p.removeAttribute("disabled")):(J.setAttribute("disabled","disabled"),p.setAttribute("disabled","disabled"));p.checked&&N.checked?t.getEditSelect().removeAttribute("disabled"):t.getEditSelect().setAttribute("disabled",
+"disabled")});e=new CustomDialog(this,n,mxUtils.bind(this,function(){c(u.checked,y.checked,I.checked,N.checked,t.getLink(),J.checked)}),null,mxResources.get("embed"),m);this.showDialog(e.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(c,e,g,q,m,n,z,C){function u(p){var F=" ",J="";q&&(F=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=I?"&page="+I:"")+(m?"&edit=_blank":"")+(n?"&layers=1":"")+"');}})(this);\"",J+="cursor:pointer;");c&&(J+="max-width:100%;");var M="";g&&(M=' width="'+Math.round(y.width)+'" height="'+Math.round(y.height)+'"');z('<img src="'+p+'"'+M+(""!=J?' style="'+J+'"':"")+F+"/>")}var y=this.editor.graph.getGraphBounds(),I=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(p){var F=q?this.getFileData(!0):null;p=
this.createImageDataUri(p,F,"png");u(p)}),null,null,null,mxUtils.bind(this,function(p){C({message:mxResources.get("unknownError")})}),null,!0,g?2:1,null,e,null,null,Editor.defaultBorder);else if(e=this.getFileData(!0),y.width*y.height<=MAX_AREA&&e.length<=MAX_REQUEST_SIZE){var N="";g&&(N="&w="+Math.round(2*y.width)+"&h="+Math.round(2*y.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(q?"1":"0")+N+"&xml="+encodeURIComponent(e));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
-299>=t.getStatus()?u("data:image/png;base64,"+t.getText()):C({message:mxResources.get("unknownError")})}))}else C({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(c,e,g,q,n,m,z){var C=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!g),u=C.getElementsByTagName("a");if(null!=u)for(var y=0;y<u.length;y++){var I=u[y].getAttribute("href");null!=I&&"#"==I.charAt(0)&&"_blank"==u[y].getAttribute("target")&&u[y].removeAttribute("target")}q&&
-C.setAttribute("content",this.getFileData(!0));e&&this.editor.graph.addSvgShadow(C);if(g){var N=" ",t="";q&&(N="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(n?"&edit=_blank":"")+(m?"&layers=1":
+299>=t.getStatus()?u("data:image/png;base64,"+t.getText()):C({message:mxResources.get("unknownError")})}))}else C({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(c,e,g,q,m,n,z){var C=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!g),u=C.getElementsByTagName("a");if(null!=u)for(var y=0;y<u.length;y++){var I=u[y].getAttribute("href");null!=I&&"#"==I.charAt(0)&&"_blank"==u[y].getAttribute("target")&&u[y].removeAttribute("target")}q&&
+C.setAttribute("content",this.getFileData(!0));e&&this.editor.graph.addSvgShadow(C);if(g){var N=" ",t="";q&&(N="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(m?"&edit=_blank":"")+(n?"&layers=1":
"")+"');}})(this);\"",t+="cursor:pointer;");c&&(t+="max-width:100%;");this.editor.convertImages(C,mxUtils.bind(this,function(p){z('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(p))+'"'+(""!=t?' style="'+t+'"':"")+N+"/>")}))}else t="",q&&(e=this.getSelectedPageIndex(),C.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=e?"&page="+e:"")+(n?"&edit=_blank":"")+(m?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),c&&(c=parseInt(C.getAttribute("width")),n=parseInt(C.getAttribute("height")),C.setAttribute("viewBox","-0.5 -0.5 "+c+" "+n),t+="max-width:100%;max-height:"+n+"px;",C.removeAttribute("height")),""!=t&&C.setAttribute("style",t),this.editor.addFontCss(C),this.editor.graph.mathEnabled&&this.editor.addMathCss(C),z(mxUtils.getXml(C))};EditorUi.prototype.timeSince=function(c){c=
+EditorUi.lightboxHost+"/?client=1"+(null!=e?"&page="+e:"")+(m?"&edit=_blank":"")+(n?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),c&&(c=parseInt(C.getAttribute("width")),m=parseInt(C.getAttribute("height")),C.setAttribute("viewBox","-0.5 -0.5 "+c+" "+m),t+="max-width:100%;max-height:"+m+"px;",C.removeAttribute("height")),""!=t&&C.setAttribute("style",t),this.editor.addFontCss(C),this.editor.graph.mathEnabled&&this.editor.addMathCss(C),z(mxUtils.getXml(C))};EditorUi.prototype.timeSince=function(c){c=
Math.floor((new Date-c)/1E3);var e=Math.floor(c/31536E3);if(1<e)return e+" "+mxResources.get("years");e=Math.floor(c/2592E3);if(1<e)return e+" "+mxResources.get("months");e=Math.floor(c/86400);if(1<e)return e+" "+mxResources.get("days");e=Math.floor(c/3600);if(1<e)return e+" "+mxResources.get("hours");e=Math.floor(c/60);return 1<e?e+" "+mxResources.get("minutes"):1==e?e+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(c,e){if(null!=c){var g=null;if("diagram"==c.nodeName)g=
-c;else if("mxfile"==c.nodeName){var q=c.getElementsByTagName("diagram");if(0<q.length){g=q[0];var n=e.getGlobalVariable;e.getGlobalVariable=function(m){return"page"==m?g.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==m?1:n.apply(this,arguments)}}}null!=g&&(c=Editor.parseDiagramNode(g))}q=this.editor.graph;try{this.editor.graph=e,this.editor.setGraphXml(c)}catch(m){}finally{this.editor.graph=q}return c};EditorUi.prototype.getPngFileProperties=function(c){var e=1,g=0;if(null!=
-c){if(c.hasAttribute("scale")){var q=parseFloat(c.getAttribute("scale"));!isNaN(q)&&0<q&&(e=q)}c.hasAttribute("border")&&(q=parseInt(c.getAttribute("border")),!isNaN(q)&&0<q&&(g=q))}return{scale:e,border:g}};EditorUi.prototype.getEmbeddedPng=function(c,e,g,q,n){try{var m=this.editor.graph,z=null!=m.themes&&"darkTheme"==m.defaultThemeName,C=null;if(null!=g&&0<g.length)m=this.createTemporaryGraph(z?m.getDefaultStylesheet():m.getStylesheet()),document.body.appendChild(m.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(g).documentElement,
-!0),m),C=g;else if(z||null!=this.pages&&this.currentPage!=this.pages[0]){m=this.createTemporaryGraph(z?m.getDefaultStylesheet():m.getStylesheet());var u=m.getGlobalVariable;m.setBackgroundImage=this.editor.graph.setBackgroundImage;var y=this.pages[0];this.currentPage==y?m.setBackgroundImage(this.editor.graph.backgroundImage):null!=y.viewState&&null!=y.viewState&&m.setBackgroundImage(y.viewState.backgroundImage);m.getGlobalVariable=function(I){return"page"==I?y.getName():"pagenumber"==I?1:u.apply(this,
-arguments)};document.body.appendChild(m.container);m.model.setRoot(y.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(I){try{null==C&&(C=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var N=I.toDataURL("image/png");N=Editor.writeGraphModelToPng(N,"tEXt","mxfile",encodeURIComponent(C));c(N.substring(N.lastIndexOf(",")+1));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container)}catch(t){null!=e&&e(t)}}),null,null,null,mxUtils.bind(this,function(I){null!=e&&
-e(I)}),null,null,q,null,m.shadowVisible,null,m,n,null,null,null,"diagram",null)}catch(I){null!=e&&e(I)}};EditorUi.prototype.getEmbeddedSvg=function(c,e,g,q,n,m,z,C,u,y,I,N,t){C=null!=C?C:!0;I=null!=I?I:0;z=null!=u?u:e.background;z==mxConstants.NONE&&(z=null);m=e.getSvg(z,y,I,null,null,m,null,null,null,e.shadowVisible||N,null,t,"diagram");(e.shadowVisible||N)&&e.addSvgShadow(m,null,null,0==I);null!=c&&m.setAttribute("content",c);null!=g&&m.setAttribute("resource",g);var p=mxUtils.bind(this,function(F){F=
-(q?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(F);null!=n&&n(F);return F});e.mathEnabled&&this.editor.addMathCss(m);if(null!=n)this.embedFonts(m,mxUtils.bind(this,function(F){C?this.editor.convertImages(F,mxUtils.bind(this,function(J){p(J)})):p(F)}));else return p(m)};EditorUi.prototype.embedFonts=function(c,e){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(c,this.editor.resolvedFontCss),
-this.editor.embedExtFonts(mxUtils.bind(this,function(g){try{null!=g&&this.editor.addFontCss(c,g),e(c)}catch(q){e(c)}}))}catch(g){e(c)}}))};EditorUi.prototype.exportImage=function(c,e,g,q,n,m,z,C,u,y,I,N,t){u=null!=u?u:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var p=this.editor.graph.isSelectionEmpty();g=null!=g?g:p;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(F){this.spinner.stop();try{this.saveCanvas(F,
-n?this.getFileData(!0,null,null,null,g,C):null,u,null==this.pages||0==this.pages.length,I)}catch(J){this.handleError(J)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(F){this.spinner.stop();this.handleError(F)}),null,g,c||1,e,q,null,null,m,z,y,N,t)}catch(F){this.spinner.stop(),this.handleError(F)}}};EditorUi.prototype.isCorsEnabledForUrl=function(c){return this.editor.isCorsEnabledForUrl(c)};EditorUi.prototype.importXml=function(c,e,g,q,n,m,z){e=null!=e?e:0;g=null!=g?g:0;var C=[];try{var u=
-this.editor.graph;if(null!=c&&0<c.length){u.model.beginUpdate();try{var y=mxUtils.parseXml(c);c={};var I=this.editor.extractGraphModel(y.documentElement,null!=this.pages);if(null!=I&&"mxfile"==I.nodeName&&null!=this.pages){var N=I.getElementsByTagName("diagram");if(1==N.length&&!m){if(I=Editor.parseDiagramNode(N[0]),null!=this.currentPage&&(c[N[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var t=N[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,
-this.currentPage,t))}}else if(0<N.length){m=[];var p=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(c[N[0].getAttribute("id")]=this.pages[0].getId(),I=Editor.parseDiagramNode(N[0]),q=!1,p=1);for(;p<N.length;p++){var F=N[p].getAttribute("id");N[p].removeAttribute("id");var J=this.updatePageRoot(new DiagramPage(N[p]));c[F]=N[p].getAttribute("id");var M=this.pages.length;null==J.getName()&&J.setName(mxResources.get("pageWithNumber",[M+1]));u.model.execute(new ChangePage(this,J,J,M,
-!0));m.push(J)}this.updatePageLinks(c,m)}}if(null!=I&&"mxGraphModel"===I.nodeName){C=u.importGraphModel(I,e,g,q);if(null!=C)for(p=0;p<C.length;p++)this.updatePageLinksForCell(c,C[p]);var H=u.parseBackgroundImage(I.getAttribute("backgroundImage"));if(null!=H&&null!=H.originalSrc){this.updateBackgroundPageLink(c,H);var G=new ChangePageSetup(this,null,H);G.ignoreColor=!0;u.model.execute(G)}}z&&this.insertHandler(C,null,null,u.defaultVertexStyle,u.defaultEdgeStyle,!1,!0)}finally{u.model.endUpdate()}}}catch(E){if(n)throw E;
+c;else if("mxfile"==c.nodeName){var q=c.getElementsByTagName("diagram");if(0<q.length){g=q[0];var m=e.getGlobalVariable;e.getGlobalVariable=function(n){return"page"==n?g.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==n?1:m.apply(this,arguments)}}}null!=g&&(c=Editor.parseDiagramNode(g))}q=this.editor.graph;try{this.editor.graph=e,this.editor.setGraphXml(c)}catch(n){}finally{this.editor.graph=q}return c};EditorUi.prototype.getPngFileProperties=function(c){var e=1,g=0;if(null!=
+c){if(c.hasAttribute("scale")){var q=parseFloat(c.getAttribute("scale"));!isNaN(q)&&0<q&&(e=q)}c.hasAttribute("border")&&(q=parseInt(c.getAttribute("border")),!isNaN(q)&&0<q&&(g=q))}return{scale:e,border:g}};EditorUi.prototype.getEmbeddedPng=function(c,e,g,q,m){try{var n=this.editor.graph,z=null!=n.themes&&"darkTheme"==n.defaultThemeName,C=null;if(null!=g&&0<g.length)n=this.createTemporaryGraph(z?n.getDefaultStylesheet():n.getStylesheet()),document.body.appendChild(n.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(g).documentElement,
+!0),n),C=g;else if(z||null!=this.pages&&this.currentPage!=this.pages[0]){n=this.createTemporaryGraph(z?n.getDefaultStylesheet():n.getStylesheet());var u=n.getGlobalVariable;n.setBackgroundImage=this.editor.graph.setBackgroundImage;var y=this.pages[0];this.currentPage==y?n.setBackgroundImage(this.editor.graph.backgroundImage):null!=y.viewState&&null!=y.viewState&&n.setBackgroundImage(y.viewState.backgroundImage);n.getGlobalVariable=function(I){return"page"==I?y.getName():"pagenumber"==I?1:u.apply(this,
+arguments)};document.body.appendChild(n.container);n.model.setRoot(y.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(I){try{null==C&&(C=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var N=I.toDataURL("image/png");N=Editor.writeGraphModelToPng(N,"tEXt","mxfile",encodeURIComponent(C));c(N.substring(N.lastIndexOf(",")+1));n!=this.editor.graph&&n.container.parentNode.removeChild(n.container)}catch(t){null!=e&&e(t)}}),null,null,null,mxUtils.bind(this,function(I){null!=e&&
+e(I)}),null,null,q,null,n.shadowVisible,null,n,m,null,null,null,"diagram",null)}catch(I){null!=e&&e(I)}};EditorUi.prototype.getEmbeddedSvg=function(c,e,g,q,m,n,z,C,u,y,I,N,t){C=null!=C?C:!0;I=null!=I?I:0;z=null!=u?u:e.background;z==mxConstants.NONE&&(z=null);n=e.getSvg(z,y,I,null,null,n,null,null,null,e.shadowVisible||N,null,t,"diagram");(e.shadowVisible||N)&&e.addSvgShadow(n,null,null,0==I);null!=c&&n.setAttribute("content",c);null!=g&&n.setAttribute("resource",g);var p=mxUtils.bind(this,function(F){F=
+(q?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(F);null!=m&&m(F);return F});e.mathEnabled&&this.editor.addMathCss(n);if(null!=m)this.embedFonts(n,mxUtils.bind(this,function(F){C?this.editor.convertImages(F,mxUtils.bind(this,function(J){p(J)})):p(F)}));else return p(n)};EditorUi.prototype.embedFonts=function(c,e){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(c,this.editor.resolvedFontCss),
+this.editor.embedExtFonts(mxUtils.bind(this,function(g){try{null!=g&&this.editor.addFontCss(c,g),e(c)}catch(q){e(c)}}))}catch(g){e(c)}}))};EditorUi.prototype.exportImage=function(c,e,g,q,m,n,z,C,u,y,I,N,t){u=null!=u?u:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var p=this.editor.graph.isSelectionEmpty();g=null!=g?g:p;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(F){this.spinner.stop();try{this.saveCanvas(F,
+m?this.getFileData(!0,null,null,null,g,C):null,u,null==this.pages||0==this.pages.length,I)}catch(J){this.handleError(J)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(F){this.spinner.stop();this.handleError(F)}),null,g,c||1,e,q,null,null,n,z,y,N,t)}catch(F){this.spinner.stop(),this.handleError(F)}}};EditorUi.prototype.isCorsEnabledForUrl=function(c){return this.editor.isCorsEnabledForUrl(c)};EditorUi.prototype.importXml=function(c,e,g,q,m,n,z){e=null!=e?e:0;g=null!=g?g:0;var C=[];try{var u=
+this.editor.graph;if(null!=c&&0<c.length){u.model.beginUpdate();try{var y=mxUtils.parseXml(c);c={};var I=this.editor.extractGraphModel(y.documentElement,null!=this.pages);if(null!=I&&"mxfile"==I.nodeName&&null!=this.pages){var N=I.getElementsByTagName("diagram");if(1==N.length&&!n){if(I=Editor.parseDiagramNode(N[0]),null!=this.currentPage&&(c[N[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var t=N[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,
+this.currentPage,t))}}else if(0<N.length){n=[];var p=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(c[N[0].getAttribute("id")]=this.pages[0].getId(),I=Editor.parseDiagramNode(N[0]),q=!1,p=1);for(;p<N.length;p++){var F=N[p].getAttribute("id");N[p].removeAttribute("id");var J=this.updatePageRoot(new DiagramPage(N[p]));c[F]=N[p].getAttribute("id");var M=this.pages.length;null==J.getName()&&J.setName(mxResources.get("pageWithNumber",[M+1]));u.model.execute(new ChangePage(this,J,J,M,
+!0));n.push(J)}this.updatePageLinks(c,n)}}if(null!=I&&"mxGraphModel"===I.nodeName){C=u.importGraphModel(I,e,g,q);if(null!=C)for(p=0;p<C.length;p++)this.updatePageLinksForCell(c,C[p]);var H=u.parseBackgroundImage(I.getAttribute("backgroundImage"));if(null!=H&&null!=H.originalSrc){this.updateBackgroundPageLink(c,H);var G=new ChangePageSetup(this,null,H);G.ignoreColor=!0;u.model.execute(G)}}z&&this.insertHandler(C,null,null,u.defaultVertexStyle,u.defaultEdgeStyle,!1,!0)}finally{u.model.endUpdate()}}}catch(E){if(m)throw E;
this.handleError(E)}return C};EditorUi.prototype.updatePageLinks=function(c,e){for(var g=0;g<e.length;g++)this.updatePageLinksForCell(c,e[g].root),null!=e[g].viewState&&this.updateBackgroundPageLink(c,e[g].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(c,e){try{if(null!=e&&Graph.isPageLink(e.originalSrc)){var g=c[e.originalSrc.substring(e.originalSrc.indexOf(",")+1)];null!=g&&(e.originalSrc="data:page/id,"+g)}}catch(q){}};EditorUi.prototype.updatePageLinksForCell=
-function(c,e){var g=document.createElement("div"),q=this.editor.graph,n=q.getLinkForCell(e);null!=n&&q.setLinkForCell(e,this.updatePageLink(c,n));if(q.isHtmlLabel(e)){g.innerHTML=q.sanitizeHtml(q.getLabel(e));for(var m=g.getElementsByTagName("a"),z=!1,C=0;C<m.length;C++)n=m[C].getAttribute("href"),null!=n&&(m[C].setAttribute("href",this.updatePageLink(c,n)),z=!0);z&&q.labelChanged(e,g.innerHTML)}for(C=0;C<q.model.getChildCount(e);C++)this.updatePageLinksForCell(c,q.model.getChildAt(e,C))};EditorUi.prototype.updatePageLink=
-function(c,e){if(Graph.isPageLink(e)){var g=c[e.substring(e.indexOf(",")+1)];e=null!=g?"data:page/id,"+g:null}else if("data:action/json,"==e.substring(0,17))try{var q=JSON.parse(e.substring(17));if(null!=q.actions){for(var n=0;n<q.actions.length;n++){var m=q.actions[n];if(null!=m.open&&Graph.isPageLink(m.open)){var z=m.open.substring(m.open.indexOf(",")+1);g=c[z];null!=g?m.open="data:page/id,"+g:null==this.getPageById(z)&&delete m.open}}e="data:action/json,"+JSON.stringify(q)}}catch(C){}return e};
-EditorUi.prototype.isRemoteVisioFormat=function(c){return/(\.v(sd|dx))($|\?)/i.test(c)||/(\.vs(s|x))($|\?)/i.test(c)};EditorUi.prototype.importVisio=function(c,e,g,q,n){q=null!=q?q:c.name;g=null!=g?g:mxUtils.bind(this,function(z){this.handleError(z)});var m=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var z=this.isRemoteVisioFormat(q);try{var C="UNKNOWN-VISIO",u=q.lastIndexOf(".");if(0<=u&&u<q.length)C=q.substring(u+1).toUpperCase();else{var y=q.lastIndexOf("/");0<=
+function(c,e){var g=document.createElement("div"),q=this.editor.graph,m=q.getLinkForCell(e);null!=m&&q.setLinkForCell(e,this.updatePageLink(c,m));if(q.isHtmlLabel(e)){g.innerHTML=q.sanitizeHtml(q.getLabel(e));for(var n=g.getElementsByTagName("a"),z=!1,C=0;C<n.length;C++)m=n[C].getAttribute("href"),null!=m&&(n[C].setAttribute("href",this.updatePageLink(c,m)),z=!0);z&&q.labelChanged(e,g.innerHTML)}for(C=0;C<q.model.getChildCount(e);C++)this.updatePageLinksForCell(c,q.model.getChildAt(e,C))};EditorUi.prototype.updatePageLink=
+function(c,e){if(Graph.isPageLink(e)){var g=c[e.substring(e.indexOf(",")+1)];e=null!=g?"data:page/id,"+g:null}else if("data:action/json,"==e.substring(0,17))try{var q=JSON.parse(e.substring(17));if(null!=q.actions){for(var m=0;m<q.actions.length;m++){var n=q.actions[m];if(null!=n.open&&Graph.isPageLink(n.open)){var z=n.open.substring(n.open.indexOf(",")+1);g=c[z];null!=g?n.open="data:page/id,"+g:null==this.getPageById(z)&&delete n.open}}e="data:action/json,"+JSON.stringify(q)}}catch(C){}return e};
+EditorUi.prototype.isRemoteVisioFormat=function(c){return/(\.v(sd|dx))($|\?)/i.test(c)||/(\.vs(s|x))($|\?)/i.test(c)};EditorUi.prototype.importVisio=function(c,e,g,q,m){q=null!=q?q:c.name;g=null!=g?g:mxUtils.bind(this,function(z){this.handleError(z)});var n=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var z=this.isRemoteVisioFormat(q);try{var C="UNKNOWN-VISIO",u=q.lastIndexOf(".");if(0<=u&&u<q.length)C=q.substring(u+1).toUpperCase();else{var y=q.lastIndexOf("/");0<=
y&&y<q.length&&(q=q.substring(y+1))}EditorUi.logEvent({category:C+"-MS-IMPORT-FILE",action:"filename_"+q,label:z?"remote":"local"})}catch(N){}if(z)if(null==VSD_CONVERT_URL||this.isOffline())g({message:"draw.io"!=this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{z=new FormData;z.append("file1",c,q);var I=new XMLHttpRequest;I.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(q)?"?stencil=1":""));I.responseType="blob";this.addRemoteServiceSecurityCheck(I);
-null!=n&&I.setRequestHeader("x-convert-custom",n);I.onreadystatechange=mxUtils.bind(this,function(){if(4==I.readyState)if(200<=I.status&&299>=I.status)try{var N=I.response;if("text/xml"==N.type){var t=new FileReader;t.onload=mxUtils.bind(this,function(p){try{e(p.target.result)}catch(F){g({message:mxResources.get("errorLoadingFile")})}});t.readAsText(N)}else this.doImportVisio(N,e,g,q)}catch(p){g(p)}else try{""==I.responseType||"text"==I.responseType?g({message:I.responseText}):(t=new FileReader,t.onload=
-function(){g({message:JSON.parse(t.result).Message})},t.readAsText(I.response))}catch(p){g({})}});I.send(z)}else try{this.doImportVisio(c,e,g,q)}catch(N){g(N)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?m():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",m))};EditorUi.prototype.importGraphML=function(c,e,g){g=null!=g?g:mxUtils.bind(this,function(n){this.handleError(n)});
-var q=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(c,e,g)}catch(n){g(n)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?q():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",q))};EditorUi.prototype.exportVisio=function(c){var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(c)||
-this.handleError({message:mxResources.get("unknownError")})}catch(g){this.handleError(g)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.convertLucidChart=function(c,e,g){var q=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{var n=
-JSON.parse(c);e(LucidImporter.importState(n));try{if(EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+c.length}),null!=window.console&&"1"==urlParams.test){var m=[(new Date).toISOString(),"convertLucidChart",n];null!=n.state&&m.push(JSON.parse(n.state));if(null!=n.svgThumbs)for(var z=0;z<n.svgThumbs.length;z++)m.push(Editor.createSvgDataUri(n.svgThumbs[z]));null!=n.thumb&&m.push(n.thumb);console.log.apply(console,m)}}catch(C){}}catch(C){null!=window.console&&console.error(C),g(C)}else g({message:mxResources.get("serviceUnavailableOrBlocked")})});
+null!=m&&I.setRequestHeader("x-convert-custom",m);I.onreadystatechange=mxUtils.bind(this,function(){if(4==I.readyState)if(200<=I.status&&299>=I.status)try{var N=I.response;if("text/xml"==N.type){var t=new FileReader;t.onload=mxUtils.bind(this,function(p){try{e(p.target.result)}catch(F){g({message:mxResources.get("errorLoadingFile")})}});t.readAsText(N)}else this.doImportVisio(N,e,g,q)}catch(p){g(p)}else try{""==I.responseType||"text"==I.responseType?g({message:I.responseText}):(t=new FileReader,t.onload=
+function(){g({message:JSON.parse(t.result).Message})},t.readAsText(I.response))}catch(p){g({})}});I.send(z)}else try{this.doImportVisio(c,e,g,q)}catch(N){g(N)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?n():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",n))};EditorUi.prototype.importGraphML=function(c,e,g){g=null!=g?g:mxUtils.bind(this,function(m){this.handleError(m)});
+var q=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(c,e,g)}catch(m){g(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?q():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",q))};EditorUi.prototype.exportVisio=function(c){var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(c)||
+this.handleError({message:mxResources.get("unknownError")})}catch(g){this.handleError(g)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.convertLucidChart=function(c,e,g){var q=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{var m=
+JSON.parse(c);e(LucidImporter.importState(m));try{if(EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+c.length}),null!=window.console&&"1"==urlParams.test){var n=[(new Date).toISOString(),"convertLucidChart",m];null!=m.state&&n.push(JSON.parse(m.state));if(null!=m.svgThumbs)for(var z=0;z<m.svgThumbs.length;z++)n.push(Editor.createSvgDataUri(m.svgThumbs[z]));null!=m.thumb&&n.push(m.thumb);console.log.apply(console,n)}}catch(C){}}catch(C){null!=window.console&&console.error(C),g(C)}else g({message:mxResources.get("serviceUnavailableOrBlocked")})});
"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(q,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",q)})})})}):mxscript("js/extensions.min.js",q))};EditorUi.prototype.generateMermaidImage=function(c,
-e,g,q){var n=this,m=function(){try{this.loadingMermaid=!1,e=null!=e?e:mxUtils.clone(EditorUi.defaultMermaidConfig),e.securityLevel="strict",e.startOnLoad=!1,Editor.isDarkMode()&&(e.theme="dark"),mermaid.mermaidAPI.initialize(e),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),c,function(z){try{if(mxClient.IS_IE||mxClient.IS_IE11)z=z.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var C=mxUtils.parseXml(z).getElementsByTagName("svg");
-if(0<C.length){var u=parseFloat(C[0].getAttribute("width")),y=parseFloat(C[0].getAttribute("height"));if(isNaN(u)||isNaN(y))try{var I=C[0].getAttribute("viewBox").split(/\s+/);u=parseFloat(I[2]);y=parseFloat(I[3])}catch(N){u=u||100,y=y||100}g(n.convertDataUri(Editor.createSvgDataUri(z)),u,y)}else q({message:mxResources.get("invalidInput")})}catch(N){q(N)}})}catch(z){q(z)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?m():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",
-m):mxscript("js/extensions.min.js",m))};EditorUi.prototype.generatePlantUmlImage=function(c,e,g,q){function n(C,u,y){c1=C>>2;c2=(C&3)<<4|u>>4;c3=(u&15)<<2|y>>6;c4=y&63;r="";r+=m(c1&63);r+=m(c2&63);r+=m(c3&63);return r+=m(c4&63)}function m(C){if(10>C)return String.fromCharCode(48+C);C-=10;if(26>C)return String.fromCharCode(65+C);C-=26;if(26>C)return String.fromCharCode(97+C);C-=26;return 0==C?"-":1==C?"_":"?"}var z=new XMLHttpRequest;z.open("GET",("txt"==e?PLANT_URL+"/txt/":"png"==e?PLANT_URL+"/png/":
-PLANT_URL+"/svg/")+function(C){r="";for(i=0;i<C.length;i+=3)r=i+2==C.length?r+n(C.charCodeAt(i),C.charCodeAt(i+1),0):i+1==C.length?r+n(C.charCodeAt(i),0,0):r+n(C.charCodeAt(i),C.charCodeAt(i+1),C.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(c))),!0);"txt"!=e&&(z.responseType="blob");z.onload=function(C){if(200<=this.status&&300>this.status)if("txt"==e)g(this.response);else{var u=new FileReader;u.readAsDataURL(this.response);u.onloadend=function(y){var I=new Image;I.onload=
-function(){try{var N=I.width,t=I.height;if(0==N&&0==t){var p=u.result,F=p.indexOf(","),J=decodeURIComponent(escape(atob(p.substring(F+1)))),M=mxUtils.parseXml(J).getElementsByTagName("svg");0<M.length&&(N=parseFloat(M[0].getAttribute("width")),t=parseFloat(M[0].getAttribute("height")))}g(u.result,N,t)}catch(H){q(H)}};I.src=u.result};u.onerror=function(y){q(y)}}else q(C)};z.onerror=function(C){q(C)};z.send()};EditorUi.prototype.insertAsPreText=function(c,e,g){var q=this.editor.graph,n=null;q.getModel().beginUpdate();
-try{n=q.insertVertex(null,null,"<pre>"+c+"</pre>",e,g,1,1,"text;html=1;align=left;verticalAlign=top;"),q.updateCellSize(n,!0)}finally{q.getModel().endUpdate()}return n};EditorUi.prototype.insertTextAt=function(c,e,g,q,n,m,z,C){m=null!=m?m:!0;z=null!=z?z:!0;if(null!=c)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(c.replace(/\s+/g," "),mxUtils.bind(this,function(t){4==
-t.readyState&&200<=t.status&&299>=t.status&&this.editor.graph.setSelectionCells(this.insertTextAt(t.responseText,e,g,!0))}));else if("data:"==c.substring(0,5)||!this.isOffline()&&(n||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c))){var u=this.editor.graph;if("data:application/pdf;base64,"==c.substring(0,28)){var y=Editor.extractGraphModelFromPdf(c);if(null!=y&&0<y.length)return this.importXml(y,e,g,m,!0,C)}if(Editor.isPngDataUrl(c)&&(y=Editor.extractGraphModelFromPng(c),null!=y&&0<y.length))return this.importXml(y,
-e,g,m,!0,C);if("data:image/svg+xml;"==c.substring(0,19))try{y=null;"data:image/svg+xml;base64,"==c.substring(0,26)?(y=c.substring(c.indexOf(",")+1),y=window.atob&&!mxClient.IS_SF?atob(y):Base64.decode(y,!0)):y=decodeURIComponent(c.substring(c.indexOf(",")+1));var I=this.importXml(y,e,g,m,!0,C);if(0<I.length)return I}catch(t){}this.loadImage(c,mxUtils.bind(this,function(t){if("data:"==c.substring(0,5))this.resizeImage(t,c,mxUtils.bind(this,function(J,M,H){u.setSelectionCell(u.insertVertex(null,null,
+e,g,q){var m=this,n=function(){try{this.loadingMermaid=!1,e=null!=e?e:mxUtils.clone(EditorUi.defaultMermaidConfig),e.securityLevel="strict",e.startOnLoad=!1,Editor.isDarkMode()&&(e.theme="dark"),mermaid.mermaidAPI.initialize(e),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),c,function(z){try{if(mxClient.IS_IE||mxClient.IS_IE11)z=z.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var C=mxUtils.parseXml(z).getElementsByTagName("svg");
+if(0<C.length){var u=parseFloat(C[0].getAttribute("width")),y=parseFloat(C[0].getAttribute("height"));if(isNaN(u)||isNaN(y))try{var I=C[0].getAttribute("viewBox").split(/\s+/);u=parseFloat(I[2]);y=parseFloat(I[3])}catch(N){u=u||100,y=y||100}g(m.convertDataUri(Editor.createSvgDataUri(z)),u,y)}else q({message:mxResources.get("invalidInput")})}catch(N){q(N)}})}catch(z){q(z)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?n():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",
+n):mxscript("js/extensions.min.js",n))};EditorUi.prototype.generatePlantUmlImage=function(c,e,g,q){function m(C,u,y){c1=C>>2;c2=(C&3)<<4|u>>4;c3=(u&15)<<2|y>>6;c4=y&63;r="";r+=n(c1&63);r+=n(c2&63);r+=n(c3&63);return r+=n(c4&63)}function n(C){if(10>C)return String.fromCharCode(48+C);C-=10;if(26>C)return String.fromCharCode(65+C);C-=26;if(26>C)return String.fromCharCode(97+C);C-=26;return 0==C?"-":1==C?"_":"?"}var z=new XMLHttpRequest;z.open("GET",("txt"==e?PLANT_URL+"/txt/":"png"==e?PLANT_URL+"/png/":
+PLANT_URL+"/svg/")+function(C){r="";for(i=0;i<C.length;i+=3)r=i+2==C.length?r+m(C.charCodeAt(i),C.charCodeAt(i+1),0):i+1==C.length?r+m(C.charCodeAt(i),0,0):r+m(C.charCodeAt(i),C.charCodeAt(i+1),C.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(c))),!0);"txt"!=e&&(z.responseType="blob");z.onload=function(C){if(200<=this.status&&300>this.status)if("txt"==e)g(this.response);else{var u=new FileReader;u.readAsDataURL(this.response);u.onloadend=function(y){var I=new Image;I.onload=
+function(){try{var N=I.width,t=I.height;if(0==N&&0==t){var p=u.result,F=p.indexOf(","),J=decodeURIComponent(escape(atob(p.substring(F+1)))),M=mxUtils.parseXml(J).getElementsByTagName("svg");0<M.length&&(N=parseFloat(M[0].getAttribute("width")),t=parseFloat(M[0].getAttribute("height")))}g(u.result,N,t)}catch(H){q(H)}};I.src=u.result};u.onerror=function(y){q(y)}}else q(C)};z.onerror=function(C){q(C)};z.send()};EditorUi.prototype.insertAsPreText=function(c,e,g){var q=this.editor.graph,m=null;q.getModel().beginUpdate();
+try{m=q.insertVertex(null,null,"<pre>"+c+"</pre>",e,g,1,1,"text;html=1;align=left;verticalAlign=top;"),q.updateCellSize(m,!0)}finally{q.getModel().endUpdate()}return m};EditorUi.prototype.insertTextAt=function(c,e,g,q,m,n,z,C){n=null!=n?n:!0;z=null!=z?z:!0;if(null!=c)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(c.replace(/\s+/g," "),mxUtils.bind(this,function(t){4==
+t.readyState&&200<=t.status&&299>=t.status&&this.editor.graph.setSelectionCells(this.insertTextAt(t.responseText,e,g,!0))}));else if("data:"==c.substring(0,5)||!this.isOffline()&&(m||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c))){var u=this.editor.graph;if("data:application/pdf;base64,"==c.substring(0,28)){var y=Editor.extractGraphModelFromPdf(c);if(null!=y&&0<y.length)return this.importXml(y,e,g,n,!0,C)}if(Editor.isPngDataUrl(c)&&(y=Editor.extractGraphModelFromPng(c),null!=y&&0<y.length))return this.importXml(y,
+e,g,n,!0,C);if("data:image/svg+xml;"==c.substring(0,19))try{y=null;"data:image/svg+xml;base64,"==c.substring(0,26)?(y=c.substring(c.indexOf(",")+1),y=window.atob&&!mxClient.IS_SF?atob(y):Base64.decode(y,!0)):y=decodeURIComponent(c.substring(c.indexOf(",")+1));var I=this.importXml(y,e,g,n,!0,C);if(0<I.length)return I}catch(t){}this.loadImage(c,mxUtils.bind(this,function(t){if("data:"==c.substring(0,5))this.resizeImage(t,c,mxUtils.bind(this,function(J,M,H){u.setSelectionCell(u.insertVertex(null,null,
"",u.snap(e),u.snap(g),M,H,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(J)+";"))}),z,this.maxImageSize);else{var p=Math.min(1,Math.min(this.maxImageSize/t.width,this.maxImageSize/t.height)),F=Math.round(t.width*p);t=Math.round(t.height*p);u.setSelectionCell(u.insertVertex(null,null,"",u.snap(e),u.snap(g),F,t,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-c+";"))}}),mxUtils.bind(this,function(){var t=null;u.getModel().beginUpdate();try{t=u.insertVertex(u.getDefaultParent(),null,c,u.snap(e),u.snap(g),1,1,"text;"+(q?"html=1;":"")),u.updateCellSize(t),u.fireEvent(new mxEventObject("textInserted","cells",[t]))}finally{u.getModel().endUpdate()}u.setSelectionCell(t)}))}else{c=Graph.zapGremlins(mxUtils.trim(c));if(this.isCompatibleString(c))return this.importXml(c,e,g,m,null,C);if(0<c.length)if(this.isLucidChartData(c))this.convertLucidChart(c,mxUtils.bind(this,
-function(t){this.editor.graph.setSelectionCells(this.importXml(t,e,g,m,null,C))}),mxUtils.bind(this,function(t){this.handleError(t)}));else{u=this.editor.graph;n=null;u.getModel().beginUpdate();try{n=u.insertVertex(u.getDefaultParent(),null,"",u.snap(e),u.snap(g),1,1,"text;whiteSpace=wrap;"+(q?"html=1;":""));u.fireEvent(new mxEventObject("textInserted","cells",[n]));"<"==c.charAt(0)&&c.indexOf(">")==c.length-1&&(c=mxUtils.htmlEntities(c));c.length>this.maxTextBytes&&(c=c.substring(0,this.maxTextBytes)+
-"...");n.value=c;u.updateCellSize(n);if(0<this.maxTextWidth&&n.geometry.width>this.maxTextWidth){var N=u.getPreferredSizeForCell(n,this.maxTextWidth);n.geometry.width=N.width;n.geometry.height=N.height}Graph.isLink(n.value)&&u.setLinkForCell(n,n.value);n.geometry.width+=u.gridSize;n.geometry.height+=u.gridSize}finally{u.getModel().endUpdate()}return[n]}}return[]};EditorUi.prototype.formatFileSize=function(c){var e=-1;do c/=1024,e++;while(1024<c);return Math.max(c,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[e]};
+c+";"))}}),mxUtils.bind(this,function(){var t=null;u.getModel().beginUpdate();try{t=u.insertVertex(u.getDefaultParent(),null,c,u.snap(e),u.snap(g),1,1,"text;"+(q?"html=1;":"")),u.updateCellSize(t),u.fireEvent(new mxEventObject("textInserted","cells",[t]))}finally{u.getModel().endUpdate()}u.setSelectionCell(t)}))}else{c=Graph.zapGremlins(mxUtils.trim(c));if(this.isCompatibleString(c))return this.importXml(c,e,g,n,null,C);if(0<c.length)if(this.isLucidChartData(c))this.convertLucidChart(c,mxUtils.bind(this,
+function(t){this.editor.graph.setSelectionCells(this.importXml(t,e,g,n,null,C))}),mxUtils.bind(this,function(t){this.handleError(t)}));else{u=this.editor.graph;m=null;u.getModel().beginUpdate();try{m=u.insertVertex(u.getDefaultParent(),null,"",u.snap(e),u.snap(g),1,1,"text;whiteSpace=wrap;"+(q?"html=1;":""));u.fireEvent(new mxEventObject("textInserted","cells",[m]));"<"==c.charAt(0)&&c.indexOf(">")==c.length-1&&(c=mxUtils.htmlEntities(c));c.length>this.maxTextBytes&&(c=c.substring(0,this.maxTextBytes)+
+"...");m.value=c;u.updateCellSize(m);if(0<this.maxTextWidth&&m.geometry.width>this.maxTextWidth){var N=u.getPreferredSizeForCell(m,this.maxTextWidth);m.geometry.width=N.width;m.geometry.height=N.height}Graph.isLink(m.value)&&u.setLinkForCell(m,m.value);m.geometry.width+=u.gridSize;m.geometry.height+=u.gridSize}finally{u.getModel().endUpdate()}return[m]}}return[]};EditorUi.prototype.formatFileSize=function(c){var e=-1;do c/=1024,e++;while(1024<c);return Math.max(c,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[e]};
EditorUi.prototype.convertDataUri=function(c){if("data:"==c.substring(0,5)){var e=c.indexOf(";");0<e&&(c=c.substring(0,e)+c.substring(c.indexOf(",",e+1)))}return c};EditorUi.prototype.isRemoteFileFormat=function(c,e){return/("contentType":\s*"application\/gliffy\+json")/.test(c)};EditorUi.prototype.isLucidChartData=function(c){return null!=c&&('{"state":"{\\"Properties\\":'==c.substring(0,26)||'{"Properties":'==c.substring(0,14))};EditorUi.prototype.importLocalFile=function(c,e){if(c&&Graph.fileSupport){if(null==
this.importFileInputElt){var g=document.createElement("input");g.setAttribute("type","file");mxEvent.addListener(g,"change",mxUtils.bind(this,function(){null!=g.files&&(this.importFiles(g.files,null,null,this.maxImageSize),g.type="",g.type="file",g.value="")}));g.style.display="none";document.body.appendChild(g);this.importFileInputElt=g}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(z,C){StorageFile.listFiles(this,
"F",z,C)});window.openBrowserFile=mxUtils.bind(this,function(z,C,u){StorageFile.getFileContent(this,z,C,u)});window.deleteBrowserFile=mxUtils.bind(this,function(z,C,u){StorageFile.deleteFile(this,z,C,u)});if(!e){var q=Editor.useLocalStorage;Editor.useLocalStorage=!c}window.openFile=new OpenFile(mxUtils.bind(this,function(z){this.hideDialog(z)}));window.openFile.setConsumer(mxUtils.bind(this,function(z,C){null!=C&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(C)?(z=new Blob([z],{type:"application/octet-stream"}),
-this.importVisio(z,mxUtils.bind(this,function(u){this.importXml(u,0,0,!0)}),null,C)):this.editor.graph.setSelectionCells(this.importXml(z,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!e){var n=this.dialog,m=n.close;this.dialog.close=mxUtils.bind(this,function(z){Editor.useLocalStorage=q;m.apply(n,arguments);z&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
-EditorUi.prototype.importZipFile=function(c,e,g){var q=this,n=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(c).then(function(m){if(mxUtils.isEmptyObject(m.files))g();else{var z=0,C,u=!1;m.forEach(function(y,I){y=I.name.toLowerCase();"diagram/diagram.xml"==y?(u=!0,I.async("string").then(function(N){0==N.indexOf("<mxfile ")?e(N):g()})):0==y.indexOf("versions/")&&(y=parseInt(y.substr(9)),y>z&&(z=y,C=I))});0<z?C.async("string").then(function(y){(new XMLHttpRequest).upload&&
-q.isRemoteFileFormat(y,c.name)?q.isOffline()?q.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,g):q.parseFileData(y,mxUtils.bind(this,function(I){4==I.readyState&&(200<=I.status&&299>=I.status?e(I.responseText):g())}),c.name):g()}):u||g()}},function(m){g(m)}):g()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?n():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",n))};EditorUi.prototype.importFile=function(c,e,g,q,n,m,z,C,u,y,I,N){y=null!=
+this.importVisio(z,mxUtils.bind(this,function(u){this.importXml(u,0,0,!0)}),null,C)):this.editor.graph.setSelectionCells(this.importXml(z,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!e){var m=this.dialog,n=m.close;this.dialog.close=mxUtils.bind(this,function(z){Editor.useLocalStorage=q;n.apply(m,arguments);z&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
+EditorUi.prototype.importZipFile=function(c,e,g){var q=this,m=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(c).then(function(n){if(mxUtils.isEmptyObject(n.files))g();else{var z=0,C,u=!1;n.forEach(function(y,I){y=I.name.toLowerCase();"diagram/diagram.xml"==y?(u=!0,I.async("string").then(function(N){0==N.indexOf("<mxfile ")?e(N):g()})):0==y.indexOf("versions/")&&(y=parseInt(y.substr(9)),y>z&&(z=y,C=I))});0<z?C.async("string").then(function(y){(new XMLHttpRequest).upload&&
+q.isRemoteFileFormat(y,c.name)?q.isOffline()?q.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,g):q.parseFileData(y,mxUtils.bind(this,function(I){4==I.readyState&&(200<=I.status&&299>=I.status?e(I.responseText):g())}),c.name):g()}):u||g()}},function(n){g(n)}):g()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?m():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",m))};EditorUi.prototype.importFile=function(c,e,g,q,m,n,z,C,u,y,I,N){y=null!=
y?y:!0;var t=!1,p=null,F=mxUtils.bind(this,function(J){var M=null;null!=J&&"<mxlibrary"==J.substring(0,10)?this.loadLibrary(new LocalLibrary(this,J,z)):M=this.importXml(J,g,q,y,null,null!=N?mxEvent.isControlDown(N):null);null!=C&&C(M)});"image"==e.substring(0,5)?(u=!1,"image/png"==e.substring(0,9)&&(e=I?null:this.extractGraphModelFromPng(c),null!=e&&0<e.length&&(p=this.importXml(e,g,q,y,null,null!=N?mxEvent.isControlDown(N):null),u=!0)),u||(e=this.editor.graph,u=c.indexOf(";"),0<u&&(c=c.substring(0,
-u)+c.substring(c.indexOf(",",u+1))),y&&e.isGridEnabled()&&(g=e.snap(g),q=e.snap(q)),p=[e.insertVertex(null,null,"",g,q,n,m,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+c+";")])):/(\.*<graphml )/.test(c)?(t=!0,this.importGraphML(c,F)):null!=u&&null!=z&&(/(\.v(dx|sdx?))($|\?)/i.test(z)||/(\.vs(x|sx?))($|\?)/i.test(z))?(t=!0,this.importVisio(u,F)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,z)?this.isOffline()?
-this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(t=!0,n=mxUtils.bind(this,function(J){4==J.readyState&&(200<=J.status&&299>=J.status?F(J.responseText):null!=C&&C(null))}),null!=c?this.parseFileData(c,n,z):this.parseFile(u,n,z)):0==c.indexOf("PK")&&null!=u?(t=!0,this.importZipFile(u,F,mxUtils.bind(this,function(){p=this.insertTextAt(this.validateFileData(c),g,q,!0,null,y);C(p)}))):/(\.v(sd|dx))($|\?)/i.test(z)||/(\.vs(s|x))($|\?)/i.test(z)||(p=this.insertTextAt(this.validateFileData(c),
-g,q,!0,null,y,null,null!=N?mxEvent.isControlDown(N):null));t||null==C||C(p);return p};EditorUi.prototype.importFiles=function(c,e,g,q,n,m,z,C,u,y,I,N,t){q=null!=q?q:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var p=null!=e&&null!=g,F=!0;e=null!=e?e:0;g=null!=g?g:0;var J=!1;if(!mxClient.IS_CHROMEAPP&&null!=c)for(var M=I||this.resampleThreshold,H=0;H<c.length;H++)if("image/svg"!==c[H].type.substring(0,9)&&"image/"===c[H].type.substring(0,6)&&c[H].size>M){J=!0;break}var G=mxUtils.bind(this,function(){var E=
-this.editor.graph,P=E.gridSize;n=null!=n?n:mxUtils.bind(this,function(A,L,Q,O,R,S,X,aa,Y){try{return null!=A&&"<mxlibrary"==A.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,A,X)),null):this.importFile(A,L,Q,O,R,S,X,aa,Y,p,N,t)}catch(Z){return this.handleError(Z),null}});m=null!=m?m:mxUtils.bind(this,function(A){E.setSelectionCells(A)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var T=c.length,W=T,U=[],V=mxUtils.bind(this,function(A,L){U[A]=L;if(0==
---W){this.spinner.stop();if(null!=C)C(U);else{var Q=[];E.getModel().beginUpdate();try{for(A=0;A<U.length;A++){var O=U[A]();null!=O&&(Q=Q.concat(O))}}finally{E.getModel().endUpdate()}}m(Q)}}),l=0;l<T;l++)mxUtils.bind(this,function(A){var L=c[A];if(null!=L){var Q=new FileReader;Q.onload=mxUtils.bind(this,function(O){if(null==z||z(L))if("image/"==L.type.substring(0,6))if("image/svg"==L.type.substring(0,9)){var R=Graph.clipSvgDataUri(O.target.result),S=R.indexOf(",");S=decodeURIComponent(escape(atob(R.substring(S+
+u)+c.substring(c.indexOf(",",u+1))),y&&e.isGridEnabled()&&(g=e.snap(g),q=e.snap(q)),p=[e.insertVertex(null,null,"",g,q,m,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+c+";")])):/(\.*<graphml )/.test(c)?(t=!0,this.importGraphML(c,F)):null!=u&&null!=z&&(/(\.v(dx|sdx?))($|\?)/i.test(z)||/(\.vs(x|sx?))($|\?)/i.test(z))?(t=!0,this.importVisio(u,F)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,z)?this.isOffline()?
+this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(t=!0,m=mxUtils.bind(this,function(J){4==J.readyState&&(200<=J.status&&299>=J.status?F(J.responseText):null!=C&&C(null))}),null!=c?this.parseFileData(c,m,z):this.parseFile(u,m,z)):0==c.indexOf("PK")&&null!=u?(t=!0,this.importZipFile(u,F,mxUtils.bind(this,function(){p=this.insertTextAt(this.validateFileData(c),g,q,!0,null,y);C(p)}))):/(\.v(sd|dx))($|\?)/i.test(z)||/(\.vs(s|x))($|\?)/i.test(z)||(p=this.insertTextAt(this.validateFileData(c),
+g,q,!0,null,y,null,null!=N?mxEvent.isControlDown(N):null));t||null==C||C(p);return p};EditorUi.prototype.importFiles=function(c,e,g,q,m,n,z,C,u,y,I,N,t){q=null!=q?q:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var p=null!=e&&null!=g,F=!0;e=null!=e?e:0;g=null!=g?g:0;var J=!1;if(!mxClient.IS_CHROMEAPP&&null!=c)for(var M=I||this.resampleThreshold,H=0;H<c.length;H++)if("image/svg"!==c[H].type.substring(0,9)&&"image/"===c[H].type.substring(0,6)&&c[H].size>M){J=!0;break}var G=mxUtils.bind(this,function(){var E=
+this.editor.graph,P=E.gridSize;m=null!=m?m:mxUtils.bind(this,function(A,L,Q,O,R,S,X,aa,Y){try{return null!=A&&"<mxlibrary"==A.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,A,X)),null):this.importFile(A,L,Q,O,R,S,X,aa,Y,p,N,t)}catch(Z){return this.handleError(Z),null}});n=null!=n?n:mxUtils.bind(this,function(A){E.setSelectionCells(A)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var T=c.length,W=T,U=[],V=mxUtils.bind(this,function(A,L){U[A]=L;if(0==
+--W){this.spinner.stop();if(null!=C)C(U);else{var Q=[];E.getModel().beginUpdate();try{for(A=0;A<U.length;A++){var O=U[A]();null!=O&&(Q=Q.concat(O))}}finally{E.getModel().endUpdate()}}n(Q)}}),l=0;l<T;l++)mxUtils.bind(this,function(A){var L=c[A];if(null!=L){var Q=new FileReader;Q.onload=mxUtils.bind(this,function(O){if(null==z||z(L))if("image/"==L.type.substring(0,6))if("image/svg"==L.type.substring(0,9)){var R=Graph.clipSvgDataUri(O.target.result),S=R.indexOf(",");S=decodeURIComponent(escape(atob(R.substring(S+
1))));var X=mxUtils.parseXml(S);S=X.getElementsByTagName("svg");if(0<S.length){S=S[0];var aa=N?null:S.getAttribute("content");null!=aa&&"<"!=aa.charAt(0)&&"%"!=aa.charAt(0)&&(aa=unescape(window.atob?atob(aa):Base64.decode(aa,!0)));null!=aa&&"%"==aa.charAt(0)&&(aa=decodeURIComponent(aa));null==aa||"<mxfile "!==aa.substring(0,8)&&"<mxGraphModel "!==aa.substring(0,14)?V(A,mxUtils.bind(this,function(){try{if(null!=X){var ca=X.getElementsByTagName("svg");if(0<ca.length){var fa=ca[0],la=fa.getAttribute("width"),
-ia=fa.getAttribute("height");la=null!=la&&"%"!=la.charAt(la.length-1)?parseFloat(la):NaN;ia=null!=ia&&"%"!=ia.charAt(ia.length-1)?parseFloat(ia):NaN;var qa=fa.getAttribute("viewBox");if(null==qa||0==qa.length)fa.setAttribute("viewBox","0 0 "+la+" "+ia);else if(isNaN(la)||isNaN(ia)){var ka=qa.split(" ");3<ka.length&&(la=parseFloat(ka[2]),ia=parseFloat(ka[3]))}R=Editor.createSvgDataUri(mxUtils.getXml(fa));var Da=Math.min(1,Math.min(q/Math.max(1,la)),q/Math.max(1,ia)),Ea=n(R,L.type,e+A*P,g+A*P,Math.max(1,
+ia=fa.getAttribute("height");la=null!=la&&"%"!=la.charAt(la.length-1)?parseFloat(la):NaN;ia=null!=ia&&"%"!=ia.charAt(ia.length-1)?parseFloat(ia):NaN;var qa=fa.getAttribute("viewBox");if(null==qa||0==qa.length)fa.setAttribute("viewBox","0 0 "+la+" "+ia);else if(isNaN(la)||isNaN(ia)){var ka=qa.split(" ");3<ka.length&&(la=parseFloat(ka[2]),ia=parseFloat(ka[3]))}R=Editor.createSvgDataUri(mxUtils.getXml(fa));var Da=Math.min(1,Math.min(q/Math.max(1,la)),q/Math.max(1,ia)),Ea=m(R,L.type,e+A*P,g+A*P,Math.max(1,
Math.round(la*Da)),Math.max(1,Math.round(ia*Da)),L.name);if(isNaN(la)||isNaN(ia)){var za=new Image;za.onload=mxUtils.bind(this,function(){la=Math.max(1,za.width);ia=Math.max(1,za.height);Ea[0].geometry.width=la;Ea[0].geometry.height=ia;fa.setAttribute("viewBox","0 0 "+la+" "+ia);R=Editor.createSvgDataUri(mxUtils.getXml(fa));var Oa=R.indexOf(";");0<Oa&&(R=R.substring(0,Oa)+R.substring(R.indexOf(",",Oa+1)));E.setCellStyles("image",R,[Ea[0]])});za.src=Editor.createSvgDataUri(mxUtils.getXml(fa))}return Ea}}}catch(Oa){}return null})):
-V(A,mxUtils.bind(this,function(){return n(aa,"text/xml",e+A*P,g+A*P,0,0,L.name)}))}else V(A,mxUtils.bind(this,function(){return null}))}else{S=!1;if("image/png"==L.type){var Y=N?null:this.extractGraphModelFromPng(O.target.result);if(null!=Y&&0<Y.length){var Z=new Image;Z.src=O.target.result;V(A,mxUtils.bind(this,function(){return n(Y,"text/xml",e+A*P,g+A*P,Z.width,Z.height,L.name)}));S=!0}}S||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),
-mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(O.target.result,mxUtils.bind(this,function(ca){this.resizeImage(ca,O.target.result,mxUtils.bind(this,function(fa,la,ia){V(A,mxUtils.bind(this,function(){if(null!=fa&&fa.length<y){var qa=F&&this.isResampleImageSize(L.size,I)?Math.min(1,Math.min(q/la,q/ia)):1;return n(fa,L.type,e+A*P,g+A*P,Math.round(la*qa),Math.round(ia*qa),L.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),F,q,I,L.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else R=O.target.result,n(R,L.type,e+A*P,g+A*P,240,160,L.name,function(ca){V(A,function(){return ca})},L)});/(\.v(dx|sdx?))($|\?)/i.test(L.name)||/(\.vs(x|sx?))($|\?)/i.test(L.name)?n(null,L.type,e+A*P,g+A*P,240,160,L.name,function(O){V(A,function(){return O})},L):"image"==L.type.substring(0,5)||"application/pdf"==L.type?Q.readAsDataURL(L):Q.readAsText(L)}})(l)});if(J){J=
+V(A,mxUtils.bind(this,function(){return m(aa,"text/xml",e+A*P,g+A*P,0,0,L.name)}))}else V(A,mxUtils.bind(this,function(){return null}))}else{S=!1;if("image/png"==L.type){var Y=N?null:this.extractGraphModelFromPng(O.target.result);if(null!=Y&&0<Y.length){var Z=new Image;Z.src=O.target.result;V(A,mxUtils.bind(this,function(){return m(Y,"text/xml",e+A*P,g+A*P,Z.width,Z.height,L.name)}));S=!0}}S||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),
+mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(O.target.result,mxUtils.bind(this,function(ca){this.resizeImage(ca,O.target.result,mxUtils.bind(this,function(fa,la,ia){V(A,mxUtils.bind(this,function(){if(null!=fa&&fa.length<y){var qa=F&&this.isResampleImageSize(L.size,I)?Math.min(1,Math.min(q/la,q/ia)):1;return m(fa,L.type,e+A*P,g+A*P,Math.round(la*qa),Math.round(ia*qa),L.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),F,q,I,L.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else R=O.target.result,m(R,L.type,e+A*P,g+A*P,240,160,L.name,function(ca){V(A,function(){return ca})},L)});/(\.v(dx|sdx?))($|\?)/i.test(L.name)||/(\.vs(x|sx?))($|\?)/i.test(L.name)?m(null,L.type,e+A*P,g+A*P,240,160,L.name,function(O){V(A,function(){return O})},L):"image"==L.type.substring(0,5)||"application/pdf"==L.type?Q.readAsDataURL(L):Q.readAsText(L)}})(l)});if(J){J=
[];for(H=0;H<c.length;H++)J.push(c[H]);c=J;this.confirmImageResize(function(E){F=E;G()},u)}else G()};EditorUi.prototype.isBlankFile=function(){return null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1])};EditorUi.prototype.confirmImageResize=function(c,e){e=null!=e?e:!1;var g=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},q=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():
-null,n=function(m,z){if(m||e)mxSettings.setResizeImages(m?z:null),mxSettings.save();g();c(z)};null==q||e?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(m){n(m,!0)},function(m){n(m,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,
-!0,!0):n(!1,q)};EditorUi.prototype.parseFile=function(c,e,g){g=null!=g?g:c.name;var q=new FileReader;q.onload=mxUtils.bind(this,function(){this.parseFileData(q.result,e,g)});q.readAsText(c)};EditorUi.prototype.parseFileData=function(c,e,g){var q=new XMLHttpRequest;q.open("POST",OPEN_URL);q.setRequestHeader("Content-Type","application/x-www-form-urlencoded");q.onreadystatechange=function(){e(q)};q.send("format=xml&filename="+encodeURIComponent(g)+"&data="+encodeURIComponent(c));try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",
-action:"size_"+file.size})}catch(n){}};EditorUi.prototype.isResampleImageSize=function(c,e){e=null!=e?e:this.resampleThreshold;return c>e};EditorUi.prototype.resizeImage=function(c,e,g,q,n,m,z){n=null!=n?n:this.maxImageSize;var C=Math.max(1,c.width),u=Math.max(1,c.height);if(q&&this.isResampleImageSize(null!=z?z:e.length,m))try{var y=Math.max(C/n,u/n);if(1<y){var I=Math.round(C/y),N=Math.round(u/y),t=document.createElement("canvas");t.width=I;t.height=N;t.getContext("2d").drawImage(c,0,0,I,N);var p=
-t.toDataURL();if(p.length<e.length){var F=document.createElement("canvas");F.width=I;F.height=N;var J=F.toDataURL();p!==J&&(e=p,C=I,u=N)}}}catch(M){}g(e,C,u)};EditorUi.prototype.extractGraphModelFromPng=function(c){return Editor.extractGraphModelFromPng(c)};EditorUi.prototype.loadImage=function(c,e,g){try{var q=new Image;q.onload=function(){q.width=0<q.width?q.width:120;q.height=0<q.height?q.height:120;e(q)};null!=g&&(q.onerror=g);q.src=c}catch(n){if(null!=g)g(n);else throw n;}};EditorUi.prototype.getDefaultSketchMode=
+null,m=function(n,z){if(n||e)mxSettings.setResizeImages(n?z:null),mxSettings.save();g();c(z)};null==q||e?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(n){m(n,!0)},function(n){m(n,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,
+!0,!0):m(!1,q)};EditorUi.prototype.parseFile=function(c,e,g){g=null!=g?g:c.name;var q=new FileReader;q.onload=mxUtils.bind(this,function(){this.parseFileData(q.result,e,g)});q.readAsText(c)};EditorUi.prototype.parseFileData=function(c,e,g){var q=new XMLHttpRequest;q.open("POST",OPEN_URL);q.setRequestHeader("Content-Type","application/x-www-form-urlencoded");q.onreadystatechange=function(){e(q)};q.send("format=xml&filename="+encodeURIComponent(g)+"&data="+encodeURIComponent(c));try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",
+action:"size_"+file.size})}catch(m){}};EditorUi.prototype.isResampleImageSize=function(c,e){e=null!=e?e:this.resampleThreshold;return c>e};EditorUi.prototype.resizeImage=function(c,e,g,q,m,n,z){m=null!=m?m:this.maxImageSize;var C=Math.max(1,c.width),u=Math.max(1,c.height);if(q&&this.isResampleImageSize(null!=z?z:e.length,n))try{var y=Math.max(C/m,u/m);if(1<y){var I=Math.round(C/y),N=Math.round(u/y),t=document.createElement("canvas");t.width=I;t.height=N;t.getContext("2d").drawImage(c,0,0,I,N);var p=
+t.toDataURL();if(p.length<e.length){var F=document.createElement("canvas");F.width=I;F.height=N;var J=F.toDataURL();p!==J&&(e=p,C=I,u=N)}}}catch(M){}g(e,C,u)};EditorUi.prototype.extractGraphModelFromPng=function(c){return Editor.extractGraphModelFromPng(c)};EditorUi.prototype.loadImage=function(c,e,g){try{var q=new Image;q.onload=function(){q.width=0<q.width?q.width:120;q.height=0<q.height?q.height:120;e(q)};null!=g&&(q.onerror=g);q.src=c}catch(m){if(null!=g)g(m);else throw m;}};EditorUi.prototype.getDefaultSketchMode=
function(){var c="ac.draw.io"==window.location.host?"1":"0";return"0"!=(null!=urlParams.rough?urlParams.rough:c)};var v=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:this.getDefaultSketchMode()),null!=mxSettings.settings.sidebarTitles&&(Sidebar.prototype.sidebarTitles=
mxSettings.settings.sidebarTitles),this.formatWidth=mxSettings.getFormatWidth());var c=this,e=this.editor.graph;Graph.touchStyle&&(e.panningHandler.isPanningTrigger=function(M){var H=M.getEvent();return null==M.getState()&&!mxEvent.isMouseEvent(H)&&!e.freehand.isDrawing()||mxEvent.isPopupTrigger(H)&&(null==M.getState()||mxEvent.isControlDown(H)||mxEvent.isShiftDown(H))});e.cellEditor.editPlantUmlData=function(M,H,G){var E=JSON.parse(G);H=new TextareaDialog(c,mxResources.get("plantUml")+":",E.data,
function(P){null!=P&&c.spinner.spin(document.body,mxResources.get("inserting"))&&c.generatePlantUmlImage(P,E.format,function(T,W,U){c.spinner.stop();e.getModel().beginUpdate();try{if("txt"==E.format)e.labelChanged(M,"<pre>"+T+"</pre>"),e.updateCellSize(M,!0);else{e.setCellStyles("image",c.convertDataUri(T),[M]);var V=e.model.getGeometry(M);null!=V&&(V=V.clone(),V.width=W,V.height=U,e.cellsResized([M],[V],!1))}e.setAttributeForCell(M,"plantUmlData",JSON.stringify({data:P,format:E.format}))}finally{e.getModel().endUpdate()}},
function(T){c.handleError(T)})},null,null,400,220);c.showDialog(H.container,420,300,!0,!0);H.init()};e.cellEditor.editMermaidData=function(M,H,G){var E=JSON.parse(G);H=new TextareaDialog(c,mxResources.get("mermaid")+":",E.data,function(P){null!=P&&c.spinner.spin(document.body,mxResources.get("inserting"))&&c.generateMermaidImage(P,E.config,function(T,W,U){c.spinner.stop();e.getModel().beginUpdate();try{e.setCellStyles("image",T,[M]);var V=e.model.getGeometry(M);null!=V&&(V=V.clone(),V.width=Math.max(V.width,
W),V.height=Math.max(V.height,U),e.cellsResized([M],[V],!1));e.setAttributeForCell(M,"mermaidData",JSON.stringify({data:P,config:E.config},null,2))}finally{e.getModel().endUpdate()}},function(T){c.handleError(T)})},null,null,400,220);c.showDialog(H.container,420,300,!0,!0);H.init()};var g=e.cellEditor.startEditing;e.cellEditor.startEditing=function(M,H){try{var G=this.graph.getAttributeForCell(M,"plantUmlData");if(null!=G)this.editPlantUmlData(M,H,G);else if(G=this.graph.getAttributeForCell(M,"mermaidData"),
null!=G)this.editMermaidData(M,H,G);else{var E=e.getCellStyle(M);"1"==mxUtils.getValue(E,"metaEdit","0")?c.showDataDialog(M):g.apply(this,arguments)}}catch(P){c.handleError(P)}};e.getLinkTitle=function(M){return c.getLinkTitle(M)};e.customLinkClicked=function(M){var H=!1;try{c.handleCustomLink(M),H=!0}catch(G){c.handleError(G)}return H};var q=e.parseBackgroundImage;e.parseBackgroundImage=function(M){var H=q.apply(this,arguments);null!=H&&null!=H.src&&Graph.isPageLink(H.src)&&(H={originalSrc:H.src});
-return H};var n=e.setBackgroundImage;e.setBackgroundImage=function(M){null!=M&&null!=M.originalSrc&&(M=c.createImageForPageLink(M.originalSrc,c.currentPage,this));n.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){e.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){e.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(M,H){M=null!=e.backgroundImage?e.backgroundImage.originalSrc:
-null;if(null!=M){var G=M.indexOf(",");if(0<G)for(M=M.substring(G+1),H=H.getProperty("patches"),G=0;G<H.length;G++)if(null!=H[G][EditorUi.DIFF_UPDATE]&&null!=H[G][EditorUi.DIFF_UPDATE][M]||null!=H[G][EditorUi.DIFF_REMOVE]&&0<=mxUtils.indexOf(H[G][EditorUi.DIFF_REMOVE],M)){e.refreshBackgroundImage();break}}}));var m=e.getBackgroundImageObject;e.getBackgroundImageObject=function(M,H){var G=m.apply(this,arguments);if(null!=G&&null!=G.originalSrc)if(!H)G={src:G.originalSrc};else if(H&&null!=this.themes&&
+return H};var m=e.setBackgroundImage;e.setBackgroundImage=function(M){null!=M&&null!=M.originalSrc&&(M=c.createImageForPageLink(M.originalSrc,c.currentPage,this));m.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){e.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){e.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(M,H){M=null!=e.backgroundImage?e.backgroundImage.originalSrc:
+null;if(null!=M){var G=M.indexOf(",");if(0<G)for(M=M.substring(G+1),H=H.getProperty("patches"),G=0;G<H.length;G++)if(null!=H[G][EditorUi.DIFF_UPDATE]&&null!=H[G][EditorUi.DIFF_UPDATE][M]||null!=H[G][EditorUi.DIFF_REMOVE]&&0<=mxUtils.indexOf(H[G][EditorUi.DIFF_REMOVE],M)){e.refreshBackgroundImage();break}}}));var n=e.getBackgroundImageObject;e.getBackgroundImageObject=function(M,H){var G=n.apply(this,arguments);if(null!=G&&null!=G.originalSrc)if(!H)G={src:G.originalSrc};else if(H&&null!=this.themes&&
"darkTheme"==this.defaultThemeName){var E=this.stylesheet,P=this.shapeForegroundColor,T=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";G=c.createImageForPageLink(G.originalSrc);this.shapeBackgroundColor=T;this.shapeForegroundColor=P;this.stylesheet=E}return G};var z=this.clearDefaultStyle;this.clearDefaultStyle=function(){z.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||
(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var C=c.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(M){M=null!=M?M:"";"1"==urlParams.dev&&(M+=(0<M.length?"&":"?")+"dev=1");return C.apply(this,arguments)};var u=e.addClickHandler;e.addClickHandler=function(M,H,G){var E=H;
H=function(P,T){if(null==T){var W=mxEvent.getSource(P);"a"==W.nodeName.toLowerCase()&&(T=W.getAttribute("href"))}null!=T&&e.isCustomLink(T)&&(mxEvent.isTouchEvent(P)||!mxEvent.isPopupTrigger(P))&&e.customLinkClicked(T)&&mxEvent.consume(P);null!=E&&E(P,T)};u.call(this,M,H,G)};v.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(e.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var y=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(M,H,G){c.editor.graph.isSelectionEmpty()?
@@ -12002,13 +12002,13 @@ this.getCurrentFile()&&this.fileLoaded(null),this.openFiles(G,!0)):(mxEvent.isAl
function(){e.setSelectionCells(this.insertTextAt(V,T,W,!0,l,null,A,mxEvent.isControlDown(M)))});l&&null!=V&&V.length>this.resampleThreshold?this.confirmImageResize(function(Q){A=Q;L()},mxEvent.isControlDown(M)):L()}else null!=U&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(U)?this.loadImage(decodeURIComponent(U),mxUtils.bind(this,function(Q){var O=Math.max(1,Q.width);Q=Math.max(1,Q.height);var R=this.maxImageSize;R=Math.min(1,Math.min(R/Math.max(1,O)),R/Math.max(1,Q));e.setSelectionCell(e.insertVertex(null,
null,"",T,W,O*R,Q*R,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+U+";"))}),mxUtils.bind(this,function(Q){e.setSelectionCells(this.insertTextAt(U,T,W,!0))})):0<=mxUtils.indexOf(M.dataTransfer.types,"text/plain")&&e.setSelectionCells(this.insertTextAt(M.dataTransfer.getData("text/plain"),T,W,!0))}}M.stopPropagation();M.preventDefault()}),!1)}e.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();
p=mxUtils.bind(this,function(){e.refresh();e.view.validateBackground();this.updateTabContainer()});this.addListener("darkModeChanged",p);this.addListener("sketchModeChanged",p);"dark"==uiTheme?(this.doSetDarkMode(!0),this.fireEvent(new mxEventObject("darkModeChanged"))):"min"==uiTheme&&"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);
-this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var c=this.editor.graph;c.container.addEventListener("paste",mxUtils.bind(this,function(e){if(!mxEvent.isConsumed(e))try{for(var g=e.clipboardData||e.originalEvent.clipboardData,q=!1,n=0;n<g.types.length;n++)if("text/"===g.types[n].substring(0,5)){q=!0;break}if(!q){var m=g.items;for(index in m){var z=m[index];if("file"===z.kind){if(c.isEditing())this.importFiles([z.getAsFile()],0,0,this.maxImageSize,
+this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var c=this.editor.graph;c.container.addEventListener("paste",mxUtils.bind(this,function(e){if(!mxEvent.isConsumed(e))try{for(var g=e.clipboardData||e.originalEvent.clipboardData,q=!1,m=0;m<g.types.length;m++)if("text/"===g.types[m].substring(0,5)){q=!0;break}if(!q){var n=g.items;for(index in n){var z=n[index];if("file"===z.kind){if(c.isEditing())this.importFiles([z.getAsFile()],0,0,this.maxImageSize,
function(u,y,I,N,t,p){c.insertImage(u,t,p)},function(){},function(u){return"image/"==u.type.substring(0,6)},function(u){for(var y=0;y<u.length;y++)u[y]()});else{var C=this.editor.graph.getInsertPoint();this.importFiles([z.getAsFile()],C.x,C.y,this.maxImageSize);mxEvent.consume(e)}break}}}}catch(u){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function c(){window.setTimeout(function(){g.innerHTML="&nbsp;";g.focus();document.execCommand("selectAll",!1,null)},0)}var e=this.editor.graph,
g=document.createElement("div");g.setAttribute("autocomplete","off");g.setAttribute("autocorrect","off");g.setAttribute("autocapitalize","off");g.setAttribute("spellcheck","false");g.style.textRendering="optimizeSpeed";g.style.fontFamily="monospace";g.style.wordBreak="break-all";g.style.background="transparent";g.style.color="transparent";g.style.position="absolute";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.display="block";g.style.fontSize="1";g.style.zIndex="-1";g.style.resize=
-"none";g.style.outline="none";g.style.width="1px";g.style.height="1px";mxUtils.setOpacity(g,0);g.contentEditable=!0;g.innerHTML="&nbsp;";var q=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(m){var z=mxEvent.getSource(m);null==e.container||!e.isEnabled()||e.isMouseDown||e.isEditing()||null!=this.dialog||"INPUT"==z.nodeName||"TEXTAREA"==z.nodeName||224!=m.keyCode&&
-(mxClient.IS_MAC||17!=m.keyCode)&&(!mxClient.IS_MAC||91!=m.keyCode&&93!=m.keyCode)||q||(g.style.left=e.container.scrollLeft+10+"px",g.style.top=e.container.scrollTop+10+"px",e.container.appendChild(g),q=!0,g.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(m){var z=m.keyCode;window.setTimeout(mxUtils.bind(this,function(){!q||224!=z&&17!=z&&91!=z&&93!=z||(q=!1,e.isEditing()||null!=this.dialog||null==e.container||e.container.focus(),
-g.parentNode.removeChild(g),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(g,"copy",mxUtils.bind(this,function(m){if(e.isEnabled())try{mxClipboard.copy(e),this.copyCells(g),c()}catch(z){this.handleError(z)}}));mxEvent.addListener(g,"cut",mxUtils.bind(this,function(m){if(e.isEnabled())try{mxClipboard.copy(e),this.copyCells(g,!0),c()}catch(z){this.handleError(z)}}));mxEvent.addListener(g,"paste",mxUtils.bind(this,function(m){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&
-(g.innerHTML="&nbsp;",g.focus(),null!=m.clipboardData&&this.pasteCells(m,g,!0,!0),mxEvent.isConsumed(m)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(m,g,!1,!0)}),0))}),!0);var n=this.isSelectionAllowed;this.isSelectionAllowed=function(m){return mxEvent.getSource(m)==g?!0:n.apply(this,arguments)}};EditorUi.prototype.setCurrentTheme=function(c,e){mxSettings.setUi(c);this.doSetCurrentTheme(c);this.fireEvent(new mxEventObject("currentThemeChanged"));e||this.alert(mxResources.get("restartForChangeRequired"))};
+"none";g.style.outline="none";g.style.width="1px";g.style.height="1px";mxUtils.setOpacity(g,0);g.contentEditable=!0;g.innerHTML="&nbsp;";var q=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(n){var z=mxEvent.getSource(n);null==e.container||!e.isEnabled()||e.isMouseDown||e.isEditing()||null!=this.dialog||"INPUT"==z.nodeName||"TEXTAREA"==z.nodeName||224!=n.keyCode&&
+(mxClient.IS_MAC||17!=n.keyCode)&&(!mxClient.IS_MAC||91!=n.keyCode&&93!=n.keyCode)||q||(g.style.left=e.container.scrollLeft+10+"px",g.style.top=e.container.scrollTop+10+"px",e.container.appendChild(g),q=!0,g.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(n){var z=n.keyCode;window.setTimeout(mxUtils.bind(this,function(){!q||224!=z&&17!=z&&91!=z&&93!=z||(q=!1,e.isEditing()||null!=this.dialog||null==e.container||e.container.focus(),
+g.parentNode.removeChild(g),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(g,"copy",mxUtils.bind(this,function(n){if(e.isEnabled())try{mxClipboard.copy(e),this.copyCells(g),c()}catch(z){this.handleError(z)}}));mxEvent.addListener(g,"cut",mxUtils.bind(this,function(n){if(e.isEnabled())try{mxClipboard.copy(e),this.copyCells(g,!0),c()}catch(z){this.handleError(z)}}));mxEvent.addListener(g,"paste",mxUtils.bind(this,function(n){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&
+(g.innerHTML="&nbsp;",g.focus(),null!=n.clipboardData&&this.pasteCells(n,g,!0,!0),mxEvent.isConsumed(n)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(n,g,!1,!0)}),0))}),!0);var m=this.isSelectionAllowed;this.isSelectionAllowed=function(n){return mxEvent.getSource(n)==g?!0:m.apply(this,arguments)}};EditorUi.prototype.setCurrentTheme=function(c,e){mxSettings.setUi(c);this.doSetCurrentTheme(c);this.fireEvent(new mxEventObject("currentThemeChanged"));e||this.alert(mxResources.get("restartForChangeRequired"))};
EditorUi.prototype.doSetCurrentTheme=function(c){Editor.currentTheme!=c&&(Editor.currentTheme=c)};EditorUi.prototype.setSketchMode=function(c){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(c);null==urlParams.rough&&(mxSettings.settings.sketchMode=c,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+
(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body .geSidebarContainer *:not(svg *) { font-size:9pt; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }.geStatus > div { box-sizing: border-box; max-width: 100%; text-overflow: ellipsis; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
@@ -12025,8 +12025,8 @@ x.setAttribute("charset","UTF-8");x.setAttribute("type","text/css");EditorUi.pro
e.defaultPageBorderColor;Graph.prototype.shapeBackgroundColor=e.shapeBackgroundColor;Graph.prototype.shapeForegroundColor=e.shapeForegroundColor;Graph.prototype.defaultThemeName=e.defaultThemeName;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:
"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;null!=Editor.styleElt&&(Editor.styleElt.innerHTML=Editor.createMinimalCss());Editor.isDarkMode()?null==x.parentNode&&document.getElementsByTagName("head")[0].appendChild(x):null!=x.parentNode&&x.parentNode.removeChild(x)}};
EditorUi.prototype.setPagesVisible=function(c){Editor.pagesVisible!=c&&(Editor.pagesVisible=c,mxSettings.settings.pagesVisible=c,mxSettings.save(),this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setSidebarTitles=function(c,e){this.sidebar.sidebarTitles!=c&&(this.sidebar.sidebarTitles=c,this.sidebar.refresh(),this.isSettingsEnabled()&&e&&(mxSettings.settings.sidebarTitles=c,mxSettings.save()),this.fireEvent(new mxEventObject("sidebarTitlesChanged")))};EditorUi.prototype.setInlineFullscreen=
-function(c){Editor.inlineFullscreen!=c&&(Editor.inlineFullscreen=c,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};EditorUi.prototype.doSetSketchMode=function(c){if(Editor.sketchMode!=c){var e=function(q,n,m){null==
-q[n]&&(q[n]=m)},g=this.editor.graph;Editor.sketchMode=c;this.menus.defaultFontSize=c?20:16;g.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);e(g.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);g.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);e(g.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-4);e(g.defaultEdgeStyle,"edgeStyle","none");e(g.defaultEdgeStyle,"rounded","0");e(g.defaultEdgeStyle,"curved","1");e(g.defaultEdgeStyle,"jettySize","auto");
+function(c){Editor.inlineFullscreen!=c&&(Editor.inlineFullscreen=c,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};EditorUi.prototype.doSetSketchMode=function(c){if(Editor.sketchMode!=c){var e=function(q,m,n){null==
+q[m]&&(q[m]=n)},g=this.editor.graph;Editor.sketchMode=c;this.menus.defaultFontSize=c?20:16;g.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);e(g.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);g.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);e(g.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-4);e(g.defaultEdgeStyle,"edgeStyle","none");e(g.defaultEdgeStyle,"rounded","0");e(g.defaultEdgeStyle,"curved","1");e(g.defaultEdgeStyle,"jettySize","auto");
e(g.defaultEdgeStyle,"orthogonalLoop","1");e(g.defaultEdgeStyle,"endArrow","open");e(g.defaultEdgeStyle,"endSize","14");e(g.defaultEdgeStyle,"startSize","14");c&&(e(g.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),e(g.defaultVertexStyle,"fontSource",Editor.sketchFontSource),e(g.defaultVertexStyle,"hachureGap","4"),e(g.defaultVertexStyle,"sketch","1"),e(g.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),e(g.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),e(g.defaultEdgeStyle,
"sketch","1"),e(g.defaultEdgeStyle,"hachureGap","4"),e(g.defaultEdgeStyle,"sourcePerimeterSpacing","8"),e(g.defaultEdgeStyle,"targetPerimeterSpacing","8"));g.currentVertexStyle=mxUtils.clone(g.defaultVertexStyle);g.currentEdgeStyle=mxUtils.clone(g.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(c){var e=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(c)){var g=c.indexOf(",");0<g&&(e=this.getPageById(c.substring(g+1)),e=null!=e?e.getName():
mxResources.get("pageNotFound"))}else"data:"==c.substring(0,5)&&(e=mxResources.get("action"));return e};EditorUi.prototype.handleCustomLink=function(c){if(Graph.isPageLink(c)){var e=c.indexOf(",");if(c=this.getPageById(c.substring(e+1)))this.selectPage(c);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(c)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};
@@ -12035,39 +12035,39 @@ EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Edito
function(c,e){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(c,e){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.editor.graph.view.defaultDarkGridColor=
mxSettings.getGridColor(!0);this.editor.graph.view.defaultGridColor=mxSettings.getGridColor(!1);this.addListener("gridColorChanged",mxUtils.bind(this,function(c,e){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(c,e){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=
this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);
-mxSettings.save()})}};EditorUi.prototype.copyImage=function(c,e,g){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(q,n){try{this.spinner.stop();var m=this.createImageDataUri(q,e,"png"),z=parseInt(n.getAttribute("width")),C=parseInt(n.getAttribute("height"));this.writeImageToClipboard(m,z,C,mxUtils.bind(this,function(u){this.handleError(u)}))}catch(u){this.handleError(u)}}),null,null,null,mxUtils.bind(this,
-function(q){this.spinner.stop();this.handleError(q)}),null,null,null!=g?g:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<c.length?c:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(c,e,g,q){var n=this.base64ToBlob(c.substring(c.indexOf(",")+1),"image/png");c=new ClipboardItem({"image/png":n,"text/html":new Blob(['<img src="'+c+'" width="'+e+'" height="'+g+'">'],{type:"text/html"})});navigator.clipboard.write([c])["catch"](q)};
-EditorUi.prototype.copyCells=function(c,e){var g=this.editor.graph;if(g.isSelectionEmpty())c.innerText="";else{var q=mxUtils.sortCells(g.model.getTopmostCells(g.getSelectionCells())),n=mxUtils.getXml(g.encodeCells(q));mxUtils.setTextContent(c,encodeURIComponent(n));e?(g.removeCells(q,!1),g.lastPasteXml=null):(g.lastPasteXml=n,g.pasteCounter=0);c.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var c=null;if(Editor.enableNativeCipboard){var e=this.editor.graph;
-e.isSelectionEmpty()||(c=mxUtils.sortCells(e.getExportableCells(e.model.getTopmostCells(e.getSelectionCells()))),e=mxUtils.getXml(e.encodeCells(c)),navigator.clipboard.writeText(e))}return c};EditorUi.prototype.pasteXml=function(c,e,g,q){var n=this.editor.graph,m=null;n.lastPasteXml==c?n.pasteCounter++:(n.lastPasteXml=c,n.pasteCounter=0);var z=n.pasteCounter*n.gridSize;if(g||this.isCompatibleString(c))m=this.importXml(c,z,z),n.setSelectionCells(m);else if(e&&1==n.getSelectionCount()){z=n.getStartEditingCell(n.getSelectionCell(),
-q);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&"image"==n.getCurrentCellStyle(z)[mxConstants.STYLE_SHAPE])n.setCellStyles(mxConstants.STYLE_IMAGE,c,[z]);else{n.model.beginUpdate();try{n.labelChanged(z,c),Graph.isLink(c)&&n.setLinkForCell(z,c)}finally{n.model.endUpdate()}}n.setSelectionCell(z)}else m=n.getInsertPoint(),n.isMouseInsertPoint()&&(z=0,n.lastPasteXml==c&&0<n.pasteCounter&&n.pasteCounter--),m=this.insertTextAt(c,m.x+z,m.y+z,!0),n.setSelectionCells(m);n.isSelectionEmpty()||(n.scrollCellToVisible(n.getSelectionCell()),
-null!=this.hoverIcons&&this.hoverIcons.update(n.view.getState(n.getSelectionCell())));return m};EditorUi.prototype.pasteCells=function(c,e,g,q){if(!mxEvent.isConsumed(c)){var n=e,m=!1;if(g&&null!=c.clipboardData&&c.clipboardData.getData){var z=c.clipboardData.getData("text/plain"),C=!1;if(null!=z&&0<z.length&&"%3CmxGraphModel%3E"==z.substring(0,18))try{var u=decodeURIComponent(z);this.isCompatibleString(u)&&(C=!0,z=u)}catch(F){}C=C?null:c.clipboardData.getData("text/html");null!=C&&0<C.length?(n=
-this.parseHtmlData(C),m="text/plain"!=n.getAttribute("data-type")):null!=z&&0<z.length&&(n=document.createElement("div"),mxUtils.setTextContent(n,C))}z=n.getElementsByTagName("span");if(null!=z&&0<z.length&&"application/vnd.lucid.chart.objects"===z[0].getAttribute("data-lucid-type"))g=z[0].getAttribute("data-lucid-content"),null!=g&&0<g.length&&(this.convertLucidChart(g,mxUtils.bind(this,function(F){var J=this.editor.graph;J.lastPasteXml==F?J.pasteCounter++:(J.lastPasteXml=F,J.pasteCounter=0);var M=
-J.pasteCounter*J.gridSize;J.setSelectionCells(this.importXml(F,M,M));J.scrollCellToVisible(J.getSelectionCell())}),mxUtils.bind(this,function(F){this.handleError(F)})),mxEvent.consume(c));else{var y=m?n.innerHTML:mxUtils.trim(null==n.innerText?mxUtils.getTextContent(n):n.innerText),I=!1;try{var N=y.lastIndexOf("%3E");0<=N&&N<y.length-3&&(y=y.substring(0,N+3))}catch(F){}try{z=n.getElementsByTagName("span"),(u=null!=z&&0<z.length?mxUtils.trim(decodeURIComponent(z[0].textContent)):decodeURIComponent(y))&&
+mxSettings.save()})}};EditorUi.prototype.copyImage=function(c,e,g){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(q,m){try{this.spinner.stop();var n=this.createImageDataUri(q,e,"png"),z=parseInt(m.getAttribute("width")),C=parseInt(m.getAttribute("height"));this.writeImageToClipboard(n,z,C,mxUtils.bind(this,function(u){this.handleError(u)}))}catch(u){this.handleError(u)}}),null,null,null,mxUtils.bind(this,
+function(q){this.spinner.stop();this.handleError(q)}),null,null,null!=g?g:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<c.length?c:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(c,e,g,q){var m=this.base64ToBlob(c.substring(c.indexOf(",")+1),"image/png");c=new ClipboardItem({"image/png":m,"text/html":new Blob(['<img src="'+c+'" width="'+e+'" height="'+g+'">'],{type:"text/html"})});navigator.clipboard.write([c])["catch"](q)};
+EditorUi.prototype.copyCells=function(c,e){var g=this.editor.graph;if(g.isSelectionEmpty())c.innerText="";else{var q=mxUtils.sortCells(g.model.getTopmostCells(g.getSelectionCells())),m=mxUtils.getXml(g.encodeCells(q));mxUtils.setTextContent(c,encodeURIComponent(m));e?(g.removeCells(q,!1),g.lastPasteXml=null):(g.lastPasteXml=m,g.pasteCounter=0);c.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var c=null;if(Editor.enableNativeCipboard){var e=this.editor.graph;
+e.isSelectionEmpty()||(c=mxUtils.sortCells(e.getExportableCells(e.model.getTopmostCells(e.getSelectionCells()))),e=mxUtils.getXml(e.encodeCells(c)),navigator.clipboard.writeText(e))}return c};EditorUi.prototype.pasteXml=function(c,e,g,q){var m=this.editor.graph,n=null;m.lastPasteXml==c?m.pasteCounter++:(m.lastPasteXml=c,m.pasteCounter=0);var z=m.pasteCounter*m.gridSize;if(g||this.isCompatibleString(c))n=this.importXml(c,z,z),m.setSelectionCells(n);else if(e&&1==m.getSelectionCount()){z=m.getStartEditingCell(m.getSelectionCell(),
+q);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&"image"==m.getCurrentCellStyle(z)[mxConstants.STYLE_SHAPE])m.setCellStyles(mxConstants.STYLE_IMAGE,c,[z]);else{m.model.beginUpdate();try{m.labelChanged(z,c),Graph.isLink(c)&&m.setLinkForCell(z,c)}finally{m.model.endUpdate()}}m.setSelectionCell(z)}else n=m.getInsertPoint(),m.isMouseInsertPoint()&&(z=0,m.lastPasteXml==c&&0<m.pasteCounter&&m.pasteCounter--),n=this.insertTextAt(c,n.x+z,n.y+z,!0),m.setSelectionCells(n);m.isSelectionEmpty()||(m.scrollCellToVisible(m.getSelectionCell()),
+null!=this.hoverIcons&&this.hoverIcons.update(m.view.getState(m.getSelectionCell())));return n};EditorUi.prototype.pasteCells=function(c,e,g,q){if(!mxEvent.isConsumed(c)){var m=e,n=!1;if(g&&null!=c.clipboardData&&c.clipboardData.getData){var z=c.clipboardData.getData("text/plain"),C=!1;if(null!=z&&0<z.length&&"%3CmxGraphModel%3E"==z.substring(0,18))try{var u=decodeURIComponent(z);this.isCompatibleString(u)&&(C=!0,z=u)}catch(F){}C=C?null:c.clipboardData.getData("text/html");null!=C&&0<C.length?(m=
+this.parseHtmlData(C),n="text/plain"!=m.getAttribute("data-type")):null!=z&&0<z.length&&(m=document.createElement("div"),mxUtils.setTextContent(m,C))}z=m.getElementsByTagName("span");if(null!=z&&0<z.length&&"application/vnd.lucid.chart.objects"===z[0].getAttribute("data-lucid-type"))g=z[0].getAttribute("data-lucid-content"),null!=g&&0<g.length&&(this.convertLucidChart(g,mxUtils.bind(this,function(F){var J=this.editor.graph;J.lastPasteXml==F?J.pasteCounter++:(J.lastPasteXml=F,J.pasteCounter=0);var M=
+J.pasteCounter*J.gridSize;J.setSelectionCells(this.importXml(F,M,M));J.scrollCellToVisible(J.getSelectionCell())}),mxUtils.bind(this,function(F){this.handleError(F)})),mxEvent.consume(c));else{var y=n?m.innerHTML:mxUtils.trim(null==m.innerText?mxUtils.getTextContent(m):m.innerText),I=!1;try{var N=y.lastIndexOf("%3E");0<=N&&N<y.length-3&&(y=y.substring(0,N+3))}catch(F){}try{z=m.getElementsByTagName("span"),(u=null!=z&&0<z.length?mxUtils.trim(decodeURIComponent(z[0].textContent)):decodeURIComponent(y))&&
(this.isCompatibleString(u)||0==u.substring(0,20).replace(/\s/g,"").indexOf('{"isProtected":'))&&(I=!0,y=u)}catch(F){}try{if(null!=y&&0<y.length){if(0==y.substring(0,20).replace(/\s/g,"").indexOf('{"isProtected":')){var t=mxUtils.bind(this,function(){try{y=(new MiroImporter).importMiroJson(JSON.parse(y)),this.pasteXml(y,q,I,c)}catch(F){console.log("Miro import error:",F)}});"undefined"===typeof MiroImporter?mxscript("js/diagramly/miro/MiroImporter.js",t):t()}else this.pasteXml(y,q,I,c);try{mxEvent.consume(c)}catch(F){}}else if(!g){var p=
this.editor.graph;p.lastPasteXml=null;p.pasteCounter=0}}catch(F){this.handleError(F)}}}e.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(c){if(Graph.fileSupport)for(var e=null,g=0;g<c.length;g++)mxEvent.addListener(c[g],"dragleave",function(q){null!=e&&(e.parentNode.removeChild(e),e=null);q.stopPropagation();q.preventDefault()}),mxEvent.addListener(c[g],"dragover",mxUtils.bind(this,function(q){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==e&&(!mxClient.IS_IE||10<
document.documentMode&&12>document.documentMode)&&(e=this.highlightElement());q.stopPropagation();q.preventDefault()})),mxEvent.addListener(c[g],"drop",mxUtils.bind(this,function(q){null!=e&&(e.parentNode.removeChild(e),e=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<q.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(q.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(q)&&!mxEvent.isShiftDown(q)):this.openFiles(q.dataTransfer.files,
-!0);else{var n=this.extractGraphModelFromEvent(q);if(null==n){var m=null!=q.dataTransfer?q.dataTransfer:q.clipboardData;null!=m&&(10==document.documentMode||11==document.documentMode?n=m.getData("Text"):(n=null,n=0<=mxUtils.indexOf(m.types,"text/uri-list")?q.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(m.types,"text/html")?m.getData("text/html"):null,null!=n&&0<n.length?(m=document.createElement("div"),m.innerHTML=this.editor.graph.sanitizeHtml(n),m=m.getElementsByTagName("img"),0<m.length&&
-(n=m[0].getAttribute("src"))):0<=mxUtils.indexOf(m.types,"text/plain")&&(n=m.getData("text/plain"))),null!=n&&(Editor.isPngDataUrl(n)?(n=Editor.extractGraphModelFromPng(n),null!=n&&0<n.length&&this.openLocalFile(n,null,!0)):this.isRemoteFileFormat(n)?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(n))).send(mxUtils.bind(this,function(z){200<=z.getStatus()&&299>=z.getStatus()&&this.openLocalFile(z.getText(),
-null,!0)})):/^https?:\/\//.test(n)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(n):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(n)))))}else this.openLocalFile(n,null,!0)}q.stopPropagation();q.preventDefault()}))};EditorUi.prototype.highlightElement=function(c){var e=0,g=0;if(null==c){var q=document.body;var n=document.documentElement;var m=(q.clientWidth||n.clientWidth)-3;q=
-Math.max(q.clientHeight||0,n.clientHeight)-3}else e=c.offsetTop,g=c.offsetLeft,m=c.clientWidth,q=c.clientHeight;n=document.createElement("div");n.style.zIndex=mxPopupMenu.prototype.zIndex+2;n.style.border="3px dotted rgb(254, 137, 12)";n.style.pointerEvents="none";n.style.position="absolute";n.style.top=e+"px";n.style.left=g+"px";n.style.width=Math.max(0,m-3)+"px";n.style.height=Math.max(0,q-3)+"px";null!=c&&c.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(n):document.body.appendChild(n);
-return n};EditorUi.prototype.stringToCells=function(c){c=mxUtils.parseXml(c);var e=this.editor.extractGraphModel(c.documentElement);c=[];if(null!=e){var g=new mxCodec(e.ownerDocument),q=new mxGraphModel;g.decode(e,q);e=q.getChildAt(q.getRoot(),0);for(g=0;g<q.getChildCount(e);g++)c.push(q.getChildAt(e,g))}return c};EditorUi.prototype.openFileHandle=function(c,e,g,q,n){if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)?e=e.substring(0,e.length-4)+".drawio":/(\.pdf)$/i.test(e)&&(e=
-e.substring(0,e.length-4)+".drawio");var m=mxUtils.bind(this,function(C){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".drawio":e+".drawio";if("<mxlibrary"==C.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,q);try{this.loadLibrary(new LocalLibrary(this,C,e))}catch(u){this.handleError(u,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(C,e,q)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(g,
-mxUtils.bind(this,function(C){this.spinner.stop();m(C)}));else if(/(\.*<graphml )/.test(c))this.importGraphML(c,mxUtils.bind(this,function(C){this.spinner.stop();m(C)}));else if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,e))this.isOffline()?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("notInOffline"))):this.parseFile(g,mxUtils.bind(this,function(C){4==C.readyState&&(this.spinner.stop(),200<=C.status&&299>=C.status?m(C.responseText):this.handleError({message:mxResources.get(413==
+!0);else{var m=this.extractGraphModelFromEvent(q);if(null==m){var n=null!=q.dataTransfer?q.dataTransfer:q.clipboardData;null!=n&&(10==document.documentMode||11==document.documentMode?m=n.getData("Text"):(m=null,m=0<=mxUtils.indexOf(n.types,"text/uri-list")?q.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(n.types,"text/html")?n.getData("text/html"):null,null!=m&&0<m.length?(n=document.createElement("div"),n.innerHTML=this.editor.graph.sanitizeHtml(m),n=n.getElementsByTagName("img"),0<n.length&&
+(m=n[0].getAttribute("src"))):0<=mxUtils.indexOf(n.types,"text/plain")&&(m=n.getData("text/plain"))),null!=m&&(Editor.isPngDataUrl(m)?(m=Editor.extractGraphModelFromPng(m),null!=m&&0<m.length&&this.openLocalFile(m,null,!0)):this.isRemoteFileFormat(m)?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(m))).send(mxUtils.bind(this,function(z){200<=z.getStatus()&&299>=z.getStatus()&&this.openLocalFile(z.getText(),
+null,!0)})):/^https?:\/\//.test(m)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(m):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(m)))))}else this.openLocalFile(m,null,!0)}q.stopPropagation();q.preventDefault()}))};EditorUi.prototype.highlightElement=function(c){var e=0,g=0;if(null==c){var q=document.body;var m=document.documentElement;var n=(q.clientWidth||m.clientWidth)-3;q=
+Math.max(q.clientHeight||0,m.clientHeight)-3}else e=c.offsetTop,g=c.offsetLeft,n=c.clientWidth,q=c.clientHeight;m=document.createElement("div");m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=e+"px";m.style.left=g+"px";m.style.width=Math.max(0,n-3)+"px";m.style.height=Math.max(0,q-3)+"px";null!=c&&c.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);
+return m};EditorUi.prototype.stringToCells=function(c){c=mxUtils.parseXml(c);var e=this.editor.extractGraphModel(c.documentElement);c=[];if(null!=e){var g=new mxCodec(e.ownerDocument),q=new mxGraphModel;g.decode(e,q);e=q.getChildAt(q.getRoot(),0);for(g=0;g<q.getChildCount(e);g++)c.push(q.getChildAt(e,g))}return c};EditorUi.prototype.openFileHandle=function(c,e,g,q,m){if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)?e=e.substring(0,e.length-4)+".drawio":/(\.pdf)$/i.test(e)&&(e=
+e.substring(0,e.length-4)+".drawio");var n=mxUtils.bind(this,function(C){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".drawio":e+".drawio";if("<mxlibrary"==C.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,q);try{this.loadLibrary(new LocalLibrary(this,C,e))}catch(u){this.handleError(u,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(C,e,q)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(g,
+mxUtils.bind(this,function(C){this.spinner.stop();n(C)}));else if(/(\.*<graphml )/.test(c))this.importGraphML(c,mxUtils.bind(this,function(C){this.spinner.stop();n(C)}));else if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,e))this.isOffline()?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("notInOffline"))):this.parseFile(g,mxUtils.bind(this,function(C){4==C.readyState&&(this.spinner.stop(),200<=C.status&&299>=C.status?n(C.responseText):this.handleError({message:mxResources.get(413==
C.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(c))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".drawio"),this.convertLucidChart(c,mxUtils.bind(this,function(C){this.spinner.stop();this.openLocalFile(C,e,q)}),mxUtils.bind(this,function(C){this.spinner.stop();this.handleError(C)}));else if("<mxlibrary"==c.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
-this.defaultFilename,q);try{this.loadLibrary(new LocalLibrary(this,c,g.name))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}else if(0==c.indexOf("PK"))this.importZipFile(g,mxUtils.bind(this,function(C){this.spinner.stop();m(C)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(c,e,q)}));else{if("image/png"==g.type.substring(0,9))c=this.extractGraphModelFromPng(c);else if("application/pdf"==g.type){var z=Editor.extractGraphModelFromPdf(c);null!=z&&(n=null,q=!0,
-c=z)}this.spinner.stop();this.openLocalFile(c,e,q,n,null!=n?g:null)}}};EditorUi.prototype.openFiles=function(c,e){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var g=0;g<c.length;g++)mxUtils.bind(this,function(q){var n=new FileReader;n.onload=mxUtils.bind(this,function(m){try{this.openFileHandle(m.target.result,q.name,q,e)}catch(z){this.handleError(z)}});n.onerror=mxUtils.bind(this,function(m){this.spinner.stop();this.handleError(m);window.openFile=null});"image"!==q.type.substring(0,
-5)&&"application/pdf"!==q.type||"image/svg"===q.type.substring(0,9)?n.readAsText(q):n.readAsDataURL(q)})(c[g])};EditorUi.prototype.openLocalFile=function(c,e,g,q,n){var m=this.getCurrentFile(),z=mxUtils.bind(this,function(){window.openFile=null;if(null==e&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var C=mxUtils.parseXml(c);null!=C&&(this.editor.setGraphXml(C.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,c,e||this.defaultFilename,g,q,n))});if(null!=
-c&&0<c.length)null==m||!m.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=q)?z():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=q)&&null!=m&&m.isModified()?this.confirm(mxResources.get("allChangesLost"),null,z,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(c,e),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=m&&m.isModified()?this.confirm(mxResources.get("allChangesLost"),
+this.defaultFilename,q);try{this.loadLibrary(new LocalLibrary(this,c,g.name))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}else if(0==c.indexOf("PK"))this.importZipFile(g,mxUtils.bind(this,function(C){this.spinner.stop();n(C)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(c,e,q)}));else{if("image/png"==g.type.substring(0,9))c=this.extractGraphModelFromPng(c);else if("application/pdf"==g.type){var z=Editor.extractGraphModelFromPdf(c);null!=z&&(m=null,q=!0,
+c=z)}this.spinner.stop();this.openLocalFile(c,e,q,m,null!=m?g:null)}}};EditorUi.prototype.openFiles=function(c,e){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var g=0;g<c.length;g++)mxUtils.bind(this,function(q){var m=new FileReader;m.onload=mxUtils.bind(this,function(n){try{this.openFileHandle(n.target.result,q.name,q,e)}catch(z){this.handleError(z)}});m.onerror=mxUtils.bind(this,function(n){this.spinner.stop();this.handleError(n);window.openFile=null});"image"!==q.type.substring(0,
+5)&&"application/pdf"!==q.type||"image/svg"===q.type.substring(0,9)?m.readAsText(q):m.readAsDataURL(q)})(c[g])};EditorUi.prototype.openLocalFile=function(c,e,g,q,m){var n=this.getCurrentFile(),z=mxUtils.bind(this,function(){window.openFile=null;if(null==e&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var C=mxUtils.parseXml(c);null!=C&&(this.editor.setGraphXml(C.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,c,e||this.defaultFilename,g,q,m))});if(null!=
+c&&0<c.length)null==n||!n.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=q)?z():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=q)&&null!=n&&n.isModified()?this.confirm(mxResources.get("allChangesLost"),null,z,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(c,e),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=n&&n.isModified()?this.confirm(mxResources.get("allChangesLost"),
null,z,mxResources.get("cancel"),mxResources.get("discardChanges")):z()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var c={};if(null!=this.pages)for(var e=0;e<this.pages.length;e++)this.updatePageRoot(this.pages[e]),this.addBasenamesForCell(this.pages[e].root,c);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),c);e=[];for(var g in c)e.push(g);return e};EditorUi.prototype.addBasenamesForCell=function(c,e){function g(z){if(null!=
-z){var C=z.lastIndexOf(".");0<C&&(z=z.substring(C+1,z.length));null==e[z]&&(e[z]=!0)}}var q=this.editor.graph,n=q.getCellStyle(c);g(mxStencilRegistry.getBasenameForStencil(n[mxConstants.STYLE_SHAPE]));q.model.isEdge(c)&&(g(mxMarker.getPackageForType(n[mxConstants.STYLE_STARTARROW])),g(mxMarker.getPackageForType(n[mxConstants.STYLE_ENDARROW])));n=q.model.getChildCount(c);for(var m=0;m<n;m++)this.addBasenamesForCell(q.model.getChildAt(c,m),e)};EditorUi.prototype.setGraphEnabled=function(c){this.diagramContainer.style.visibility=
+z){var C=z.lastIndexOf(".");0<C&&(z=z.substring(C+1,z.length));null==e[z]&&(e[z]=!0)}}var q=this.editor.graph,m=q.getCellStyle(c);g(mxStencilRegistry.getBasenameForStencil(m[mxConstants.STYLE_SHAPE]));q.model.isEdge(c)&&(g(mxMarker.getPackageForType(m[mxConstants.STYLE_STARTARROW])),g(mxMarker.getPackageForType(m[mxConstants.STYLE_ENDARROW])));m=q.model.getChildCount(c);for(var n=0;n<m;n++)this.addBasenamesForCell(q.model.getChildAt(c,n),e)};EditorUi.prototype.setGraphEnabled=function(c){this.diagramContainer.style.visibility=
c?"":"hidden";this.formatContainer.style.visibility=c?"":"hidden";this.sidebarFooterContainer.style.display=c?"":"none";this.sidebarContainer.style.display=c?"":"none";this.hsplit.style.display=c?"":"none";this.editor.graph.setEnabled(c);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=c?"":"hidden",this.ruler.vRuler.container.style.visibility=c?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=c?"":"hidden");c||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),
null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var c=
-!1;this.installMessageHandler(mxUtils.bind(this,function(e,g,q,n){c||(c=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));if(null==e||0==e.length)e=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,e,{}));this.mode=App.MODE_EMBED;this.setFileData(e);if(n)try{var m=this.editor.graph;m.setGridEnabled(!1);m.pageVisible=!1;var z=m.model.cells,C;for(C in z){var u=z[C];null!=u&&null!=u.style&&(u.style+=";sketch=1;"+(-1==u.style.indexOf("fontFamily=")||-1<u.style.indexOf("fontFamily=Helvetica;")?
+!1;this.installMessageHandler(mxUtils.bind(this,function(e,g,q,m){c||(c=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));if(null==e||0==e.length)e=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,e,{}));this.mode=App.MODE_EMBED;this.setFileData(e);if(m)try{var n=this.editor.graph;n.setGridEnabled(!1);n.pageVisible=!1;var z=n.model.cells,C;for(C in z){var u=z[C];null!=u&&null!=u.style&&(u.style+=";sketch=1;"+(-1==u.style.indexOf("fontFamily=")||-1<u.style.indexOf("fontFamily=Helvetica;")?
"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(y){console.log(y)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=q?q:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=
function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(c,e){null!=c?c.getPublicUrl(e):e(null)};EditorUi.prototype.createLoadMessage=function(c){var e=this.editor.graph;return{event:c,pageVisible:e.pageVisible,translate:e.view.translate,bounds:e.getGraphBounds(),currentPage:this.getSelectedPageIndex(),
-scale:e.view.scale,page:e.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(c){var e=this.editor.graph;e.isEditing()&&e.stopEditing(!e.isInvokesStopCellEditing());var g=window.opener||window.parent;if(this.editor.modified){var q=e.background;if(null==q||q==mxConstants.NONE)q=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),e,null,!0,mxUtils.bind(this,function(n){g.postMessage(JSON.stringify({event:"export",
-point:this.embedExitPoint,exit:null!=c?!c:!0,data:Editor.createSvgDataUri(n)}),"*")}),null,null,!0,q,1,this.embedExportBorder)}else c||g.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");c||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,e.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,"1"!=urlParams.embed&&this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=
-function(c){var e=null,g=!1,q=!1,n=null,m=mxUtils.bind(this,function(u,y){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,m);mxEvent.addListener(window,"message",mxUtils.bind(this,function(u){if(u.source==(window.opener||window.parent)){var y=u.data,I=null,N=mxUtils.bind(this,function(Y){if(null!=Y&&"function"===typeof Y.charAt&&
+scale:e.view.scale,page:e.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(c){var e=this.editor.graph;e.isEditing()&&e.stopEditing(!e.isInvokesStopCellEditing());var g=window.opener||window.parent;if(this.editor.modified){var q=e.background;if(null==q||q==mxConstants.NONE)q=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),e,null,!0,mxUtils.bind(this,function(m){g.postMessage(JSON.stringify({event:"export",
+point:this.embedExitPoint,exit:null!=c?!c:!0,data:Editor.createSvgDataUri(m)}),"*")}),null,null,!0,q,1,this.embedExportBorder)}else c||g.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");c||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,e.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,"1"!=urlParams.embed&&this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=
+function(c){var e=null,g=!1,q=!1,m=null,n=mxUtils.bind(this,function(u,y){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,n);mxEvent.addListener(window,"message",mxUtils.bind(this,function(u){if(u.source==(window.opener||window.parent)){var y=u.data,I=null,N=mxUtils.bind(this,function(Y){if(null!=Y&&"function"===typeof Y.charAt&&
"<"!=Y.charAt(0))try{Editor.isPngDataUrl(Y)?Y=Editor.extractGraphModelFromPng(Y):"data:image/svg+xml;base64,"==Y.substring(0,26)?Y=atob(Y.substring(26)):"data:image/svg+xml;utf8,"==Y.substring(0,24)&&(Y=Y.substring(24)),null!=Y&&("%"==Y.charAt(0)?Y=decodeURIComponent(Y):"<"!=Y.charAt(0)&&(Y=Graph.decompress(Y)))}catch(Z){}return Y});if("json"==urlParams.proto){var t=!1;try{y=JSON.parse(y),EditorUi.debug("EditorUi.installMessageHandler",[this],"evt",[u],"data",[y])}catch(Y){y=null}try{if(null==y)return;
if("dialog"==y.action){this.showError(null!=y.titleKey?mxResources.get(y.titleKey):y.title,null!=y.messageKey?mxResources.get(y.messageKey):y.message,null!=y.buttonKey?mxResources.get(y.buttonKey):y.button);null!=y.modified&&(this.editor.modified=y.modified);return}if("layout"==y.action){this.executeLayouts(this.editor.graph.createLayouts(y.layouts));return}if("prompt"==y.action){this.spinner.stop();var p=new FilenameDialog(this,y.defaultValue||"",null!=y.okKey?mxResources.get(y.okKey):y.ok,function(Y){null!=
Y?z.postMessage(JSON.stringify({event:"prompt",value:Y,message:y}),"*"):z.postMessage(JSON.stringify({event:"prompt-cancel",message:y}),"*")},null!=y.titleKey?mxResources.get(y.titleKey):y.title);this.showDialog(p.container,300,80,!0,!1);p.init();return}if("draft"==y.action){var F=N(y.xml);this.spinner.stop();p=new DraftDialog(this,mxResources.get("draftFound",[y.name||this.defaultFilename]),F,mxUtils.bind(this,function(){this.hideDialog();z.postMessage(JSON.stringify({event:"draft",result:"edit",
@@ -12091,36 +12091,36 @@ y.dark&&(O=Editor.darkMode,this.doSetDarkMode(y.dark),O!=Editor.darkMode&&this.f
"px";this.diagramContainer.style.height=y.rect.height+"px";this.diagramContainer.style.width=y.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";I=mxUtils.bind(this,function(){var Y=this.editor.graph,Z=Y.maxFitScale;Y.maxFitScale=y.maxFitScale;Y.fit(2*R);Y.maxFitScale=Z;Y.container.scrollTop-=2*R;Y.container.scrollLeft-=2*R;this.fireEvent(new mxEventObject("editInlineStart","data",[y]))})}null!=y.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=y.noExitBtn);
null!=y.title&&null!=this.buttonContainer&&(F=document.createElement("span"),mxUtils.write(F,y.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(F),this.embedFilenameSpan=F);try{y.libs&&this.sidebar.showEntries(y.libs)}catch(Y){}y=null!=y.xmlpng?this.extractGraphModelFromPng(y.xmlpng):null!=y.descriptor?y.descriptor:y.xml}else{if("merge"==y.action){var S=this.getCurrentFile();null!=S&&(F=N(y.xml),null!=F&&""!=
F&&S.mergeFile(new LocalFile(this,F),function(){z.postMessage(JSON.stringify({event:"merge",message:y}),"*")},function(Y){z.postMessage(JSON.stringify({event:"merge",message:y,error:Y}),"*")}))}else"remoteInvokeReady"==y.action?this.handleRemoteInvokeReady(z):"remoteInvoke"==y.action?this.handleRemoteInvoke(y,u.origin):"remoteInvokeResponse"==y.action?this.handleRemoteInvokeResponse(y):z.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(y)}),"*");return}}catch(Y){this.handleError(Y)}}var X=
-mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),aa=mxUtils.bind(this,function(Y,Z){g=!0;try{c(Y,Z,null,t)}catch(ca){this.handleError(ca)}g=!1;null!=urlParams.modified&&this.editor.setStatus("");n=X();q&&null==e&&(e=mxUtils.bind(this,function(ca,fa){ca=X();ca==n||g||(fa=this.createLoadMessage("autosave"),fa.xml=ca,(window.opener||window.parent).postMessage(JSON.stringify(fa),"*"));n=ca}),
+mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),aa=mxUtils.bind(this,function(Y,Z){g=!0;try{c(Y,Z,null,t)}catch(ca){this.handleError(ca)}g=!1;null!=urlParams.modified&&this.editor.setStatus("");m=X();q&&null==e&&(e=mxUtils.bind(this,function(ca,fa){ca=X();ca==m||g||(fa=this.createLoadMessage("autosave"),fa.xml=ca,(window.opener||window.parent).postMessage(JSON.stringify(fa),"*"));m=ca}),
this.editor.graph.model.addListener(mxEvent.CHANGE,e),this.editor.graph.addListener("gridSizeChanged",e),this.editor.graph.addListener("shadowVisibleChanged",e),this.addListener("pageFormatChanged",e),this.addListener("pageScaleChanged",e),this.addListener("backgroundColorChanged",e),this.addListener("backgroundImageChanged",e),this.addListener("foldingEnabledChanged",e),this.addListener("mathEnabledChanged",e),this.addListener("gridEnabledChanged",e),this.addListener("guidesEnabledChanged",e),this.addListener("pageViewChanged",
e));if("1"==urlParams.returnbounds||"json"==urlParams.proto)Z=this.createLoadMessage("load"),Z.xml=Y,z.postMessage(JSON.stringify(Z),"*");null!=I&&I()});null!=y&&"function"===typeof y.substring&&"data:application/vnd.visio;base64,"==y.substring(0,34)?(N="0M8R4KGxGuE"==y.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(y.substring(y.indexOf(",")+1)),function(Y){aa(Y,u)},mxUtils.bind(this,function(Y){this.handleError(Y)}),N)):null!=y&&"function"===typeof y.substring&&(new XMLHttpRequest).upload&&
this.isRemoteFileFormat(y,"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(y,mxUtils.bind(this,function(Y){4==Y.readyState&&200<=Y.status&&299>=Y.status&&"<mxGraphModel"==Y.responseText.substring(0,13)&&aa(Y.responseText,u)}),""):null!=y&&"function"===typeof y.substring&&this.isLucidChartData(y)?this.convertLucidChart(y,mxUtils.bind(this,function(Y){aa(Y)}),mxUtils.bind(this,function(Y){this.handleError(Y)})):null==y||"object"!==typeof y||
-null==y.format||null==y.data&&null==y.url?(y=N(y),aa(y,u)):this.loadDescriptor(y,mxUtils.bind(this,function(Y){aa(X(),u)}),mxUtils.bind(this,function(Y){this.handleError(Y,mxResources.get("errorLoadingFile"))}))}}));var z=window.opener||window.parent;m="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";z.postMessage(m,"*");if("json"==urlParams.proto){var C=this.editor.graph.openLink;this.editor.graph.openLink=function(u,y,I){C.apply(this,arguments);z.postMessage(JSON.stringify({event:"openLink",
+null==y.format||null==y.data&&null==y.url?(y=N(y),aa(y,u)):this.loadDescriptor(y,mxUtils.bind(this,function(Y){aa(X(),u)}),mxUtils.bind(this,function(Y){this.handleError(Y,mxResources.get("errorLoadingFile"))}))}}));var z=window.opener||window.parent;n="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";z.postMessage(n,"*");if("json"==urlParams.proto){var C=this.editor.graph.openLink;this.editor.graph.openLink=function(u,y,I){C.apply(this,arguments);z.postMessage(JSON.stringify({event:"openLink",
href:u,target:y,allowOpener:I}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var c=document.createElement("div");c.style.display="inline-block";c.style.position="absolute";c.style.paddingTop="2px";c.style.paddingLeft="8px";c.style.paddingBottom="2px";var e=document.createElement("button");e.className="geBigButton";var g=e;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var q="1"==urlParams.publishClose?mxResources.get("publish"):
mxResources.get("saveAndExit");mxUtils.write(e,q);e.setAttribute("title",q);mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));c.appendChild(e)}}else mxUtils.write(e,mxResources.get("save")),e.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),c.appendChild(e),"1"==urlParams.saveAndExit&&(e=document.createElement("a"),mxUtils.write(e,
mxResources.get("saveAndExit")),e.setAttribute("title",mxResources.get("saveAndExit")),e.className="geBigButton geBigStandardButton",e.style.marginLeft="6px",mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),c.appendChild(e),g=e);"1"!=urlParams.noExitBtn&&(e=document.createElement("a"),g="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(e,g),e.setAttribute("title",g),e.className="geBigButton geBigStandardButton",
e.style.marginLeft="6px",mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),c.appendChild(e),g=e);g.style.marginRight="20px";this.toolbar.container.appendChild(c);this.toolbar.staticElements.push(c);c.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"62px":"72px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,
function(c){this.importCsv(c)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.loadOrgChartLayouts=function(c){var e=mxUtils.bind(this,function(){this.loadingOrgChart=!1;this.spinner.stop();c()});"undefined"!==typeof mxOrgChartLayout||this.loadingOrgChart||this.isOffline(!0)?e():this.spinner.spin(document.body,
mxResources.get("loading"))&&(this.loadingOrgChart=!0,"1"==urlParams.dev?mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",e)})})}):mxscript(DRAWIO_BASE_URL+"/js/orgchart.min.js",e))};EditorUi.prototype.importCsv=function(c,e){this.loadOrgChartLayouts(mxUtils.bind(this,function(){this.doImportCsv(c,e)}))};EditorUi.prototype.doImportCsv=function(c,
-e){try{var g=c.split("\n"),q=[],n=[],m=[],z={};if(0<g.length){var C={},u=this.editor.graph,y=null,I=null,N=null,t=null,p=null,F=null,J=null,M="whiteSpace=wrap;html=1;",H=null,G=null,E="",P="auto",T="auto",W=!1,U=null,V=null,l=40,A=40,L=100,Q=0,O=function(){null!=e?e(xa):(u.setSelectionCells(xa),u.scrollCellToVisible(u.getSelectionCell()))},R=u.getFreeInsertPoint(),S=R.x,X=R.y;R=X;var aa=null,Y="auto";G=null;for(var Z=[],ca=null,fa=null,la=0;la<g.length&&"#"==g[la].charAt(0);){c=g[la].replace(/\r$/,
+e){try{var g=c.split("\n"),q=[],m=[],n=[],z={};if(0<g.length){var C={},u=this.editor.graph,y=null,I=null,N=null,t=null,p=null,F=null,J=null,M="whiteSpace=wrap;html=1;",H=null,G=null,E="",P="auto",T="auto",W=!1,U=null,V=null,l=40,A=40,L=100,Q=0,O=function(){null!=e?e(xa):(u.setSelectionCells(xa),u.scrollCellToVisible(u.getSelectionCell()))},R=u.getFreeInsertPoint(),S=R.x,X=R.y;R=X;var aa=null,Y="auto";G=null;for(var Z=[],ca=null,fa=null,la=0;la<g.length&&"#"==g[la].charAt(0);){c=g[la].replace(/\r$/,
"");for(la++;la<g.length&&"\\"==c.charAt(c.length-1)&&"#"==g[la].charAt(0);)c=c.substring(0,c.length-1)+mxUtils.trim(g[la].substring(1)),la++;if("#"!=c.charAt(1)){var ia=c.indexOf(":");if(0<ia){var qa=mxUtils.trim(c.substring(1,ia)),ka=mxUtils.trim(c.substring(ia+1));"label"==qa?aa=u.sanitizeHtml(ka):"labelname"==qa&&0<ka.length&&"-"!=ka?p=ka:"labels"==qa&&0<ka.length&&"-"!=ka?J=JSON.parse(ka):"style"==qa?I=ka:"parentstyle"==qa?M=ka:"unknownStyle"==qa&&"-"!=ka?F=ka:"stylename"==qa&&0<ka.length&&"-"!=
ka?t=ka:"styles"==qa&&0<ka.length&&"-"!=ka?N=JSON.parse(ka):"vars"==qa&&0<ka.length&&"-"!=ka?y=JSON.parse(ka):"identity"==qa&&0<ka.length&&"-"!=ka?H=ka:"parent"==qa&&0<ka.length&&"-"!=ka?G=ka:"namespace"==qa&&0<ka.length&&"-"!=ka?E=ka:"width"==qa?P=ka:"height"==qa?T=ka:"collapsed"==qa&&"-"!=ka?W="true"==ka:"left"==qa&&0<ka.length?U=ka:"top"==qa&&0<ka.length?V=ka:"ignore"==qa?fa=ka.split(","):"connect"==qa?Z.push(JSON.parse(ka)):"link"==qa?ca=ka:"padding"==qa?Q=parseFloat(ka):"edgespacing"==qa?l=parseFloat(ka):
"nodespacing"==qa?A=parseFloat(ka):"levelspacing"==qa?L=parseFloat(ka):"layout"==qa&&(Y=ka)}}}if(null==g[la])throw Error(mxResources.get("invalidOrMissingFile"));var Da=this.editor.csvToArray(g[la].replace(/\r$/,""));ia=c=null;qa=[];for(ka=0;ka<Da.length;ka++)H==Da[ka]&&(c=ka),G==Da[ka]&&(ia=ka),qa.push(mxUtils.trim(Da[ka]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==aa&&(aa="%"+qa[0]+"%");if(null!=Z)for(var Ea=0;Ea<Z.length;Ea++)null==C[Z[Ea].to]&&(C[Z[Ea].to]={});H=[];
for(ka=la+1;ka<g.length;ka++){var za=this.editor.csvToArray(g[ka].replace(/\r$/,""));if(null==za){var Oa=40<g[ka].length?g[ka].substring(0,40)+"...":g[ka];throw Error(Oa+" ("+ka+"):\n"+mxResources.get("containsValidationErrors"));}0<za.length&&H.push(za)}u.model.beginUpdate();try{for(ka=0;ka<H.length;ka++){za=H[ka];var Aa=null,Ga=null!=c?E+za[c]:null;g=!1;null!=Ga&&(Aa=u.model.getCell(Ga),g=null==Aa||0<=mxUtils.indexOf(q,Aa));var Ia=new mxCell(aa,new mxGeometry(S,R,0,0),I||"whiteSpace=wrap;html=1;");
Ia.collapsed=W;Ia.vertex=!0;Ia.id=Ga;null==Aa||g||u.model.setCollapsed(Aa,W);for(var ra=0;ra<za.length;ra++)u.setAttributeForCell(Ia,qa[ra],za[ra]),null==Aa||g||u.setAttributeForCell(Aa,qa[ra],za[ra]);if(null!=p&&null!=J){var ua=J[Ia.getAttribute(p)];null!=ua&&(u.labelChanged(Ia,ua),null==Aa||g||u.cellLabelChanged(Aa,ua))}if(null!=t&&null!=N){var Ba=N[Ia.getAttribute(t)];null!=Ba&&(Ia.style=Ba)}u.setAttributeForCell(Ia,"placeholders","1");Ia.style=u.replacePlaceholders(Ia,Ia.style,y);null==Aa||g?
-u.fireEvent(new mxEventObject("cellsInserted","cells",[Ia])):(u.model.setStyle(Aa,Ia.style),0>mxUtils.indexOf(m,Aa)&&m.push(Aa),u.fireEvent(new mxEventObject("cellsInserted","cells",[Aa])));g=null!=Aa;Aa=Ia;if(!g)for(Ea=0;Ea<Z.length;Ea++)C[Z[Ea].to][Aa.getAttribute(Z[Ea].to)]=Aa;null!=ca&&"link"!=ca&&(u.setLinkForCell(Aa,Aa.getAttribute(ca)),u.setAttributeForCell(Aa,ca,null));var Fa=this.editor.graph.getPreferredSizeForCell(Aa);G=null!=ia?u.model.getCell(E+za[ia]):null;if(Aa.vertex){Oa=null!=G?0:
+u.fireEvent(new mxEventObject("cellsInserted","cells",[Ia])):(u.model.setStyle(Aa,Ia.style),0>mxUtils.indexOf(n,Aa)&&n.push(Aa),u.fireEvent(new mxEventObject("cellsInserted","cells",[Aa])));g=null!=Aa;Aa=Ia;if(!g)for(Ea=0;Ea<Z.length;Ea++)C[Z[Ea].to][Aa.getAttribute(Z[Ea].to)]=Aa;null!=ca&&"link"!=ca&&(u.setLinkForCell(Aa,Aa.getAttribute(ca)),u.setAttributeForCell(Aa,ca,null));var Fa=this.editor.graph.getPreferredSizeForCell(Aa);G=null!=ia?u.model.getCell(E+za[ia]):null;if(Aa.vertex){Oa=null!=G?0:
S;la=null!=G?0:X;null!=U&&null!=Aa.getAttribute(U)&&(Aa.geometry.x=Oa+parseFloat(Aa.getAttribute(U)));null!=V&&null!=Aa.getAttribute(V)&&(Aa.geometry.y=la+parseFloat(Aa.getAttribute(V)));var wa="@"==P.charAt(0)?Aa.getAttribute(P.substring(1)):null;Aa.geometry.width=null!=wa&&"auto"!=wa?parseFloat(Aa.getAttribute(P.substring(1))):"auto"==P||"auto"==wa?Fa.width+Q:parseFloat(P);var La="@"==T.charAt(0)?Aa.getAttribute(T.substring(1)):null;Aa.geometry.height=null!=La&&"auto"!=La?parseFloat(La):"auto"==
-T||"auto"==La?Fa.height+Q:parseFloat(T);R+=Aa.geometry.height+A}g?(null==z[Ga]&&(z[Ga]=[]),z[Ga].push(Aa)):(q.push(Aa),null!=G?(G.style=u.replacePlaceholders(G,M,y),u.addCell(Aa,G),n.push(G)):m.push(u.addCell(Aa)))}for(ka=0;ka<n.length;ka++)wa="@"==P.charAt(0)?n[ka].getAttribute(P.substring(1)):null,La="@"==T.charAt(0)?n[ka].getAttribute(T.substring(1)):null,"auto"!=P&&"auto"!=wa||"auto"!=T&&"auto"!=La||u.updateGroupBounds([n[ka]],Q,!0);var ja=m.slice(),xa=m.slice();for(Ea=0;Ea<Z.length;Ea++){var sa=
-Z[Ea];for(ka=0;ka<q.length;ka++){Aa=q[ka];var da=mxUtils.bind(this,function(Ha,Ma,Ra){var Ja=Ma.getAttribute(Ra.from);if(null!=Ja&&""!=Ja){Ja=Ja.split(",");for(var Pa=0;Pa<Ja.length;Pa++){var Qa=C[Ra.to][Ja[Pa]];if(null==Qa&&null!=F){Qa=new mxCell(Ja[Pa],new mxGeometry(S,X,0,0),F);Qa.style=u.replacePlaceholders(Ma,Qa.style,y);var Na=this.editor.graph.getPreferredSizeForCell(Qa);Qa.geometry.width=Na.width+Q;Qa.geometry.height=Na.height+Q;C[Ra.to][Ja[Pa]]=Qa;Qa.vertex=!0;Qa.id=Ja[Pa];m.push(u.addCell(Qa))}if(null!=
+T||"auto"==La?Fa.height+Q:parseFloat(T);R+=Aa.geometry.height+A}g?(null==z[Ga]&&(z[Ga]=[]),z[Ga].push(Aa)):(q.push(Aa),null!=G?(G.style=u.replacePlaceholders(G,M,y),u.addCell(Aa,G),m.push(G)):n.push(u.addCell(Aa)))}for(ka=0;ka<m.length;ka++)wa="@"==P.charAt(0)?m[ka].getAttribute(P.substring(1)):null,La="@"==T.charAt(0)?m[ka].getAttribute(T.substring(1)):null,"auto"!=P&&"auto"!=wa||"auto"!=T&&"auto"!=La||u.updateGroupBounds([m[ka]],Q,!0);var ja=n.slice(),xa=n.slice();for(Ea=0;Ea<Z.length;Ea++){var sa=
+Z[Ea];for(ka=0;ka<q.length;ka++){Aa=q[ka];var da=mxUtils.bind(this,function(Ha,Ma,Ra){var Ja=Ma.getAttribute(Ra.from);if(null!=Ja&&""!=Ja){Ja=Ja.split(",");for(var Pa=0;Pa<Ja.length;Pa++){var Qa=C[Ra.to][Ja[Pa]];if(null==Qa&&null!=F){Qa=new mxCell(Ja[Pa],new mxGeometry(S,X,0,0),F);Qa.style=u.replacePlaceholders(Ma,Qa.style,y);var Na=this.editor.graph.getPreferredSizeForCell(Qa);Qa.geometry.width=Na.width+Q;Qa.geometry.height=Na.height+Q;C[Ra.to][Ja[Pa]]=Qa;Qa.vertex=!0;Qa.id=Ja[Pa];n.push(u.addCell(Qa))}if(null!=
Qa){Na=Ra.label;null!=Ra.fromlabel&&(Na=(Ma.getAttribute(Ra.fromlabel)||"")+(Na||""));null!=Ra.sourcelabel&&(Na=u.replacePlaceholders(Ma,Ra.sourcelabel,y)+(Na||""));null!=Ra.tolabel&&(Na=(Na||"")+(Qa.getAttribute(Ra.tolabel)||""));null!=Ra.targetlabel&&(Na=(Na||"")+u.replacePlaceholders(Qa,Ra.targetlabel,y));var Sa="target"==Ra.placeholders==!Ra.invert?Qa:Ha;Sa=null!=Ra.style?u.replacePlaceholders(Sa,Ra.style,y):u.createCurrentEdgeStyle();Na=u.insertEdge(null,null,Na||"",Ra.invert?Qa:Ha,Ra.invert?
Ha:Qa,Sa);if(null!=Ra.labels)for(Sa=0;Sa<Ra.labels.length;Sa++){var Ua=Ra.labels[Sa],Ka=new mxCell(Ua.label||Sa,new mxGeometry(null!=Ua.x?Ua.x:0,null!=Ua.y?Ua.y:0,0,0),"resizable=0;html=1;");Ka.vertex=!0;Ka.connectable=!1;Ka.geometry.relative=!0;null!=Ua.placeholders&&(Ka.value=u.replacePlaceholders("target"==Ua.placeholders==!Ra.invert?Qa:Ha,Ka.value,y));if(null!=Ua.dx||null!=Ua.dy)Ka.geometry.offset=new mxPoint(null!=Ua.dx?Ua.dx:0,null!=Ua.dy?Ua.dy:0);Na.insert(Ka)}xa.push(Na);mxUtils.remove(Ra.invert?
-Ha:Qa,ja)}}}});da(Aa,Aa,sa);if(null!=z[Aa.id])for(ra=0;ra<z[Aa.id].length;ra++)da(Aa,z[Aa.id][ra],sa)}}if(null!=fa)for(ka=0;ka<q.length;ka++)for(Aa=q[ka],ra=0;ra<fa.length;ra++)u.setAttributeForCell(Aa,mxUtils.trim(fa[ra]),null);if(0<m.length){var ba=new mxParallelEdgeLayout(u);ba.spacing=l;ba.checkOverlap=!0;var na=function(){0<ba.spacing&&ba.execute(u.getDefaultParent());for(var Ha=0;Ha<m.length;Ha++){var Ma=u.getCellGeometry(m[Ha]);Ma.x=Math.round(u.snap(Ma.x));Ma.y=Math.round(u.snap(Ma.y));"auto"==
-P&&(Ma.width=Math.round(u.snap(Ma.width)));"auto"==T&&(Ma.height=Math.round(u.snap(Ma.height)))}};if("["==Y.charAt(0)){var ea=O;u.view.validate();this.executeLayouts(u.createLayouts(JSON.parse(Y)),function(){na();ea()});O=null}else if("circle"==Y){var ha=new mxCircleLayout(u);ha.disableEdgeStyle=!1;ha.resetEdges=!1;var oa=ha.isVertexIgnored;ha.isVertexIgnored=function(Ha){return oa.apply(this,arguments)||0>mxUtils.indexOf(m,Ha)};this.executeLayout(function(){ha.execute(u.getDefaultParent());na()},
-!0,O);O=null}else if("horizontaltree"==Y||"verticaltree"==Y||"auto"==Y&&xa.length==2*m.length-1&&1==ja.length){u.view.validate();var ma=new mxCompactTreeLayout(u,"horizontaltree"==Y);ma.levelDistance=A;ma.edgeRouting=!1;ma.resetEdges=!1;this.executeLayout(function(){ma.execute(u.getDefaultParent(),0<ja.length?ja[0]:null)},!0,O);O=null}else if("horizontalflow"==Y||"verticalflow"==Y||"auto"==Y&&1==ja.length){u.view.validate();var va=new mxHierarchicalLayout(u,"horizontalflow"==Y?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);va.intraCellSpacing=A;va.parallelEdgeSpacing=l;va.interRankCellSpacing=L;va.disableEdgeStyle=!1;this.executeLayout(function(){va.execute(u.getDefaultParent(),xa);u.moveCells(xa,S,X)},!0,O);O=null}else if("orgchart"==Y){u.view.validate();var Ca=new mxOrgChartLayout(u,2,L,A),ya=Ca.isVertexIgnored;Ca.isVertexIgnored=function(Ha){return ya.apply(this,arguments)||0>mxUtils.indexOf(m,Ha)};this.executeLayout(function(){Ca.execute(u.getDefaultParent());na()},!0,O);O=null}else if("organic"==
-Y||"auto"==Y&&xa.length>m.length){u.view.validate();var ta=new mxFastOrganicLayout(u);ta.forceConstant=3*A;ta.disableEdgeStyle=!1;ta.resetEdges=!1;var pa=ta.isVertexIgnored;ta.isVertexIgnored=function(Ha){return pa.apply(this,arguments)||0>mxUtils.indexOf(m,Ha)};this.executeLayout(function(){ta.execute(u.getDefaultParent());na()},!0,O);O=null}}this.hideDialog()}finally{u.model.endUpdate()}null!=O&&O()}}catch(Ha){this.handleError(Ha)}};EditorUi.prototype.getSearch=function(c){var e="";if("1"!=urlParams.offline&&
+Ha:Qa,ja)}}}});da(Aa,Aa,sa);if(null!=z[Aa.id])for(ra=0;ra<z[Aa.id].length;ra++)da(Aa,z[Aa.id][ra],sa)}}if(null!=fa)for(ka=0;ka<q.length;ka++)for(Aa=q[ka],ra=0;ra<fa.length;ra++)u.setAttributeForCell(Aa,mxUtils.trim(fa[ra]),null);if(0<n.length){var ba=new mxParallelEdgeLayout(u);ba.spacing=l;ba.checkOverlap=!0;var na=function(){0<ba.spacing&&ba.execute(u.getDefaultParent());for(var Ha=0;Ha<n.length;Ha++){var Ma=u.getCellGeometry(n[Ha]);Ma.x=Math.round(u.snap(Ma.x));Ma.y=Math.round(u.snap(Ma.y));"auto"==
+P&&(Ma.width=Math.round(u.snap(Ma.width)));"auto"==T&&(Ma.height=Math.round(u.snap(Ma.height)))}};if("["==Y.charAt(0)){var ea=O;u.view.validate();this.executeLayouts(u.createLayouts(JSON.parse(Y)),function(){na();ea()});O=null}else if("circle"==Y){var ha=new mxCircleLayout(u);ha.disableEdgeStyle=!1;ha.resetEdges=!1;var oa=ha.isVertexIgnored;ha.isVertexIgnored=function(Ha){return oa.apply(this,arguments)||0>mxUtils.indexOf(n,Ha)};this.executeLayout(function(){ha.execute(u.getDefaultParent());na()},
+!0,O);O=null}else if("horizontaltree"==Y||"verticaltree"==Y||"auto"==Y&&xa.length==2*n.length-1&&1==ja.length){u.view.validate();var ma=new mxCompactTreeLayout(u,"horizontaltree"==Y);ma.levelDistance=A;ma.edgeRouting=!1;ma.resetEdges=!1;this.executeLayout(function(){ma.execute(u.getDefaultParent(),0<ja.length?ja[0]:null)},!0,O);O=null}else if("horizontalflow"==Y||"verticalflow"==Y||"auto"==Y&&1==ja.length){u.view.validate();var va=new mxHierarchicalLayout(u,"horizontalflow"==Y?mxConstants.DIRECTION_WEST:
+mxConstants.DIRECTION_NORTH);va.intraCellSpacing=A;va.parallelEdgeSpacing=l;va.interRankCellSpacing=L;va.disableEdgeStyle=!1;this.executeLayout(function(){va.execute(u.getDefaultParent(),xa);u.moveCells(xa,S,X)},!0,O);O=null}else if("orgchart"==Y){u.view.validate();var Ca=new mxOrgChartLayout(u,2,L,A),ya=Ca.isVertexIgnored;Ca.isVertexIgnored=function(Ha){return ya.apply(this,arguments)||0>mxUtils.indexOf(n,Ha)};this.executeLayout(function(){Ca.execute(u.getDefaultParent());na()},!0,O);O=null}else if("organic"==
+Y||"auto"==Y&&xa.length>n.length){u.view.validate();var ta=new mxFastOrganicLayout(u);ta.forceConstant=3*A;ta.disableEdgeStyle=!1;ta.resetEdges=!1;var pa=ta.isVertexIgnored;ta.isVertexIgnored=function(Ha){return pa.apply(this,arguments)||0>mxUtils.indexOf(n,Ha)};this.executeLayout(function(){ta.execute(u.getDefaultParent());na()},!0,O);O=null}}this.hideDialog()}finally{u.model.endUpdate()}null!=O&&O()}}catch(Ha){this.handleError(Ha)}};EditorUi.prototype.getSearch=function(c){var e="";if("1"!=urlParams.offline&&
"1"!=urlParams.demo&&null!=c&&0<window.location.search.length){var g="?",q;for(q in urlParams)0>mxUtils.indexOf(c,q)&&null!=urlParams[q]&&(e+=g+q+"="+urlParams[q],g="&")}else e=window.location.search;return e};EditorUi.prototype.getUrl=function(c){c=null!=c?c:window.location.pathname;var e=0<c.indexOf("?")?1:0;if("1"==urlParams.offline)c+=window.location.search;else{var g="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),q;for(q in urlParams)0>mxUtils.indexOf(g,
-q)&&(c=0==e?c+"?":c+"&",null!=urlParams[q]&&(c+=q+"="+urlParams[q],e++))}return c};EditorUi.prototype.showLinkDialog=function(c,e,g,q,n){c=new LinkDialog(this,c,e,g,!0,q,n);this.showDialog(c.container,560,130,!0,!0);c.init()};EditorUi.prototype.getServiceCount=function(c){var e=1;null==this.drive&&"function"!==typeof window.DriveClient||e++;null==this.dropbox&&"function"!==typeof window.DropboxClient||e++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||e++;null!=this.gitHub&&e++;null!=
+q)&&(c=0==e?c+"?":c+"&",null!=urlParams[q]&&(c+=q+"="+urlParams[q],e++))}return c};EditorUi.prototype.showLinkDialog=function(c,e,g,q,m){c=new LinkDialog(this,c,e,g,!0,q,m);this.showDialog(c.container,560,130,!0,!0);c.init()};EditorUi.prototype.getServiceCount=function(c){var e=1;null==this.drive&&"function"!==typeof window.DriveClient||e++;null==this.dropbox&&"function"!==typeof window.DropboxClient||e++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||e++;null!=this.gitHub&&e++;null!=
this.gitLab&&e++;c&&isLocalStorage&&"1"==urlParams.browser&&e++;return e};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var c=this.getCurrentFile(),e=null!=c||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(e);this.menus.get("viewZoom").setEnabled(e);var g=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==c||c.isRestricted());this.actions.get("makeCopy").setEnabled(!g);this.actions.get("print").setEnabled(!g);
this.menus.get("exportAs").setEnabled(!g);this.menus.get("embed").setEnabled(!g);g="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(g);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(g),this.menus.get("newLibrary").setEnabled(g));c="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=c&&c.isEditable();this.actions.get("image").setEnabled(e);this.actions.get("zoomIn").setEnabled(e);this.actions.get("zoomOut").setEnabled(e);this.actions.get("resetView").setEnabled(e);
this.actions.get("undo").setEnabled(this.canUndo()&&c);this.actions.get("redo").setEnabled(this.canRedo()&&c);this.menus.get("edit").setEnabled(e);this.menus.get("view").setEnabled(e);this.menus.get("importFrom").setEnabled(c);this.menus.get("arrange").setEnabled(c);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(c),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(c));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=
@@ -12129,34 +12129,34 @@ this.addListener("sketchModeChanged",mxUtils.bind(this,function(){e.refresh()}))
this.actions.get("shadowVisible").setEnabled(q);this.actions.get("connectionArrows").setEnabled(q);this.actions.get("connectionPoints").setEnabled(q);this.actions.get("copyStyle").setEnabled(q&&!c.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(q&&0<g.cells.length);this.actions.get("editGeometry").setEnabled(0<g.vertices.length);this.actions.get("createShape").setEnabled(q);this.actions.get("createRevision").setEnabled(q);this.actions.get("moveToFolder").setEnabled(null!=e);this.actions.get("makeCopy").setEnabled(null!=
e&&!e.isRestricted());this.actions.get("editDiagram").setEnabled(q&&(null==e||!e.isRestricted()));this.actions.get("publishLink").setEnabled(null!=e&&!e.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=e&&e.isRenamable()||"1"==
urlParams.embed);this.actions.get("close").setEnabled(null!=e);this.menus.get("publish").setEnabled(null!=e&&!e.isRestricted());e=this.actions.get("findReplace");e.setEnabled("hidden"!=this.diagramContainer.style.visibility);e.label=mxResources.get("find")+(c.isEnabled()?"/"+mxResources.get("replace"):"")+"...";c=c.view.getState(c.getSelectionCell());this.actions.get("editShape").setEnabled(q&&null!=c&&null!=c.shape&&null!=c.shape.stencil)};var K=EditorUi.prototype.destroy;EditorUi.prototype.destroy=
-function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);K.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(c,e,g,q,n,m,z,C){var u=c.editor.graph;if("xml"==g)c.hideDialog(),c.saveData(e,"xml",mxUtils.getXml(c.editor.getGraphXml()),"text/xml");else if("svg"==g)c.hideDialog(),c.saveData(e,"svg",mxUtils.getXml(u.getSvg(q,n,m)),"image/svg+xml");
-else{var y=c.getFileData(!0,null,null,null,null,!0),I=u.getGraphBounds(),N=Math.floor(I.width*n/u.view.scale),t=Math.floor(I.height*n/u.view.scale);if(y.length<=MAX_REQUEST_SIZE&&N*t<MAX_AREA)if(c.hideDialog(),"png"!=g&&"jpg"!=g&&"jpeg"!=g||!c.isExportToCanvas()){var p={globalVars:u.getExportVariables()};C&&(p.grid={size:u.gridSize,steps:u.view.gridSteps,color:u.view.gridColor});c.saveRequest(e,g,function(F,J){return new mxXmlRequest(EXPORT_URL,"format="+g+"&base64="+(J||"0")+(null!=F?"&filename="+
-encodeURIComponent(F):"")+"&extras="+encodeURIComponent(JSON.stringify(p))+(0<z?"&dpi="+z:"")+"&bg="+(null!=q?q:"none")+"&w="+N+"&h="+t+"&border="+m+"&xml="+encodeURIComponent(y))})}else"png"==g?c.exportImage(n,null==q||"none"==q,!0,!1,!1,m,!0,!1,null,C,z):c.exportImage(n,!1,!0,!1,!1,m,!0,!1,"jpeg",C);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var c=this.editor.graph,e="";if(null!=this.pages)for(var g=
+function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);K.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(c,e,g,q,m,n,z,C){var u=c.editor.graph;if("xml"==g)c.hideDialog(),c.saveData(e,"xml",mxUtils.getXml(c.editor.getGraphXml()),"text/xml");else if("svg"==g)c.hideDialog(),c.saveData(e,"svg",mxUtils.getXml(u.getSvg(q,m,n)),"image/svg+xml");
+else{var y=c.getFileData(!0,null,null,null,null,!0),I=u.getGraphBounds(),N=Math.floor(I.width*m/u.view.scale),t=Math.floor(I.height*m/u.view.scale);if(y.length<=MAX_REQUEST_SIZE&&N*t<MAX_AREA)if(c.hideDialog(),"png"!=g&&"jpg"!=g&&"jpeg"!=g||!c.isExportToCanvas()){var p={globalVars:u.getExportVariables()};C&&(p.grid={size:u.gridSize,steps:u.view.gridSteps,color:u.view.gridColor});c.saveRequest(e,g,function(F,J){return new mxXmlRequest(EXPORT_URL,"format="+g+"&base64="+(J||"0")+(null!=F?"&filename="+
+encodeURIComponent(F):"")+"&extras="+encodeURIComponent(JSON.stringify(p))+(0<z?"&dpi="+z:"")+"&bg="+(null!=q?q:"none")+"&w="+N+"&h="+t+"&border="+n+"&xml="+encodeURIComponent(y))})}else"png"==g?c.exportImage(m,null==q||"none"==q,!0,!1,!1,n,!0,!1,null,C,z):c.exportImage(m,!1,!0,!1,!1,n,!0,!1,"jpeg",C);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var c=this.editor.graph,e="";if(null!=this.pages)for(var g=
0;g<this.pages.length;g++){var q=c;this.currentPage!=this.pages[g]&&(q=this.createTemporaryGraph(c.getStylesheet()),this.updatePageRoot(this.pages[g]),q.model.setRoot(this.pages[g].root));e+=this.pages[g].getName()+" "+q.getIndexableText()+" "}else e=c.getIndexableText();this.editor.graph.setEnabled(!0);return e};EditorUi.prototype.showRemotelyStoredLibrary=function(c){var e={},g=document.createElement("div");g.style.whiteSpace="nowrap";var q=document.createElement("h3");mxUtils.write(q,mxUtils.htmlEntities(c));
-q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(q);var n=document.createElement("div");n.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";n.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var m={};try{var z=mxSettings.getCustomLibraries();for(c=0;c<z.length;c++){var C=z[c];if("R"==C.substring(0,1)){var u=JSON.parse(decodeURIComponent(C.substring(1)));m[u[0]]={id:u[0],title:u[1],downloadUrl:u[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",
-null,null,function(y){n.innerText="";if(0==y.length)n.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var I=0;I<y.length;I++){var N=y[I];m[N.id]&&(e[N.id]=N);var t=this.addCheckbox(n,N.title,m[N.id]);(function(p,F){mxEvent.addListener(F,"change",function(){this.checked?e[p.id]=p:delete e[p.id]})})(N,t)}},mxUtils.bind(this,function(y){n.innerText="";var I=document.createElement("div");I.style.padding="8px";
-I.style.textAlign="center";mxUtils.write(I,mxResources.get("error")+": ");mxUtils.write(I,null!=y&&null!=y.message?y.message:mxResources.get("unknownError"));n.appendChild(I)}));g.appendChild(n);g=new CustomDialog(this,g,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var y=0,I;for(I in e)null==m[I]&&(y++,mxUtils.bind(this,function(N){this.remoteInvoke("getFileContent",[N.downloadUrl],null,mxUtils.bind(this,function(t){y--;0==y&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,
-t,N))}catch(p){this.handleError(p,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){y--;0==y&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(e[I]));for(I in m)e[I]||this.closeLibrary(new RemoteLibrary(this,null,m[I]));0==y&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(g.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},
+q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(q);var m=document.createElement("div");m.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";m.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var n={};try{var z=mxSettings.getCustomLibraries();for(c=0;c<z.length;c++){var C=z[c];if("R"==C.substring(0,1)){var u=JSON.parse(decodeURIComponent(C.substring(1)));n[u[0]]={id:u[0],title:u[1],downloadUrl:u[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",
+null,null,function(y){m.innerText="";if(0==y.length)m.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var I=0;I<y.length;I++){var N=y[I];n[N.id]&&(e[N.id]=N);var t=this.addCheckbox(m,N.title,n[N.id]);(function(p,F){mxEvent.addListener(F,"change",function(){this.checked?e[p.id]=p:delete e[p.id]})})(N,t)}},mxUtils.bind(this,function(y){m.innerText="";var I=document.createElement("div");I.style.padding="8px";
+I.style.textAlign="center";mxUtils.write(I,mxResources.get("error")+": ");mxUtils.write(I,null!=y&&null!=y.message?y.message:mxResources.get("unknownError"));m.appendChild(I)}));g.appendChild(m);g=new CustomDialog(this,g,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var y=0,I;for(I in e)null==n[I]&&(y++,mxUtils.bind(this,function(N){this.remoteInvoke("getFileContent",[N.downloadUrl],null,mxUtils.bind(this,function(t){y--;0==y&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,
+t,N))}catch(p){this.handleError(p,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){y--;0==y&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(e[I]));for(I in n)e[I]||this.closeLibrary(new RemoteLibrary(this,null,n[I]));0==y&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(g.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},
getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(c){this.remoteWin=c;for(var e=0;e<this.remoteInvokeQueue.length;e++)c.postMessage(this.remoteInvokeQueue[e],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=
-function(c){var e=c.msgMarkers,g=this.remoteInvokeCallbacks[e.callbackId];if(null==g)throw Error("No callback for "+(null!=e?e.callbackId:"null"));c.error?g.error&&g.error(c.error.errResp):g.callback&&g.callback.apply(this,c.resp);this.remoteInvokeCallbacks[e.callbackId]=null};EditorUi.prototype.remoteInvoke=function(c,e,g,q,n){var m=!0,z=window.setTimeout(mxUtils.bind(this,function(){m=!1;n({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),C=mxUtils.bind(this,function(){window.clearTimeout(z);
-m&&q.apply(this,arguments)}),u=mxUtils.bind(this,function(){window.clearTimeout(z);m&&n.apply(this,arguments)});g=g||{};g.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:C,error:u});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(y,I){var N={event:"remoteInvokeResponse",
-msgMarkers:c.msgMarkers};null!=I?N.error={errResp:I}:null!=y&&(N.resp=y);this.remoteWin.postMessage(JSON.stringify(N),"*")});try{var q=c.funtionName,n=this.remoteInvokableFns[q];if(null!=n&&"function"===typeof this[q]){if(n.allowedDomains){for(var m=!1,z=0;z<n.allowedDomains.length;z++)if(e=="https://"+n.allowedDomains[z]){m=!0;break}if(!m){g(null,"Invalid Call: "+q+" is not allowed.");return}}var C=c.functionArgs;Array.isArray(C)||(C=[]);if(n.isAsync)C.push(function(){g(Array.prototype.slice.apply(arguments))}),
-C.push(function(y){g(null,y||"Unkown Error")}),this[q].apply(this,C);else{var u=this[q].apply(this,C);g([u])}}else g(null,"Invalid Call: "+q+" is not found.")}catch(y){g(null,"Invalid Call: An error occurred, "+y.message)}};EditorUi.prototype.openDatabase=function(c,e){if(null==this.database){var g=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=g)try{var q=g.open("database",2);q.onupgradeneeded=function(n){try{var m=q.result;1>n.oldVersion&&m.createObjectStore("objects",{keyPath:"key"});
-2>n.oldVersion&&(m.createObjectStore("files",{keyPath:"title"}),m.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(z){null!=e&&e(z)}};q.onsuccess=mxUtils.bind(this,function(n){var m=q.result;this.database=m;EditorUi.migrateStorageFiles&&(StorageFile.migrate(m),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(z){if(!z||
+function(c){var e=c.msgMarkers,g=this.remoteInvokeCallbacks[e.callbackId];if(null==g)throw Error("No callback for "+(null!=e?e.callbackId:"null"));c.error?g.error&&g.error(c.error.errResp):g.callback&&g.callback.apply(this,c.resp);this.remoteInvokeCallbacks[e.callbackId]=null};EditorUi.prototype.remoteInvoke=function(c,e,g,q,m){var n=!0,z=window.setTimeout(mxUtils.bind(this,function(){n=!1;m({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),C=mxUtils.bind(this,function(){window.clearTimeout(z);
+n&&q.apply(this,arguments)}),u=mxUtils.bind(this,function(){window.clearTimeout(z);n&&m.apply(this,arguments)});g=g||{};g.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:C,error:u});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(y,I){var N={event:"remoteInvokeResponse",
+msgMarkers:c.msgMarkers};null!=I?N.error={errResp:I}:null!=y&&(N.resp=y);this.remoteWin.postMessage(JSON.stringify(N),"*")});try{var q=c.funtionName,m=this.remoteInvokableFns[q];if(null!=m&&"function"===typeof this[q]){if(m.allowedDomains){for(var n=!1,z=0;z<m.allowedDomains.length;z++)if(e=="https://"+m.allowedDomains[z]){n=!0;break}if(!n){g(null,"Invalid Call: "+q+" is not allowed.");return}}var C=c.functionArgs;Array.isArray(C)||(C=[]);if(m.isAsync)C.push(function(){g(Array.prototype.slice.apply(arguments))}),
+C.push(function(y){g(null,y||"Unkown Error")}),this[q].apply(this,C);else{var u=this[q].apply(this,C);g([u])}}else g(null,"Invalid Call: "+q+" is not found.")}catch(y){g(null,"Invalid Call: An error occurred, "+y.message)}};EditorUi.prototype.openDatabase=function(c,e){if(null==this.database){var g=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=g)try{var q=g.open("database",2);q.onupgradeneeded=function(m){try{var n=q.result;1>m.oldVersion&&n.createObjectStore("objects",{keyPath:"key"});
+2>m.oldVersion&&(n.createObjectStore("files",{keyPath:"title"}),n.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(z){null!=e&&e(z)}};q.onsuccess=mxUtils.bind(this,function(m){var n=q.result;this.database=n;EditorUi.migrateStorageFiles&&(StorageFile.migrate(n),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(z){if(!z||
"1"==urlParams.forceMigration){var C=document.createElement("iframe");C.style.display="none";C.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(C);var u=!0,y=!1,I,N=0,t=mxUtils.bind(this,function(){y=!0;this.setDatabaseItem(".drawioMigrated3",!0);C.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),p=mxUtils.bind(this,function(){N++;F()}),F=mxUtils.bind(this,function(){try{if(N>=
I.length)t();else{var M=I[N];StorageFile.getFileContent(this,M,mxUtils.bind(this,function(H){null==H||".scratchpad"==M&&H==this.emptyLibraryXml?C.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[M]}),"*"):p()}),p)}}catch(H){console.log(H)}}),J=mxUtils.bind(this,function(M){try{this.setDatabaseItem(null,[{title:M.title,size:M.data.length,lastModified:Date.now(),type:M.isLib?"L":"F"},{title:M.title,data:M.data}],p,p,["filesInfo","files"])}catch(H){console.log(H)}});
z=mxUtils.bind(this,function(M){try{if(M.source==C.contentWindow){var H={};try{H=JSON.parse(M.data)}catch(G){}"init"==H.event?(C.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),C.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=H.event||y||(u?null!=H.resp&&0<H.resp.length&&null!=H.resp[0]?(I=H.resp[0],u=!1,F()):t():null!=H.resp&&0<H.resp.length&&null!=H.resp[0]?J(H.resp[0]):p())}}catch(G){console.log(G)}});
-window.addEventListener("message",z)}})));c(m);m.onversionchange=function(){m.close()}});q.onerror=e;q.onblocked=function(){}}catch(n){null!=e&&e(n)}else null!=e&&e()}else c(this.database)};EditorUi.prototype.setDatabaseItem=function(c,e,g,q,n){this.openDatabase(mxUtils.bind(this,function(m){try{n=n||"objects";Array.isArray(n)||(n=[n],c=[c],e=[e]);var z=m.transaction(n,"readwrite");z.oncomplete=g;z.onerror=q;for(m=0;m<n.length;m++)z.objectStore(n[m]).put(null!=c&&null!=c[m]?{key:c[m],data:e[m]}:e[m])}catch(C){null!=
-q&&q(C)}}),q)};EditorUi.prototype.removeDatabaseItem=function(c,e,g,q){this.openDatabase(mxUtils.bind(this,function(n){q=q||"objects";Array.isArray(q)||(q=[q],c=[c]);n=n.transaction(q,"readwrite");n.oncomplete=e;n.onerror=g;for(var m=0;m<q.length;m++)n.objectStore(q[m]).delete(c[m])}),g)};EditorUi.prototype.getDatabaseItem=function(c,e,g,q){this.openDatabase(mxUtils.bind(this,function(n){try{q=q||"objects";var m=n.transaction([q],"readonly").objectStore(q).get(c);m.onsuccess=function(){e(m.result)};
-m.onerror=g}catch(z){null!=g&&g(z)}}),g)};EditorUi.prototype.getDatabaseItems=function(c,e,g){this.openDatabase(mxUtils.bind(this,function(q){try{g=g||"objects";var n=q.transaction([g],"readonly").objectStore(g).openCursor(IDBKeyRange.lowerBound(0)),m=[];n.onsuccess=function(z){null==z.target.result?c(m):(m.push(z.target.result.value),z.target.result.continue())};n.onerror=e}catch(z){null!=e&&e(z)}}),e)};EditorUi.prototype.getDatabaseItemKeys=function(c,e,g){this.openDatabase(mxUtils.bind(this,function(q){try{g=
-g||"objects";var n=q.transaction([g],"readonly").objectStore(g).getAllKeys();n.onsuccess=function(){c(n.result)};n.onerror=e}catch(m){null!=e&&e(m)}}),e)};EditorUi.prototype.commentsSupported=function(){var c=this.getCurrentFile();return null!=c?c.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var c=this.getCurrentFile();return null!=c?c.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var c=this.getCurrentFile();return null!=c?c.commentsSaveNeeded():
+window.addEventListener("message",z)}})));c(n);n.onversionchange=function(){n.close()}});q.onerror=e;q.onblocked=function(){}}catch(m){null!=e&&e(m)}else null!=e&&e()}else c(this.database)};EditorUi.prototype.setDatabaseItem=function(c,e,g,q,m){this.openDatabase(mxUtils.bind(this,function(n){try{m=m||"objects";Array.isArray(m)||(m=[m],c=[c],e=[e]);var z=n.transaction(m,"readwrite");z.oncomplete=g;z.onerror=q;for(n=0;n<m.length;n++)z.objectStore(m[n]).put(null!=c&&null!=c[n]?{key:c[n],data:e[n]}:e[n])}catch(C){null!=
+q&&q(C)}}),q)};EditorUi.prototype.removeDatabaseItem=function(c,e,g,q){this.openDatabase(mxUtils.bind(this,function(m){q=q||"objects";Array.isArray(q)||(q=[q],c=[c]);m=m.transaction(q,"readwrite");m.oncomplete=e;m.onerror=g;for(var n=0;n<q.length;n++)m.objectStore(q[n]).delete(c[n])}),g)};EditorUi.prototype.getDatabaseItem=function(c,e,g,q){this.openDatabase(mxUtils.bind(this,function(m){try{q=q||"objects";var n=m.transaction([q],"readonly").objectStore(q).get(c);n.onsuccess=function(){e(n.result)};
+n.onerror=g}catch(z){null!=g&&g(z)}}),g)};EditorUi.prototype.getDatabaseItems=function(c,e,g){this.openDatabase(mxUtils.bind(this,function(q){try{g=g||"objects";var m=q.transaction([g],"readonly").objectStore(g).openCursor(IDBKeyRange.lowerBound(0)),n=[];m.onsuccess=function(z){null==z.target.result?c(n):(n.push(z.target.result.value),z.target.result.continue())};m.onerror=e}catch(z){null!=e&&e(z)}}),e)};EditorUi.prototype.getDatabaseItemKeys=function(c,e,g){this.openDatabase(mxUtils.bind(this,function(q){try{g=
+g||"objects";var m=q.transaction([g],"readonly").objectStore(g).getAllKeys();m.onsuccess=function(){c(m.result)};m.onerror=e}catch(n){null!=e&&e(n)}}),e)};EditorUi.prototype.commentsSupported=function(){var c=this.getCurrentFile();return null!=c?c.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var c=this.getCurrentFile();return null!=c?c.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var c=this.getCurrentFile();return null!=c?c.commentsSaveNeeded():
!1};EditorUi.prototype.getComments=function(c,e){var g=this.getCurrentFile();null!=g?g.getComments(c,e):c([])};EditorUi.prototype.addComment=function(c,e,g){var q=this.getCurrentFile();null!=q?q.addComment(c,e,g):e(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var c=this.getCurrentFile();return null!=c?c.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var c=this.getCurrentFile();return null!=c?c.canComment():!0};EditorUi.prototype.newComment=function(c,e){var g=this.getCurrentFile();
return null!=g?g.newComment(c,e):new DrawioComment(this,null,c,Date.now(),Date.now(),!1,e)};EditorUi.prototype.isRevisionHistorySupported=function(){var c=this.getCurrentFile();return null!=c&&c.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(c,e){var g=this.getCurrentFile();null!=g&&g.getRevisions?g.getRevisions(c,e):e({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var c=this.getCurrentFile();return null!=c&&(c.constructor==
-DriveFile&&c.isEditable()||c.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(c){c.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(c,e,g,q,n,m,z,C){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(c,e,g,q,n,m,z,C)};EditorUi.prototype.loadFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(c)};
-EditorUi.prototype.createSvgDataUri=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(c)};EditorUi.prototype.embedCssFonts=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(c,e)};EditorUi.prototype.embedExtFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,g,q,n,m,z,C,u,y,I,N,t,p,F,J){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");
-return this.editor.exportToCanvas(c,e,g,q,n,m,z,C,u,y,I,N,t,p,F,J)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(c,e,g,q)};EditorUi.prototype.convertImageToDataUri=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");
-return this.editor.convertImageToDataUri(c,e)};EditorUi.prototype.base64Encode=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(c)};EditorUi.prototype.updateCRC=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(c,e,g,q)};EditorUi.prototype.crc32=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(c)};EditorUi.prototype.writeGraphModelToPng=function(c,e,g,q,n){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");
-return Editor.writeGraphModelToPng(c,e,g,q,n)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var c=[],e=0;e<localStorage.length;e++){var g=localStorage.key(e),q=localStorage.getItem(g);if(0<g.length&&(".scratchpad"==g||"."!=g.charAt(0))&&0<q.length){var n="<mxfile "===q.substring(0,8)||"<?xml"===q.substring(0,5)||"\x3c!--[if IE]>"===q.substring(0,12);q="<mxlibrary>"===q.substring(0,11);(n||
+DriveFile&&c.isEditable()||c.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(c){c.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(c,e,g,q,m,n,z,C){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(c,e,g,q,m,n,z,C)};EditorUi.prototype.loadFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(c)};
+EditorUi.prototype.createSvgDataUri=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(c)};EditorUi.prototype.embedCssFonts=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(c,e)};EditorUi.prototype.embedExtFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,g,q,m,n,z,C,u,y,I,N,t,p,F,J){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");
+return this.editor.exportToCanvas(c,e,g,q,m,n,z,C,u,y,I,N,t,p,F,J)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(c,e,g,q)};EditorUi.prototype.convertImageToDataUri=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");
+return this.editor.convertImageToDataUri(c,e)};EditorUi.prototype.base64Encode=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(c)};EditorUi.prototype.updateCRC=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(c,e,g,q)};EditorUi.prototype.crc32=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(c)};EditorUi.prototype.writeGraphModelToPng=function(c,e,g,q,m){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");
+return Editor.writeGraphModelToPng(c,e,g,q,m)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var c=[],e=0;e<localStorage.length;e++){var g=localStorage.key(e),q=localStorage.getItem(g);if(0<g.length&&(".scratchpad"==g||"."!=g.charAt(0))&&0<q.length){var m="<mxfile "===q.substring(0,8)||"<?xml"===q.substring(0,5)||"\x3c!--[if IE]>"===q.substring(0,12);q="<mxlibrary>"===q.substring(0,11);(m||
q)&&c.push(g)}}return c};EditorUi.prototype.getLocalStorageFile=function(c){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var e=localStorage.getItem(c);return{title:c,data:e,isLib:"<mxlibrary>"===e.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,f,k,d,v,x){function B(){for(var M=y.getElementsByTagName("div"),H=0,G=0;G<M.length;G++)"none"!=M[G].style.display&&M[G].parentNode==y&&H++;I.style.display=0==H?"block":"none"}function D(M,H,G,E){function P(){H.removeChild(U);H.removeChild(V);W.style.display="block";T.style.display="block"}z={div:H,comment:M,saveCallback:G,deleteOnCancel:E};var T=H.querySelector(".geCommentTxt"),W=H.querySelector(".geCommentActionsList"),U=document.createElement("textarea");U.className=
"geCommentEditTxtArea";U.style.minHeight=T.offsetHeight+"px";U.value=M.content;H.insertBefore(U,T);var V=document.createElement("div");V.className="geCommentEditBtns";var l=mxUtils.button(mxResources.get("cancel"),function(){E?(H.parentNode.removeChild(H),B()):P();z=null});l.className="geCommentEditBtn";V.appendChild(l);var A=mxUtils.button(mxResources.get("save"),function(){T.innerText="";M.content=U.value;mxUtils.write(T,M.content);P();G(M);z=null});mxEvent.addListener(U,"keydown",mxUtils.bind(this,
@@ -12165,35 +12165,35 @@ function(L){mxEvent.isConsumed(L)||((mxEvent.isControlDown(L)||mxClient.IS_MAC&&
"geCommentActionLnk";mxUtils.write(aa,O);X.appendChild(aa);mxEvent.addListener(aa,"click",function(Y){R(Y,M);Y.preventDefault();mxEvent.consume(Y)});Q.appendChild(X);S&&(X.style.display="none")}function W(){function O(X){R.push(S);if(null!=X.replies)for(var aa=0;aa<X.replies.length;aa++)S=S.nextSibling,O(X.replies[aa])}var R=[],S=V;O(M);return{pdiv:S,replies:R}}function U(O,R,S,X,aa){function Y(){c(la);M.addReply(fa,function(ia){fa.id=ia;M.replies.push(fa);g(la);S&&S()},function(ia){Z();e(la);b.handleError(ia,
null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},X,aa)}function Z(){D(fa,la,function(ia){Y()},!0)}var ca=W().pdiv,fa=b.newComment(O,b.getCurrentUser());fa.pCommentId=M.id;null==M.replies&&(M.replies=[]);var la=q(fa,M.replies,ca,E+1);R?Z():Y()}if(P||!M.isResolved){I.style.display="none";var V=document.createElement("div");V.className="geCommentContainer";V.setAttribute("data-commentId",M.id);V.style.marginLeft=20*E+5+"px";M.isResolved&&!Editor.isDarkMode()&&(V.style.backgroundColor=
"ghostWhite");var l=document.createElement("div");l.className="geCommentHeader";var A=document.createElement("img");A.className="geCommentUserImg";A.src=M.user.pictureUrl||Editor.userImage;l.appendChild(A);A=document.createElement("div");A.className="geCommentHeaderTxt";l.appendChild(A);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,M.user.displayName||"");A.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",
-M.id);K(M,L);A.appendChild(L);V.appendChild(l);l=document.createElement("div");l.className="geCommentTxt";mxUtils.write(l,M.content||"");V.appendChild(l);M.isLocked&&(V.style.opacity="0.5");l=document.createElement("div");l.className="geCommentActions";var Q=document.createElement("ul");Q.className="geCommentActionsList";l.appendChild(Q);n||M.isLocked||0!=E&&!m||T(mxResources.get("reply"),function(){U("",!0)},M.isResolved);A=b.getCurrentUser();null==A||A.id!=M.user.id||n||M.isLocked||(T(mxResources.get("edit"),
+M.id);K(M,L);A.appendChild(L);V.appendChild(l);l=document.createElement("div");l.className="geCommentTxt";mxUtils.write(l,M.content||"");V.appendChild(l);M.isLocked&&(V.style.opacity="0.5");l=document.createElement("div");l.className="geCommentActions";var Q=document.createElement("ul");Q.className="geCommentActionsList";l.appendChild(Q);m||M.isLocked||0!=E&&!n||T(mxResources.get("reply"),function(){U("",!0)},M.isResolved);A=b.getCurrentUser();null==A||A.id!=M.user.id||m||M.isLocked||(T(mxResources.get("edit"),
function(){function O(){D(M,V,function(){c(V);M.editComment(M.content,function(){g(V)},function(R){e(V);O();b.handleError(R,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}O()},M.isResolved),T(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){c(V);M.deleteComment(function(O){if(!0===O){O=V.querySelector(".geCommentTxt");O.innerText="";mxUtils.write(O,mxResources.get("msgDeleted"));var R=V.querySelectorAll(".geCommentAction");for(O=
-0;O<R.length;O++)R[O].parentNode.removeChild(R[O]);g(V);V.style.opacity="0.5"}else{R=W(M).replies;for(O=0;O<R.length;O++)y.removeChild(R[O]);for(O=0;O<H.length;O++)if(H[O]==M){H.splice(O,1);break}I.style.display=0==y.getElementsByTagName("div").length?"block":"none"}},function(O){e(V);b.handleError(O,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},M.isResolved));n||M.isLocked||0!=E||T(M.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(O){function R(){var S=
+0;O<R.length;O++)R[O].parentNode.removeChild(R[O]);g(V);V.style.opacity="0.5"}else{R=W(M).replies;for(O=0;O<R.length;O++)y.removeChild(R[O]);for(O=0;O<H.length;O++)if(H[O]==M){H.splice(O,1);break}I.style.display=0==y.getElementsByTagName("div").length?"block":"none"}},function(O){e(V);b.handleError(O,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},M.isResolved));m||M.isLocked||0!=E||T(M.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(O){function R(){var S=
O.target;S.innerText="";M.isResolved=!M.isResolved;mxUtils.write(S,M.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var X=M.isResolved?"none":"",aa=W(M).replies,Y=Editor.isDarkMode()?"transparent":M.isResolved?"ghostWhite":"white",Z=0;Z<aa.length;Z++){aa[Z].style.backgroundColor=Y;for(var ca=aa[Z].querySelectorAll(".geCommentAction"),fa=0;fa<ca.length;fa++)ca[fa]!=S.parentNode&&(ca[fa].style.display=X);p||(aa[Z].style.display="none")}B()}M.isResolved?U(mxResources.get("reOpened")+
": ",!0,R,!1,!0):U(mxResources.get("markedAsResolved"),!1,R,!0)});V.appendChild(l);null!=G?y.insertBefore(V,G.nextSibling):y.appendChild(V);for(G=0;null!=M.replies&&G<M.replies.length;G++)l=M.replies[G],l.isResolved=M.isResolved,q(l,M.replies,null,E+1,P);null!=z&&(z.comment.id==M.id?(P=M.content,M.content=z.comment.content,D(M,V,z.saveCallback,z.deleteOnCancel),M.content=P):null==z.comment.id&&z.comment.pCommentId==M.id&&(y.appendChild(z.div),D(z.comment,z.div,z.saveCallback,z.deleteOnCancel)));return V}}
-var n=!b.canComment(),m=b.canReplyToReplies(),z=null,C=document.createElement("div");C.className="geCommentsWin";C.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var u=EditorUi.compactUi?"26px":"30px",y=document.createElement("div");y.className="geCommentsList";y.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";y.style.bottom=parseInt(u)+7+"px";C.appendChild(y);var I=document.createElement("span");I.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(I,mxResources.get("noCommentsFound"));var N=document.createElement("div");N.className="geToolbarContainer geCommentsToolbar";N.style.height=u;N.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";N.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";u=document.createElement("a");u.className="geButton";if(!n){var t=u.cloneNode();t.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';t.setAttribute("title",mxResources.get("create")+
+var m=!b.canComment(),n=b.canReplyToReplies(),z=null,C=document.createElement("div");C.className="geCommentsWin";C.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var u=EditorUi.compactUi?"26px":"30px",y=document.createElement("div");y.className="geCommentsList";y.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";y.style.bottom=parseInt(u)+7+"px";C.appendChild(y);var I=document.createElement("span");I.style.cssText="display:none;padding-top:10px;text-align:center;";
+mxUtils.write(I,mxResources.get("noCommentsFound"));var N=document.createElement("div");N.className="geToolbarContainer geCommentsToolbar";N.style.height=u;N.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";N.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";u=document.createElement("a");u.className="geButton";if(!m){var t=u.cloneNode();t.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';t.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(t,"click",function(M){function H(){D(G,E,function(P){c(E);b.addComment(P,function(T){P.id=T;F.push(P);g(E)},function(T){e(E);H();b.handleError(T,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var G=b.newComment("",b.getCurrentUser()),E=q(G,F,null,0);H();M.preventDefault();mxEvent.consume(M)});N.appendChild(t)}t=u.cloneNode();t.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';t.setAttribute("title",mxResources.get("showResolved"));
t.className="geAdaptiveAsset";var p=!1;mxEvent.addListener(t,"click",function(M){this.className=(p=!p)?"geButton geCheckedBtn":"geButton";J();M.preventDefault();mxEvent.consume(M)});N.appendChild(t);b.commentsRefreshNeeded()&&(t=u.cloneNode(),t.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',t.setAttribute("title",mxResources.get("refresh")),t.className="geAdaptiveAsset",mxEvent.addListener(t,"click",function(M){J();M.preventDefault();mxEvent.consume(M)}),N.appendChild(t));
b.commentsSaveNeeded()&&(u=u.cloneNode(),u.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',u.setAttribute("title",mxResources.get("save")),u.className="geAdaptiveAsset",mxEvent.addListener(u,"click",function(M){x();M.preventDefault();mxEvent.consume(M)}),N.appendChild(u));C.appendChild(N);var F=[],J=mxUtils.bind(this,function(){this.hasError=!1;if(null!=z)try{z.div=z.div.cloneNode(!0);var M=z.div.querySelector(".geCommentEditTxtArea"),H=z.div.querySelector(".geCommentEditBtns");
-z.comment.content=M.value;M.parentNode.removeChild(M);H.parentNode.removeChild(H)}catch(G){b.handleError(G)}y.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";m=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(G){function E(P){if(null!=P){P.sort(function(W,U){return new Date(W.modifiedDate)-new Date(U.modifiedDate)});for(var T=0;T<P.length;T++)E(P[T].replies)}}
+z.comment.content=M.value;M.parentNode.removeChild(M);H.parentNode.removeChild(H)}catch(G){b.handleError(G)}y.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";n=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(G){function E(P){if(null!=P){P.sort(function(W,U){return new Date(W.modifiedDate)-new Date(U.modifiedDate)});for(var T=0;T<P.length;T++)E(P[T].replies)}}
G.sort(function(P,T){return new Date(P.modifiedDate)-new Date(T.modifiedDate)});y.innerText="";y.appendChild(I);I.style.display="block";F=G;for(G=0;G<F.length;G++)E(F[G].replies),q(F[G],F,null,0,p);null!=z&&null==z.comment.id&&null==z.comment.pCommentId&&(y.appendChild(z.div),D(z.comment,z.div,z.saveCallback,z.deleteOnCancel))},mxUtils.bind(this,function(G){y.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(G&&G.message?": "+G.message:""));this.hasError=!0})):y.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});
J();this.refreshComments=J;N=mxUtils.bind(this,function(){function M(T){var W=G[T.id];if(null!=W)for(K(T,W),W=0;null!=T.replies&&W<T.replies.length;W++)M(T.replies[W])}if(this.window.isVisible()){for(var H=y.querySelectorAll(".geCommentDate"),G={},E=0;E<H.length;E++){var P=H[E];G[P.getAttribute("data-commentId")]=P}for(E=0;E<F.length;E++)M(F[E])}});setInterval(N,6E4);this.refreshCommentsTime=N;this.window=new mxWindow(mxResources.get("comments"),C,f,k,d,v,!0,!0);this.window.minimumSize=new mxRectangle(0,
0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));b.installResizeHandler(this,!0)},ConfirmDialog=function(b,f,k,d,v,x,B,D,K,c,e){var g=document.createElement("div");g.style.textAlign="center";e=null!=e?e:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=e+
-"px";q.style.lineHeight="1.2em";mxUtils.write(q,f);g.appendChild(q);null!=c&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",f=document.createElement("img"),f.setAttribute("src",c),q.appendChild(f),g.appendChild(q));c=document.createElement("div");c.style.textAlign="center";c.style.whiteSpace="nowrap";var n=document.createElement("input");n.setAttribute("type","checkbox");x=mxUtils.button(x||mxResources.get("cancel"),function(){b.hideDialog();null!=d&&d(n.checked)});x.className="geBtn";
-null!=D&&(x.innerHTML=D+"<br>"+x.innerHTML,x.style.paddingBottom="8px",x.style.paddingTop="8px",x.style.height="auto",x.style.width="40%");b.editor.cancelFirst&&c.appendChild(x);var m=mxUtils.button(v||mxResources.get("ok"),function(){b.hideDialog();null!=k&&k(n.checked)});c.appendChild(m);null!=B?(m.innerHTML=B+"<br>"+m.innerHTML+"<br>",m.style.paddingBottom="8px",m.style.paddingTop="8px",m.style.height="auto",m.className="geBtn",m.style.width="40%"):m.className="geBtn gePrimaryBtn";b.editor.cancelFirst||
-c.appendChild(x);g.appendChild(c);K?(c.style.marginTop="10px",q=document.createElement("p"),q.style.marginTop="20px",q.style.marginBottom="0px",q.appendChild(n),v=document.createElement("span"),mxUtils.write(v," "+mxResources.get("rememberThisSetting")),q.appendChild(v),g.appendChild(q),mxEvent.addListener(v,"click",function(z){n.checked=!n.checked;mxEvent.consume(z)})):c.style.marginTop="12px";this.init=function(){m.focus()};this.container=g};EditorUi.DIFF_INSERT="i";EditorUi.DIFF_REMOVE="r";EditorUi.DIFF_UPDATE="u";EditorUi.transientViewStateProperties="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");EditorUi.prototype.viewStateProperties={background:!0,backgroundImage:!0,shadowVisible:!0,foldingEnabled:!0,pageScale:!0,mathEnabled:!0,pageFormat:!0,extFonts:!0};
+"px";q.style.lineHeight="1.2em";mxUtils.write(q,f);g.appendChild(q);null!=c&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",f=document.createElement("img"),f.setAttribute("src",c),q.appendChild(f),g.appendChild(q));c=document.createElement("div");c.style.textAlign="center";c.style.whiteSpace="nowrap";var m=document.createElement("input");m.setAttribute("type","checkbox");x=mxUtils.button(x||mxResources.get("cancel"),function(){b.hideDialog();null!=d&&d(m.checked)});x.className="geBtn";
+null!=D&&(x.innerHTML=D+"<br>"+x.innerHTML,x.style.paddingBottom="8px",x.style.paddingTop="8px",x.style.height="auto",x.style.width="40%");b.editor.cancelFirst&&c.appendChild(x);var n=mxUtils.button(v||mxResources.get("ok"),function(){b.hideDialog();null!=k&&k(m.checked)});c.appendChild(n);null!=B?(n.innerHTML=B+"<br>"+n.innerHTML+"<br>",n.style.paddingBottom="8px",n.style.paddingTop="8px",n.style.height="auto",n.className="geBtn",n.style.width="40%"):n.className="geBtn gePrimaryBtn";b.editor.cancelFirst||
+c.appendChild(x);g.appendChild(c);K?(c.style.marginTop="10px",q=document.createElement("p"),q.style.marginTop="20px",q.style.marginBottom="0px",q.appendChild(m),v=document.createElement("span"),mxUtils.write(v," "+mxResources.get("rememberThisSetting")),q.appendChild(v),g.appendChild(q),mxEvent.addListener(v,"click",function(z){m.checked=!m.checked;mxEvent.consume(z)})):c.style.marginTop="12px";this.init=function(){n.focus()};this.container=g};EditorUi.DIFF_INSERT="i";EditorUi.DIFF_REMOVE="r";EditorUi.DIFF_UPDATE="u";EditorUi.transientViewStateProperties="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");EditorUi.prototype.viewStateProperties={background:!0,backgroundImage:!0,shadowVisible:!0,foldingEnabled:!0,pageScale:!0,mathEnabled:!0,pageFormat:!0,extFonts:!0};
EditorUi.prototype.cellProperties={id:!0,value:!0,xmlValue:!0,vertex:!0,edge:!0,visible:!0,collapsed:!0,connectable:!0,parent:!0,children:!0,previous:!0,source:!0,target:!0,edges:!0,geometry:!0,style:!0,overlays:!0,mxObjectId:!0,mxTransient:!0};EditorUi.prototype.codec=new mxCodec;EditorUi.prototype.applyPatches=function(b,f,k,d,v){if(null!=f)for(var x=0;x<f.length;x++)null!=f[x]&&(b=this.patchPages(b,f[x],k,d,v));return b};
EditorUi.prototype.patchPages=function(b,f,k,d,v){var x={},B=[],D={},K={},c={},e={};if(null!=d&&null!=d[EditorUi.DIFF_UPDATE])for(var g in d[EditorUi.DIFF_UPDATE])x[g]=d[EditorUi.DIFF_UPDATE][g];if(null!=f[EditorUi.DIFF_REMOVE])for(d=0;d<f[EditorUi.DIFF_REMOVE].length;d++)K[f[EditorUi.DIFF_REMOVE][d]]=!0;if(null!=f[EditorUi.DIFF_INSERT])for(d=0;d<f[EditorUi.DIFF_INSERT].length;d++)D[f[EditorUi.DIFF_INSERT][d].previous]=f[EditorUi.DIFF_INSERT][d];if(null!=f[EditorUi.DIFF_UPDATE])for(g in f[EditorUi.DIFF_UPDATE])d=
-f[EditorUi.DIFF_UPDATE][g],null!=d.previous&&(e[d.previous]=g);if(null!=b){var q="";for(d=0;d<b.length;d++){var n=b[d].getId();c[n]=b[d];null!=e[q]||K[n]||null!=f[EditorUi.DIFF_UPDATE]&&null!=f[EditorUi.DIFF_UPDATE][n]&&null!=f[EditorUi.DIFF_UPDATE][n].previous||(e[q]=n);q=n}}var m={},z=mxUtils.bind(this,function(u){var y=null!=u?u.getId():"";if(null!=u&&!m[y]){m[y]=!0;B.push(u);var I=null!=f[EditorUi.DIFF_UPDATE]?f[EditorUi.DIFF_UPDATE][y]:null;null!=I&&(this.updatePageRoot(u),null!=I.name&&u.setName(I.name),
+f[EditorUi.DIFF_UPDATE][g],null!=d.previous&&(e[d.previous]=g);if(null!=b){var q="";for(d=0;d<b.length;d++){var m=b[d].getId();c[m]=b[d];null!=e[q]||K[m]||null!=f[EditorUi.DIFF_UPDATE]&&null!=f[EditorUi.DIFF_UPDATE][m]&&null!=f[EditorUi.DIFF_UPDATE][m].previous||(e[q]=m);q=m}}var n={},z=mxUtils.bind(this,function(u){var y=null!=u?u.getId():"";if(null!=u&&!n[y]){n[y]=!0;B.push(u);var I=null!=f[EditorUi.DIFF_UPDATE]?f[EditorUi.DIFF_UPDATE][y]:null;null!=I&&(this.updatePageRoot(u),null!=I.name&&u.setName(I.name),
null!=I.view&&this.patchViewState(u,I.view),null!=I.cells&&this.patchPage(u,I.cells,x[u.getId()],v),!k||null==I.cells&&null==I.view||(u.needsUpdate=!0))}u=e[y];null!=u&&(delete e[y],z(c[u]));u=D[y];null!=u&&(delete D[y],C(u))}),C=mxUtils.bind(this,function(u){u=mxUtils.parseXml(u.data).documentElement;u=new DiagramPage(u);this.updatePageRoot(u);var y=c[u.getId()];null==y?z(u):(this.patchPage(y,this.diffPages([y],[u]),x[y.getId()],v),k&&(y.needsUpdate=!0))});z();for(g in e)z(c[e[g]]),delete e[g];for(g in D)C(D[g]),
delete D[g];return B};EditorUi.prototype.patchViewState=function(b,f){if(null!=b.viewState&&null!=f){b==this.currentPage&&(b.viewState=this.editor.graph.getViewState());for(var k in f)try{this.patchViewStateProperty(b,f,k)}catch(d){}b==this.currentPage&&this.editor.graph.setViewState(b.viewState,!0)}};EditorUi.prototype.patchViewStateProperty=function(b,f,k){b.viewState[k]=JSON.parse(f[k])};
EditorUi.prototype.createParentLookup=function(b,f){function k(c){var e=d[c];null==e&&(e={inserted:[],moved:{}},d[c]=e);return e}var d={};if(null!=f[EditorUi.DIFF_INSERT])for(var v=0;v<f[EditorUi.DIFF_INSERT].length;v++){var x=f[EditorUi.DIFF_INSERT][v],B=null!=x.parent?x.parent:"",D=null!=x.previous?x.previous:"";k(B).inserted[D]=x}if(null!=f[EditorUi.DIFF_UPDATE])for(var K in f[EditorUi.DIFF_UPDATE])x=f[EditorUi.DIFF_UPDATE][K],null!=x.previous&&(B=x.parent,null==B&&(v=b.getCell(K),null!=v&&(v=
b.getParent(v),null!=v&&(B=v.getId()))),null!=B&&(k(B).moved[x.previous]=K));return d};
EditorUi.prototype.patchPage=function(b,f,k,d){var v=b==this.currentPage?this.editor.graph.model:new mxGraphModel(b.root),x=this.createParentLookup(v,f);v.beginUpdate();try{var B=v.updateEdgeParent,D=new mxDictionary,K=[];v.updateEdgeParent=function(C,u){!D.get(C)&&d&&(D.put(C,!0),K.push(C))};var c=x[""],e=null!=c&&null!=c.inserted?c.inserted[""]:null,g=null;null!=e&&(g=this.getCellForJson(e));if(null==g){var q=null!=c&&null!=c.moved?c.moved[""]:null;null!=q&&(g=v.getCell(q))}null!=g&&(v.setRoot(g),
-b.root=g);this.patchCellRecursive(b,v,v.root,x,f);if(null!=f[EditorUi.DIFF_REMOVE])for(var n=0;n<f[EditorUi.DIFF_REMOVE].length;n++){var m=v.getCell(f[EditorUi.DIFF_REMOVE][n]);null!=m&&v.remove(m)}if(null!=f[EditorUi.DIFF_UPDATE]){var z=null!=k&&null!=k.cells?k.cells[EditorUi.DIFF_UPDATE]:null;for(q in f[EditorUi.DIFF_UPDATE])this.patchCell(v,v.getCell(q),f[EditorUi.DIFF_UPDATE][q],null!=z?z[q]:null)}if(null!=f[EditorUi.DIFF_INSERT])for(n=0;n<f[EditorUi.DIFF_INSERT].length;n++)e=f[EditorUi.DIFF_INSERT][n],
-m=v.getCell(e.id),null!=m&&(v.setTerminal(m,v.getCell(e.source),!0),v.setTerminal(m,v.getCell(e.target),!1));v.updateEdgeParent=B;if(d&&0<K.length)for(n=0;n<K.length;n++)v.contains(K[n])&&v.updateEdgeParent(K[n])}finally{v.endUpdate()}};
-EditorUi.prototype.patchCellRecursive=function(b,f,k,d,v){if(null!=k){var x=d[k.getId()],B=null!=x&&null!=x.inserted?x.inserted:{};x=null!=x&&null!=x.moved?x.moved:{};for(var D=0,K=f.getChildCount(k),c="",e=0;e<K;e++){var g=f.getChildAt(k,e).getId();null==x[c]&&(null==v[EditorUi.DIFF_UPDATE]||null==v[EditorUi.DIFF_UPDATE][g]||null==v[EditorUi.DIFF_UPDATE][g].previous&&null==v[EditorUi.DIFF_UPDATE][g].parent)&&(x[c]=g);c=g}K=mxUtils.bind(this,function(q,n){var m=null!=q?q.getId():"";null!=q&&n&&(n=
-f.getCell(m),null!=n&&n!=q&&(q=null));null!=q&&(f.getChildAt(k,D)!=q&&f.add(k,q,D),this.patchCellRecursive(b,f,q,d,v),D++);return m});for(c=[null];0<c.length;)if(e=c.shift(),e=K(null!=e?e.child:null,null!=e?e.insert:!1),g=x[e],null!=g&&(delete x[e],c.push({child:f.getCell(g)})),g=B[e],null!=g&&(delete B[e],c.push({child:this.getCellForJson(g),insert:!0})),0==c.length){for(e in x)c.push({child:f.getCell(x[e])}),delete x[e];for(e in B)c.push({child:this.getCellForJson(B[e]),insert:!0}),delete B[e]}}};
+b.root=g);this.patchCellRecursive(b,v,v.root,x,f);if(null!=f[EditorUi.DIFF_REMOVE])for(var m=0;m<f[EditorUi.DIFF_REMOVE].length;m++){var n=v.getCell(f[EditorUi.DIFF_REMOVE][m]);null!=n&&v.remove(n)}if(null!=f[EditorUi.DIFF_UPDATE]){var z=null!=k&&null!=k.cells?k.cells[EditorUi.DIFF_UPDATE]:null;for(q in f[EditorUi.DIFF_UPDATE])this.patchCell(v,v.getCell(q),f[EditorUi.DIFF_UPDATE][q],null!=z?z[q]:null)}if(null!=f[EditorUi.DIFF_INSERT])for(m=0;m<f[EditorUi.DIFF_INSERT].length;m++)e=f[EditorUi.DIFF_INSERT][m],
+n=v.getCell(e.id),null!=n&&(v.setTerminal(n,v.getCell(e.source),!0),v.setTerminal(n,v.getCell(e.target),!1));v.updateEdgeParent=B;if(d&&0<K.length)for(m=0;m<K.length;m++)v.contains(K[m])&&v.updateEdgeParent(K[m])}finally{v.endUpdate()}};
+EditorUi.prototype.patchCellRecursive=function(b,f,k,d,v){if(null!=k){var x=d[k.getId()],B=null!=x&&null!=x.inserted?x.inserted:{};x=null!=x&&null!=x.moved?x.moved:{};for(var D=0,K=f.getChildCount(k),c="",e=0;e<K;e++){var g=f.getChildAt(k,e).getId();null==x[c]&&(null==v[EditorUi.DIFF_UPDATE]||null==v[EditorUi.DIFF_UPDATE][g]||null==v[EditorUi.DIFF_UPDATE][g].previous&&null==v[EditorUi.DIFF_UPDATE][g].parent)&&(x[c]=g);c=g}K=mxUtils.bind(this,function(q,m){var n=null!=q?q.getId():"";null!=q&&m&&(m=
+f.getCell(n),null!=m&&m!=q&&(q=null));null!=q&&(f.getChildAt(k,D)!=q&&f.add(k,q,D),this.patchCellRecursive(b,f,q,d,v),D++);return n});for(c=[null];0<c.length;)if(e=c.shift(),e=K(null!=e?e.child:null,null!=e?e.insert:!1),g=x[e],null!=g&&(delete x[e],c.push({child:f.getCell(g)})),g=B[e],null!=g&&(delete B[e],c.push({child:this.getCellForJson(g),insert:!0})),0==c.length){for(e in x)c.push({child:f.getCell(x[e])}),delete x[e];for(e in B)c.push({child:this.getCellForJson(B[e]),insert:!0}),delete B[e]}}};
EditorUi.prototype.patchCell=function(b,f,k,d){if(null!=f&&null!=k){if(null==d||null==d.xmlValue&&(null==d.value||""==d.value))"value"in k?b.setValue(f,k.value):null!=k.xmlValue&&b.setValue(f,mxUtils.parseXml(k.xmlValue).documentElement);null!=d&&null!=d.style||null==k.style||b.setStyle(f,k.style);null!=k.visible&&b.setVisible(f,1==k.visible);null!=k.collapsed&&b.setCollapsed(f,1==k.collapsed);null!=k.vertex&&(f.vertex=1==k.vertex);null!=k.edge&&(f.edge=1==k.edge);null!=k.connectable&&(f.connectable=
1==k.connectable);null!=k.geometry&&b.setGeometry(f,this.codec.decode(mxUtils.parseXml(k.geometry).documentElement));null!=k.source&&b.setTerminal(f,b.getCell(k.source),!0);null!=k.target&&b.setTerminal(f,b.getCell(k.target),!1);for(var v in k)this.cellProperties[v]||(f[v]=k[v])}};EditorUi.prototype.getXmlForPages=function(b){b=this.getNodeForPages(b);var f=null;null!=b&&(f=mxUtils.getXml(b));return f};
EditorUi.prototype.getNodeForPages=function(b){var f=null;if(null!=this.fileNode&&null!=b){f=this.fileNode.cloneNode(!1);for(var k=0;k<b.length;k++){var d=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(b[k].root));this.editor.graph.saveViewState(b[k].viewState,d);var v=b[k].node.cloneNode(!1);v.appendChild(d);f.appendChild(v)}}return f};EditorUi.prototype.getPagesForXml=function(b){b=mxUtils.parseXml(b);return this.getPagesForNode(b.documentElement)};
@@ -12265,15 +12265,15 @@ DrawioFileSync.prototype.sendLocalChanges=function(){try{if(this.file.isRealtime
b,k)}};DrawioFileSync.prototype.doReceiveRemoteChanges=function(b){this.file.isRealtime()&&this.isRealtimeActive()&&(this.sendLocalChanges(),this.file.patch(b),this.file.theirPages=this.ui.applyPatches(this.file.theirPages,b),this.scheduleCleanup(),EditorUi.debug("DrawioFileSync.doReceiveRemoteChanges",[this],"changes",b))};
DrawioFileSync.prototype.merge=function(b,f,k,d,v,x){try{this.file.stats.merged++;this.lastModified=new Date;var B=this.file.getDescriptorRevisionId(k);if(!this.file.ignorePatches(b)){this.sendLocalChanges();var D=this.file.getShadowPages();this.file.backupPatch=this.file.isModified()&&!this.file.isRealtime()?this.ui.diffPages(D,this.ui.pages):null;var K=this.file.isRealtime()?this.ui.diffPages(D,this.file.ownPages):null;D=this.ui.applyPatches(D,b);var c=null==f?null:this.ui.getHashValueForPages(D);
this.file.setShadowPages(D);EditorUi.debug("DrawioFileSync.merge",[this],"patches",b,"backup",this.file.backupPatch,"pending",K,"checksum",f,"current",c,"valid",f==c,"attempt",this.catchupRetryCount,"of",this.maxCatchupRetries,"from",this.file.getCurrentRevisionId(),"to",B,"etag",this.file.getDescriptorEtag(k));if(null!=f&&f!=c){var e=this.ui.hashValue(B),g=this.ui.hashValue(this.file.getCurrentRevisionId());this.file.checksumError(v,b,"From: "+g+"\nTo: "+e+"\nChecksum: "+f+"\nCurrent: "+c,B,"merge",
-f,c,B);"1"==urlParams.test&&EditorUi.debug("DrawioFileSync.merge.checksumError",[this],"data",[this.file.data,this.file.createData(),this.ui.getXmlForPages(D)]);return}null==this.patchRealtime(b,null,K)&&this.file.patch(b,DrawioFile.LAST_WRITE_WINS?this.file.backupPatch:null)}this.file.invalidChecksum=!1;this.file.inConflictState=!1;this.file.patchDescriptor(this.file.getDescriptor(),k);this.file.backupPatch=null;null!=d&&d(!0)}catch(m){this.file.inConflictState=!0;this.file.invalidChecksum=!0;this.file.descriptorChanged();
-null!=v&&v(m);try{if(this.file.errorReportsEnabled)g=this.ui.hashValue(this.file.getCurrentRevisionId()),e=this.ui.hashValue(B),this.file.sendErrorReport("Error in merge","From: "+g+"\nTo: "+e+"\nChecksum: "+f+"\nPatches:\n"+this.file.compressReportData(JSON.stringify(b,null,2)),m);else{var q=this.file.getCurrentUser(),n=null!=q?q.id:"unknown";EditorUi.logError("Error in merge",null,this.file.getMode()+"."+this.file.getId(),n,m)}}catch(z){}}};
+f,c,B);"1"==urlParams.test&&EditorUi.debug("DrawioFileSync.merge.checksumError",[this],"data",[this.file.data,this.file.createData(),this.ui.getXmlForPages(D)]);return}null==this.patchRealtime(b,null,K)&&this.file.patch(b,DrawioFile.LAST_WRITE_WINS?this.file.backupPatch:null)}this.file.invalidChecksum=!1;this.file.inConflictState=!1;this.file.patchDescriptor(this.file.getDescriptor(),k);this.file.backupPatch=null;null!=d&&d(!0)}catch(n){this.file.inConflictState=!0;this.file.invalidChecksum=!0;this.file.descriptorChanged();
+null!=v&&v(n);try{if(this.file.errorReportsEnabled)g=this.ui.hashValue(this.file.getCurrentRevisionId()),e=this.ui.hashValue(B),this.file.sendErrorReport("Error in merge","From: "+g+"\nTo: "+e+"\nChecksum: "+f+"\nPatches:\n"+this.file.compressReportData(JSON.stringify(b,null,2)),n);else{var q=this.file.getCurrentUser(),m=null!=q?q.id:"unknown";EditorUi.logError("Error in merge",null,this.file.getMode()+"."+this.file.getId(),m,n)}}catch(z){}}};
DrawioFileSync.prototype.fileChanged=function(b,f,k,d){var v=window.setTimeout(mxUtils.bind(this,function(){null!=k&&k()||(EditorUi.debug("DrawioFileSync.fileChanged",[this],"lazy",d,"valid",this.isValidState()),this.isValidState()?this.file.loadPatchDescriptor(mxUtils.bind(this,function(x){null!=k&&k()||(this.isValidState()?this.catchup(x,b,f,k):null!=f&&f())}),f):null!=f&&f())}),d?this.cacheReadyDelay:0);return this.notifyThread=v};
DrawioFileSync.prototype.reloadDescriptor=function(){this.file.loadDescriptor(mxUtils.bind(this,function(b){null!=b?(this.file.setDescriptorRevisionId(b,this.file.getCurrentRevisionId()),this.updateDescriptor(b),this.fileChangedNotify()):(this.file.inConflictState=!0,this.file.handleFileError())}),mxUtils.bind(this,function(b){this.file.inConflictState=!0;this.file.handleFileError(b)}))};
DrawioFileSync.prototype.updateDescriptor=function(b){this.file.setDescriptor(b);this.file.descriptorChanged();this.start()};
DrawioFileSync.prototype.catchup=function(b,f,k,d){if(null!=b&&(null==d||!d())){var v=this.file.getCurrentRevisionId(),x=this.file.getDescriptorRevisionId(b);EditorUi.debug("DrawioFileSync.catchup",[this],"desc",[b],"from",v,"to",x,"valid",this.isValidState());if(v==x)this.file.patchDescriptor(this.file.getDescriptor(),b),null!=f&&f(!0);else if(this.isValidState()){var B=this.file.getDescriptorSecret(b);if(null==B||"1"==urlParams.lockdown)this.reload(f,k,d);else{var D=0,K=!1,c=mxUtils.bind(this,function(){if(null==
d||!d())if(v!=this.file.getCurrentRevisionId())null!=f&&f(!0);else if(this.isValidState()){this.scheduleCleanup(!0);var e=!0,g=window.setTimeout(mxUtils.bind(this,function(){e=!1;this.reload(f,k,d)}),this.ui.timeout);mxUtils.get(EditorUi.cacheUrl+"?id="+encodeURIComponent(this.channelId)+"&from="+encodeURIComponent(v)+"&to="+encodeURIComponent(x)+(null!=B?"&secret="+encodeURIComponent(B):""),mxUtils.bind(this,function(q){this.file.stats.bytesReceived+=q.getText().length;window.clearTimeout(g);if(e&&
-(null==d||!d()))if(v!=this.file.getCurrentRevisionId())null!=f&&f(!0);else if(this.isValidState()){var n=null,m=[];EditorUi.debug("DrawioFileSync.doCatchup",[this],"req",[q],"status",q.getStatus(),"cacheReadyRetryCount",D,"maxCacheReadyRetries",this.maxCacheReadyRetries);if(200<=q.getStatus()&&299>=q.getStatus()&&0<q.getText().length)try{var z=JSON.parse(q.getText());if(null!=z&&0<z.length)for(var C=0;C<z.length;C++){var u=this.stringToObject(z[C]);if(u.v>DrawioFileSync.PROTOCOL){K=!0;m=[];break}else if(u.v===
-DrawioFileSync.PROTOCOL&&null!=u.d)n=u.d.checksum,m.push(u.d.patch);else{K=!0;m=[];break}}EditorUi.debug("DrawioFileSync.doCatchup",[this],"response",[z],"failed",K,"temp",m,"checksum",n)}catch(y){m=[],null!=window.console&&"1"==urlParams.test&&console.log(y)}try{0<m.length?(this.file.stats.cacheHits++,this.merge(m,n,b,f,k,d)):D<=this.maxCacheReadyRetries-1&&!K&&401!=q.getStatus()&&503!=q.getStatus()&&410!=q.getStatus()?(D++,this.file.stats.cacheMiss++,window.setTimeout(c,(D+1)*this.cacheReadyDelay)):
+(null==d||!d()))if(v!=this.file.getCurrentRevisionId())null!=f&&f(!0);else if(this.isValidState()){var m=null,n=[];EditorUi.debug("DrawioFileSync.doCatchup",[this],"req",[q],"status",q.getStatus(),"cacheReadyRetryCount",D,"maxCacheReadyRetries",this.maxCacheReadyRetries);if(200<=q.getStatus()&&299>=q.getStatus()&&0<q.getText().length)try{var z=JSON.parse(q.getText());if(null!=z&&0<z.length)for(var C=0;C<z.length;C++){var u=this.stringToObject(z[C]);if(u.v>DrawioFileSync.PROTOCOL){K=!0;n=[];break}else if(u.v===
+DrawioFileSync.PROTOCOL&&null!=u.d)m=u.d.checksum,n.push(u.d.patch);else{K=!0;n=[];break}}EditorUi.debug("DrawioFileSync.doCatchup",[this],"response",[z],"failed",K,"temp",n,"checksum",m)}catch(y){n=[],null!=window.console&&"1"==urlParams.test&&console.log(y)}try{0<n.length?(this.file.stats.cacheHits++,this.merge(n,m,b,f,k,d)):D<=this.maxCacheReadyRetries-1&&!K&&401!=q.getStatus()&&503!=q.getStatus()&&410!=q.getStatus()?(D++,this.file.stats.cacheMiss++,window.setTimeout(c,(D+1)*this.cacheReadyDelay)):
(this.file.stats.cacheFail++,this.reload(f,k,d))}catch(y){null!=k&&k(y)}}else null!=k&&k()}))}else null!=k&&k()});window.setTimeout(c,this.cacheReadyDelay)}}else null!=k&&k()}};DrawioFileSync.prototype.reload=function(b,f,k,d){this.file.updateFile(mxUtils.bind(this,function(){this.lastModified=this.file.getLastModifiedDate();this.updateStatus();this.start();null!=b&&b()}),mxUtils.bind(this,function(v){null!=f&&f(v)}),k,d)};
DrawioFileSync.prototype.descriptorChanged=function(b){this.lastModified=this.file.getLastModifiedDate();if(null!=this.channelId){var f=this.objectToString(this.createMessage({a:"desc",m:this.lastModified.getTime()})),k=this.file.getCurrentRevisionId(),d=this.objectToString({});mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&from="+encodeURIComponent(b)+"&to="+encodeURIComponent(k)+"&msg="+encodeURIComponent(f)+"&data="+encodeURIComponent(d));this.file.stats.bytesSent+=d.length;this.file.stats.msgSent++;
EditorUi.debug("DrawioFileSync.descriptorChanged",[this],"from",b,"to",k)}this.updateStatus()};DrawioFileSync.prototype.objectToString=function(b){b=Graph.compress(JSON.stringify(b));null!=this.key&&"undefined"!==typeof CryptoJS&&(b=CryptoJS.AES.encrypt(b,this.key).toString());return b};DrawioFileSync.prototype.stringToObject=function(b){null!=this.key&&"undefined"!==typeof CryptoJS&&(b=CryptoJS.AES.decrypt(b,this.key).toString(CryptoJS.enc.Utf8));return JSON.parse(Graph.decompress(b))};
@@ -12281,8 +12281,8 @@ DrawioFileSync.prototype.createToken=function(b,f,k){var d=!0,v=window.setTimeou
DrawioFileSync.prototype.fileSaving=function(){if(this.file.isOptimisticSync()){var b=this.objectToString(this.createMessage({m:(new Date).getTime(),type:"optimistic"}));mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&msg="+encodeURIComponent(b),function(){})}EditorUi.debug("DrawioFileSync.fileSaving",[this],"optimistic",this.file.isOptimisticSync())};DrawioFileSync.prototype.fileDataUpdated=function(){this.scheduleCleanup(!0);EditorUi.debug("DrawioFileSync.fileDataUpdated",[this])};
DrawioFileSync.prototype.fileSaved=function(b,f,k,d,v){this.lastModified=this.file.getLastModifiedDate();this.resetUpdateStatusThread();this.catchupRetryCount=0;if(!this.ui.isOffline(!0)&&!this.file.inConflictState&&!this.file.redirectDialogShowing&&(this.start(),null!=this.channelId)){var x=this.objectToString(this.createMessage({m:this.lastModified.getTime()})),B=this.file.getDescriptorSecret(this.file.getDescriptor()),D=this.file.getDescriptorRevisionId(f),K=this.file.getCurrentRevisionId();if(null==
B||null==v||"1"==urlParams.lockdown)this.file.stats.msgSent++,mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&msg="+encodeURIComponent(x),function(){}),null!=k&&k(),EditorUi.debug("DrawioFileSync.fileSaved",[this],"from",D,"to",K,"etag",this.file.getCurrentEtag());else{var c=this.ui.diffPages(this.file.getShadowPages(),b);f=this.file.getDescriptorSecret(f);var e=this.ui.getHashValueForPages(b),g=this.objectToString(this.createMessage({patch:c,checksum:e}));this.file.stats.bytesSent+=g.length;
-this.file.stats.msgSent++;var q=!0,n=window.setTimeout(mxUtils.bind(this,function(){q=!1;d({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.ui.timeout);mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&from="+encodeURIComponent(D)+"&to="+encodeURIComponent(K)+"&msg="+encodeURIComponent(x)+(null!=B?"&secret="+encodeURIComponent(B):"")+(null!=f?"&last-secret="+encodeURIComponent(f):"")+(g.length<this.maxCacheEntrySize?"&data="+encodeURIComponent(g):"")+(null!=v?"&token="+encodeURIComponent(v):
-""),mxUtils.bind(this,function(m){window.clearTimeout(n);q&&(200<=m.getStatus()&&299>=m.getStatus()?null!=k&&k():d({code:m.getStatus(),message:m.getStatus()}))}));EditorUi.debug("DrawioFileSync.fileSaved",[this],"diff",c,g.length,"bytes","from",D,"to",K,"etag",this.file.getCurrentEtag(),"checksum",e)}}this.file.setShadowPages(b);this.scheduleCleanup()};
+this.file.stats.msgSent++;var q=!0,m=window.setTimeout(mxUtils.bind(this,function(){q=!1;d({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.ui.timeout);mxUtils.post(EditorUi.cacheUrl,this.getIdParameters()+"&from="+encodeURIComponent(D)+"&to="+encodeURIComponent(K)+"&msg="+encodeURIComponent(x)+(null!=B?"&secret="+encodeURIComponent(B):"")+(null!=f?"&last-secret="+encodeURIComponent(f):"")+(g.length<this.maxCacheEntrySize?"&data="+encodeURIComponent(g):"")+(null!=v?"&token="+encodeURIComponent(v):
+""),mxUtils.bind(this,function(n){window.clearTimeout(m);q&&(200<=n.getStatus()&&299>=n.getStatus()?null!=k&&k():d({code:n.getStatus(),message:n.getStatus()}))}));EditorUi.debug("DrawioFileSync.fileSaved",[this],"diff",c,g.length,"bytes","from",D,"to",K,"etag",this.file.getCurrentEtag(),"checksum",e)}}this.file.setShadowPages(b);this.scheduleCleanup()};
DrawioFileSync.prototype.getIdParameters=function(){var b="id="+this.channelId;null!=this.pusher&&null!=this.pusher.connection&&null!=this.pusher.connection.socket_id&&(b+="&sid="+this.pusher.connection.socket_id);return b};DrawioFileSync.prototype.createMessage=function(b){return{v:DrawioFileSync.PROTOCOL,d:b,c:this.clientId}};
DrawioFileSync.prototype.fileConflict=function(b,f,k){this.catchupRetryCount++;EditorUi.debug("DrawioFileSync.fileConflict",[this],"desc",[b],"catchupRetryCount",this.catchupRetryCount,"maxCatchupRetries",this.maxCatchupRetries);this.catchupRetryCount<this.maxCatchupRetries?(this.file.stats.conflicts++,null!=b?this.catchup(b,f,k):this.fileChanged(f,k)):(this.file.stats.timeouts++,this.catchupRetryCount=0,null!=k&&k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")}))};
DrawioFileSync.prototype.stop=function(){null!=this.pusher&&(EditorUi.debug("DrawioFileSync.stop",[this]),null!=this.pusher.connection&&(this.pusher.connection.unbind("state_change",this.connectionListener),this.pusher.connection.unbind("error",this.pusherErrorListener)),null!=this.channel&&(this.channel.unbind("changed",this.changeListener),this.channel=null),this.pusher.disconnect(),this.pusher=null,null!=this.p2pCollab&&(this.p2pCollab.destroy(),this.p2pCollab=null));this.updateOnlineState();this.updateStatus()};
@@ -12309,12 +12309,12 @@ App.clearServiceWorker=function(b,f){navigator.serviceWorker.getRegistrations().
App.main=function(b,f){function k(e){mxUtils.getAll("1"!=urlParams.dev?[e]:[e,STYLE_PATH+"/default.xml"],function(g){function q(){var I=null!=f?f():new App(new Editor("0"==urlParams.chrome||"min"==uiTheme,null,null,null,"0"!=urlParams.chrome));if(null!=window.mxscript){if("function"===typeof window.DropboxClient&&null==window.Dropbox&&null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&isSvgBrowser&&(null==document.documentMode||
9<document.documentMode))mxscript(App.DROPBOX_URL,function(){mxscript(App.DROPINS_URL,function(){DrawDropboxClientCallback()},"dropboxjs",App.DROPBOX_APPKEY)});else if("undefined"===typeof window.Dropbox||"undefined"===typeof window.Dropbox.choose)window.DropboxClient=null;"function"===typeof window.OneDriveClient&&"undefined"===typeof OneDrive&&null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&(null==navigator.userAgent||
0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&!mxClient.IS_IE11&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&"1"==urlParams.tr&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL,
-function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=b&&b(I);"0"!=urlParams.chrome&&"1"==urlParams.test&&(EditorUi.debug("App.start",[I,(new Date).getTime()-t0.getTime()+"ms"]),null!=urlParams["export"]&&EditorUi.debug("Export:",EXPORT_URL))}mxResources.parse(g[0].getText());if(isLocalStorage&&null!=localStorage&&null!=window.location.hash&&"#_CONFIG_"==window.location.hash.substring(0,9))try{var n=function(I){if(null!=I)for(var N=0;N<I.length;N++)if(!m[I[N]])throw Error(mxResources.get("invalidInput")+
-' "'+I[N])+'"';return!0},m={},z;for(z in App.pluginRegistry)m[App.pluginRegistry[z]]=!0;var C=JSON.parse(Graph.decompress(window.location.hash.substring(9)));if(null!=C&&n(C.plugins)){EditorUi.debug("Setting configuration",JSON.stringify(C));if(null!=C.merge){var u=localStorage.getItem(Editor.configurationKey);if(null!=u)try{var y=JSON.parse(u);for(z in C.merge)y[z]=C.merge[z];C=y}catch(I){window.location.hash="",alert(I)}else C=C.merge}confirm(mxResources.get("configLinkWarn"))&&confirm(mxResources.get("configLinkConfirm"))&&
+function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=b&&b(I);"0"!=urlParams.chrome&&"1"==urlParams.test&&(EditorUi.debug("App.start",[I,(new Date).getTime()-t0.getTime()+"ms"]),null!=urlParams["export"]&&EditorUi.debug("Export:",EXPORT_URL))}mxResources.parse(g[0].getText());if(isLocalStorage&&null!=localStorage&&null!=window.location.hash&&"#_CONFIG_"==window.location.hash.substring(0,9))try{var m=function(I){if(null!=I)for(var N=0;N<I.length;N++)if(!n[I[N]])throw Error(mxResources.get("invalidInput")+
+' "'+I[N])+'"';return!0},n={},z;for(z in App.pluginRegistry)n[App.pluginRegistry[z]]=!0;var C=JSON.parse(Graph.decompress(window.location.hash.substring(9)));if(null!=C&&m(C.plugins)){EditorUi.debug("Setting configuration",JSON.stringify(C));if(null!=C.merge){var u=localStorage.getItem(Editor.configurationKey);if(null!=u)try{var y=JSON.parse(u);for(z in C.merge)y[z]=C.merge[z];C=y}catch(I){window.location.hash="",alert(I)}else C=C.merge}confirm(mxResources.get("configLinkWarn"))&&confirm(mxResources.get("configLinkConfirm"))&&
(localStorage.setItem(Editor.configurationKey,JSON.stringify(C)),window.location.hash="",window.location.reload())}window.location.hash=""}catch(I){window.location.hash="",alert(I)}1<g.length&&(Graph.prototype.defaultThemes["default-style2"]=g[1].getDocumentElement(),Graph.prototype.defaultThemes.darkTheme=g[1].getDocumentElement());"1"==urlParams.dev||EditorUi.isElectronApp?q():(mxStencilRegistry.allowEval=!1,App.loadScripts(["js/shapes-14-6-5.min.js","js/stencils.min.js","js/extensions.min.js"],
q))},function(g){g=document.getElementById("geStatus");null!=g&&(g.innerHTML="Error loading page. <a>Please try refreshing.</a>",g.getElementsByTagName("a")[0].onclick=function(){mxLanguage="en";k(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))})})}function d(){try{if(null!=mxSettings.settings){document.body.style.backgroundColor="atlas"!=uiTheme&&"kennedy"!=uiTheme&&(Editor.isDarkMode()||mxSettings.settings.darkMode)?Editor.darkColor:
"#ffffff";if(null!=mxSettings.settings.autosaveDelay){var e=parseInt(mxSettings.settings.autosaveDelay);!isNaN(e)&&0<e?(DrawioFile.prototype.autosaveDelay=e,EditorUi.debug("Setting autosaveDelay",e)):EditorUi.debug("Invalid autosaveDelay",e)}null!=mxSettings.settings.defaultEdgeLength&&(e=parseInt(mxSettings.settings.defaultEdgeLength),!isNaN(e)&&0<e?(Graph.prototype.defaultEdgeLength=e,EditorUi.debug("Using defaultEdgeLength",e)):EditorUi.debug("Invalid defaultEdgeLength",e))}}catch(q){null!=window.console&&
-console.error(q)}if(null!=Menus.prototype.defaultFonts)for(e=0;e<Menus.prototype.defaultFonts.length;e++){var g=Menus.prototype.defaultFonts[e];"string"!==typeof g&&null!=g.fontFamily&&null!=g.fontUrl&&Graph.addFont(g.fontFamily,g.fontUrl)}mxResources.loadDefaultBundle=!1;k(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}window.onerror=function(e,g,q,n,m){EditorUi.logError("Global: "+(null!=e?e:""),g,q,n,m,null,!0)};if(window.top!=window.self||
+console.error(q)}if(null!=Menus.prototype.defaultFonts)for(e=0;e<Menus.prototype.defaultFonts.length;e++){var g=Menus.prototype.defaultFonts[e];"string"!==typeof g&&null!=g.fontFamily&&null!=g.fontUrl&&Graph.addFont(g.fontFamily,g.fontUrl)}mxResources.loadDefaultBundle=!1;k(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}window.onerror=function(e,g,q,m,n){EditorUi.logError("Global: "+(null!=e?e:""),g,q,m,n,null,!0)};if(window.top!=window.self||
"import.diagrams.net"!==window.location.hostname&&"ac.draw.io"!==window.location.hostname&&"aj.draw.io"!==window.location.hostname){if("1"==urlParams.embed||"1"==urlParams.lightbox){var v=document.getElementById("geInfo");null!=v&&v.parentNode.removeChild(v)}null!=document.referrer&&"aws3"==urlParams.libs&&"https://aws.amazon.com/architecture/icons/"==document.referrer.substring(0,42)&&(urlParams.libs="aws4");if(null!=window.mxscript){if("1"==urlParams.dev&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&
null!=CryptoJS&&App.mode!=App.MODE_DROPBOX&&App.mode!=App.MODE_TRELLO){v=document.getElementsByTagName("script");if(null!=v&&0<v.length){var x=mxUtils.getTextContent(v[0]);"1f536e2400baaa30261b8c3976d6fe06"!=CryptoJS.MD5(x).toString()&&(console.log("Change bootstrap script MD5 in the previous line:",CryptoJS.MD5(x).toString()),alert("[Dev] Bootstrap script change requires update of CSP"))}null!=v&&1<v.length&&(x=mxUtils.getTextContent(v[v.length-1]),"d53805dd6f0bbba2da4966491ca0a505"!=CryptoJS.MD5(x).toString()&&
(console.log("Change main script MD5 in the previous line:",CryptoJS.MD5(x).toString()),alert("[Dev] Main script change requires update of CSP")))}try{Editor.enableServiceWorker&&("0"==urlParams.offline||/www\.draw\.io$/.test(window.location.hostname)||"1"!=urlParams.offline&&"1"==urlParams.dev)?App.clearServiceWorker(function(){"0"==urlParams.offline&&alert("Cache cleared")}):Editor.enableServiceWorker&&navigator.serviceWorker.register("/service-worker.js")}catch(e){null!=window.console&&console.error(e)}!("ArrayBuffer"in
@@ -12368,7 +12368,7 @@ App.prototype.onBeforeUnload=function(){if("1"==urlParams.embed&&this.editor.mod
App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxView()){var b=this.editor.appName,f=this.getCurrentFile();this.isOfflineApp()&&(b+=" app");null!=f&&(b=(null!=f.getTitle()?f.getTitle():this.defaultFilename)+" - "+b);document.title!=b&&(document.title=b,b=this.editor.graph,b.invalidateDescendantsWithPlaceholders(b.model.getRoot()),b.view.validate())}};
App.prototype.getThumbnail=function(b,f){var k=!1;try{var d=!0,v=window.setTimeout(mxUtils.bind(this,function(){d=!1;f(null)}),this.timeout),x=mxUtils.bind(this,function(J){window.clearTimeout(v);d&&f(J)});null==this.thumbImageCache&&(this.thumbImageCache={});var B=this.editor.graph,D=B.backgroundImage,K=null!=B.themes&&"darkTheme"==B.defaultThemeName;if(null!=this.pages&&(K||this.currentPage!=this.pages[0])){var c=B.getGlobalVariable;B=this.createTemporaryGraph(B.getStylesheet());B.setBackgroundImage=
this.editor.graph.setBackgroundImage;var e=this.pages[0];this.currentPage==e?B.setBackgroundImage(D):null!=e.viewState&&null!=e.viewState&&(D=e.viewState.backgroundImage,B.setBackgroundImage(D));B.getGlobalVariable=function(J){return"page"==J?e.getName():"pagenumber"==J?1:c.apply(this,arguments)};B.getGlobalVariable=c;document.body.appendChild(B.container);B.model.setRoot(e.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,function(J){try{B!=this.editor.graph&&
-null!=B.container.parentNode&&B.container.parentNode.removeChild(B.container)}catch(M){J=null}x(J)}),b,this.thumbImageCache,"#ffffff",function(){x()},null,null,null,null,null,null,B,null,null,null,null,"diagram",null),k=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var g=document.createElement("canvas"),q=B.getGraphBounds(),n=B.view.translate,m=B.view.scale;null!=D&&(q=mxRectangle.fromRectangle(q),q.add(new mxRectangle((n.x+D.x)*m,(n.y+D.y)*m,D.width*m,D.height*m)));var z=b/q.width;
+null!=B.container.parentNode&&B.container.parentNode.removeChild(B.container)}catch(M){J=null}x(J)}),b,this.thumbImageCache,"#ffffff",function(){x()},null,null,null,null,null,null,B,null,null,null,null,"diagram",null),k=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var g=document.createElement("canvas"),q=B.getGraphBounds(),m=B.view.translate,n=B.view.scale;null!=D&&(q=mxRectangle.fromRectangle(q),q.add(new mxRectangle((m.x+D.x)*n,(m.y+D.y)*n,D.width*n,D.height*n)));var z=b/q.width;
z=Math.min(1,Math.min(3*b/(4*q.height),z));var C=Math.floor(q.x),u=Math.floor(q.y);g.setAttribute("width",Math.ceil(z*(q.width+4)));g.setAttribute("height",Math.ceil(z*(q.height+4)));var y=g.getContext("2d");y.scale(z,z);y.translate(-C,-u);var I=B.background;if(null==I||""==I||I==mxConstants.NONE)I="#ffffff";y.save();y.fillStyle=I;y.fillRect(C,u,Math.ceil(q.width+4),Math.ceil(q.height+4));y.restore();if(null!=D){var N=new Image;N.src=D.src;y.drawImage(N,D.x*z,D.y*z,D.width*z,D.height*z)}var t=new mxJsCanvas(g),
p=new mxAsyncCanvas(this.thumbImageCache);t.images=this.thumbImageCache.images;var F=new mxImageExport;F.drawShape=function(J,M){J.shape instanceof mxShape&&J.shape.checkBounds()&&(M.save(),M.translate(.5,.5),J.shape.paint(M),M.translate(-.5,-.5),M.restore())};F.drawText=function(J,M){};F.drawState(B.getView().getState(B.model.root),p);p.finish(mxUtils.bind(this,function(){try{F.drawState(B.getView().getState(B.model.root),t),B!=this.editor.graph&&null!=B.container.parentNode&&B.container.parentNode.removeChild(B.container)}catch(J){g=
null}x(g)}));k=!0}}catch(J){k=!1,null!=B&&B!=this.editor.graph&&null!=B.container.parentNode&&B.container.parentNode.removeChild(B.container)}k||window.clearTimeout(v);return k};App.prototype.createBackground=function(){var b=this.createDiv("background");b.style.position="absolute";b.style.background="white";b.style.left="0px";b.style.top="0px";b.style.bottom="0px";b.style.right="0px";mxUtils.setOpacity(b,100);return b};
@@ -12441,28 +12441,28 @@ App.prototype.getPeerForMode=function(b){return b==App.MODE_GOOGLE?this.drive:b=
App.prototype.createFile=function(b,f,k,d,v,x,B,D,K){d=D?null:null!=d?d:this.mode;if(null!=b&&this.spinner.spin(document.body,mxResources.get("inserting"))){f=null!=f?f:this.emptyDiagramXml;var c=mxUtils.bind(this,function(){this.spinner.stop()}),e=mxUtils.bind(this,function(g){c();null==g&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=g&&this.handleError(g)});try{d==App.MODE_GOOGLE&&null!=this.drive?(null==B&&null!=this.stateArg&&null!=this.stateArg.folderId&&(B=this.stateArg.folderId),
this.drive.insertFile(b,f,B,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e)):d==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.insertFile(b,f,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e,!1,B):d==App.MODE_GITLAB&&null!=this.gitLab?this.gitLab.insertFile(b,f,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e,!1,B):d==App.MODE_TRELLO&&null!=this.trello?this.trello.insertFile(b,f,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e,
!1,B):d==App.MODE_DROPBOX&&null!=this.dropbox?this.dropbox.insertFile(b,f,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e):d==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.insertFile(b,f,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e,!1,B):d==App.MODE_BROWSER?StorageFile.insertFile(this,b,f,mxUtils.bind(this,function(g){c();this.fileCreated(g,k,x,v,K)}),e):!D&&d==App.MODE_DEVICE&&EditorUi.nativeFileSupport?(c(),this.showSaveFilePicker(mxUtils.bind(this,
-function(g,q){var n=new LocalFile(this,f,q.name,null,g,q);n.saveFile(q.name,!1,mxUtils.bind(this,function(){this.fileCreated(n,k,x,v,K)}),e,!0)}),mxUtils.bind(this,function(g){"AbortError"!=g.name&&e(g)}),this.createFileSystemOptions(b))):(c(),this.fileCreated(new LocalFile(this,f,b,null==d),k,x,v,K))}catch(g){c(),this.handleError(g)}}};
+function(g,q){var m=new LocalFile(this,f,q.name,null,g,q);m.saveFile(q.name,!1,mxUtils.bind(this,function(){this.fileCreated(m,k,x,v,K)}),e,!0)}),mxUtils.bind(this,function(g){"AbortError"!=g.name&&e(g)}),this.createFileSystemOptions(b))):(c(),this.fileCreated(new LocalFile(this,f,b,null==d),k,x,v,K))}catch(g){c(),this.handleError(g)}}};
App.prototype.fileCreated=function(b,f,k,d,v){var x=window.location.pathname;null!=f&&0<f.length&&(x+="?libs="+f);null!=v&&0<v.length&&(x+="?clibs="+v);x=this.getUrl(x);b.getMode()!=App.MODE_DEVICE&&(x+="#"+b.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var B=b.getData();B=0<B.length?this.editor.extractGraphModel(mxUtils.parseXml(B).documentElement,!0):null;var D=window.location.protocol+"//"+window.location.hostname+x,K=B,c=null;null!=B&&/\.svg$/i.test(b.getTitle())&&
-(c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),K=this.decodeNodeIntoGraph(K,c));b.setData(this.createFileData(B,c,b,D));null!=c&&c.container.parentNode.removeChild(c.container);var e=mxUtils.bind(this,function(){this.spinner.stop()}),g=mxUtils.bind(this,function(){e();var q=this.getCurrentFile();null==k&&null!=q&&(k=!q.isModified()&&null==q.getMode());var n=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(b);k&&b.addAllSavedStatus();
-null!=f&&this.sidebar.showEntries(f);if(null!=v){for(var z=[],C=v.split(";"),u=0;u<C.length;u++)z.push(decodeURIComponent(C[u]));this.loadLibraries(z)}}),m=mxUtils.bind(this,function(){k||null==q||!q.isModified()?n():this.confirm(mxResources.get("allChangesLost"),null,n,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=d&&d();null==k||k?m():(b.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(b.getData(),b.getTitle(),
-null==b.getMode())),null!=d&&d(),window.openWindow(x,null,m))});b.constructor==LocalFile?g():b.saveFile(b.getTitle(),!1,mxUtils.bind(this,function(){g()}),mxUtils.bind(this,function(q){e();null!=q&&"AbortError"==q.name||this.handleError(q)}))}};
-App.prototype.loadFile=function(b,f,k,d,v){if("1"==urlParams.openInSameWin||navigator.standalone)f=!0;this.hideDialog();var x=mxUtils.bind(this,function(){if(null==b||0==b.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==b.charAt(0))if(this.spinner.stop(),isLocalStorage){var K=mxUtils.bind(this,function(n){this.handleError(n,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var m=this.getCurrentFile();
-window.location.hash=null!=m?m.getHash():""}))});b=decodeURIComponent(b.substring(1));StorageFile.getFileContent(this,b,mxUtils.bind(this,function(n){null!=n?(this.fileLoaded(new StorageFile(this,n,b)),null!=d&&d()):K({message:mxResources.get("fileNotFound")})}),K)}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var n=this.getCurrentFile();window.location.hash=null!=n?n.getHash():""}));else if(null!=k)this.spinner.stop(),
+(c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),K=this.decodeNodeIntoGraph(K,c));b.setData(this.createFileData(B,c,b,D));null!=c&&c.container.parentNode.removeChild(c.container);var e=mxUtils.bind(this,function(){this.spinner.stop()}),g=mxUtils.bind(this,function(){e();var q=this.getCurrentFile();null==k&&null!=q&&(k=!q.isModified()&&null==q.getMode());var m=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(b);k&&b.addAllSavedStatus();
+null!=f&&this.sidebar.showEntries(f);if(null!=v){for(var z=[],C=v.split(";"),u=0;u<C.length;u++)z.push(decodeURIComponent(C[u]));this.loadLibraries(z)}}),n=mxUtils.bind(this,function(){k||null==q||!q.isModified()?m():this.confirm(mxResources.get("allChangesLost"),null,m,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=d&&d();null==k||k?n():(b.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(b.getData(),b.getTitle(),
+null==b.getMode())),null!=d&&d(),window.openWindow(x,null,n))});b.constructor==LocalFile?g():b.saveFile(b.getTitle(),!1,mxUtils.bind(this,function(){g()}),mxUtils.bind(this,function(q){e();null!=q&&"AbortError"==q.name||this.handleError(q)}))}};
+App.prototype.loadFile=function(b,f,k,d,v){if("1"==urlParams.openInSameWin||navigator.standalone)f=!0;this.hideDialog();var x=mxUtils.bind(this,function(){if(null==b||0==b.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==b.charAt(0))if(this.spinner.stop(),isLocalStorage){var K=mxUtils.bind(this,function(m){this.handleError(m,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var n=this.getCurrentFile();
+window.location.hash=null!=n?n.getHash():""}))});b=decodeURIComponent(b.substring(1));StorageFile.getFileContent(this,b,mxUtils.bind(this,function(m){null!=m?(this.fileLoaded(new StorageFile(this,m,b)),null!=d&&d()):K({message:mxResources.get("fileNotFound")})}),K)}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var m=this.getCurrentFile();window.location.hash=null!=m?m.getHash():""}));else if(null!=k)this.spinner.stop(),
this.fileLoaded(k),null!=d&&d();else if("S"==b.charAt(0))this.spinner.stop(),this.alert("[Deprecation] #S is no longer supported, go to https://app.diagrams.net/?desc="+b.substring(1).substring(0,10),mxUtils.bind(this,function(){window.location.href="https://app.diagrams.net/?desc="+b.substring(1)}));else if("R"==b.charAt(0)){this.spinner.stop();var c=decodeURIComponent(b.substring(1));"<"!=c.charAt(0)&&(c=Graph.decompress(c));c=new LocalFile(this,c,null!=urlParams.title?decodeURIComponent(urlParams.title):
-this.defaultFilename,!0);c.getHash=function(){return b};this.fileLoaded(c);null!=d&&d()}else if("E"==b.charAt(0))null==this.getCurrentFile()?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile")):this.remoteInvoke("getDraftFileContent",null,null,mxUtils.bind(this,function(n,m){this.spinner.stop();this.fileLoaded(new EmbedFile(this,n,m));null!=d&&d()}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},
-mxResources.get("errorLoadingFile"))}));else if("U"==b.charAt(0)){var e=decodeURIComponent(b.substring(1)),g=mxUtils.bind(this,function(){if("https://drive.google.com/uc?id="!=e.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient)return!1;this.hideDialog();var n=mxUtils.bind(this,function(){this.spinner.stop();if(null!=this.drive){var m=e.substring(31,e.lastIndexOf("&ex"));this.loadFile("G"+m,f,null,mxUtils.bind(this,function(){var z=this.getCurrentFile();null!=z&&this.editor.chromeless&&
-!this.editor.editable&&(z.getHash=function(){return"G"+m},window.location.hash="#"+z.getHash());null!=d&&d()}));return!0}return!1});!n()&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.addListener("clientLoaded",n);return!0});this.loadTemplate(e,mxUtils.bind(this,function(n){this.spinner.stop();if(null!=n&&0<n.length){var m=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var z=e,C=e.lastIndexOf("."),u=z.lastIndexOf("/");C>u&&0<u&&(z=z.substring(u+1,C),C=e.substring(C),
-this.useCanvasForExport||".png"!=C||(C=".drawio"),".svg"===C||".xml"===C||".html"===C||".png"===C||".drawio"===C)&&(m=z+C)}n=new LocalFile(this,n,null!=urlParams.title?decodeURIComponent(urlParams.title):m,!0);n.getHash=function(){return b};this.fileLoaded(n,!0)?null!=d&&d():g()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}else g()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}),mxUtils.bind(this,
+this.defaultFilename,!0);c.getHash=function(){return b};this.fileLoaded(c);null!=d&&d()}else if("E"==b.charAt(0))null==this.getCurrentFile()?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile")):this.remoteInvoke("getDraftFileContent",null,null,mxUtils.bind(this,function(m,n){this.spinner.stop();this.fileLoaded(new EmbedFile(this,m,n));null!=d&&d()}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},
+mxResources.get("errorLoadingFile"))}));else if("U"==b.charAt(0)){var e=decodeURIComponent(b.substring(1)),g=mxUtils.bind(this,function(){if("https://drive.google.com/uc?id="!=e.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient)return!1;this.hideDialog();var m=mxUtils.bind(this,function(){this.spinner.stop();if(null!=this.drive){var n=e.substring(31,e.lastIndexOf("&ex"));this.loadFile("G"+n,f,null,mxUtils.bind(this,function(){var z=this.getCurrentFile();null!=z&&this.editor.chromeless&&
+!this.editor.editable&&(z.getHash=function(){return"G"+n},window.location.hash="#"+z.getHash());null!=d&&d()}));return!0}return!1});!m()&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.addListener("clientLoaded",m);return!0});this.loadTemplate(e,mxUtils.bind(this,function(m){this.spinner.stop();if(null!=m&&0<m.length){var n=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var z=e,C=e.lastIndexOf("."),u=z.lastIndexOf("/");C>u&&0<u&&(z=z.substring(u+1,C),C=e.substring(C),
+this.useCanvasForExport||".png"!=C||(C=".drawio"),".svg"===C||".xml"===C||".html"===C||".png"===C||".drawio"===C)&&(n=z+C)}m=new LocalFile(this,m,null!=urlParams.title?decodeURIComponent(urlParams.title):n,!0);m.getHash=function(){return b};this.fileLoaded(m,!0)?null!=d&&d():g()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}else g()||this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile"))}),mxUtils.bind(this,
function(){g()||(this.spinner.stop(),this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile")))}),null!=urlParams["template-filename"]?decodeURIComponent(urlParams["template-filename"]):null)}else if(c=null,"G"==b.charAt(0)?c=this.drive:"D"==b.charAt(0)?c=this.dropbox:"W"==b.charAt(0)?c=this.oneDrive:"H"==b.charAt(0)?c=this.gitHub:"A"==b.charAt(0)?c=this.gitLab:"T"==b.charAt(0)&&(c=this.trello),null==c)this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},
-mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var n=this.getCurrentFile();window.location.hash=null!=n?n.getHash():""}));else{var q=b.charAt(0);b=decodeURIComponent(b.substring(1));c.getFile(b,mxUtils.bind(this,function(n){this.spinner.stop();this.fileLoaded(n);var m=this.getCurrentFile();null==m?(window.location.hash="",this.showSplash()):this.editor.chromeless&&!this.editor.editable?(m.getHash=function(){return q+b},window.location.hash="#"+m.getHash()):n==m&&null==n.getMode()&&
-(n=mxResources.get("copyCreated"),this.editor.setStatus('<div title="'+n+'" class="geStatusAlert">'+n+"</div>"));null!=d&&d()}),mxUtils.bind(this,function(n){null!=window.console&&null!=n&&console.log("error in loadFile:",b,n);var m=mxUtils.bind(this,function(){var z=this.getCurrentFile();null==z?(window.location.hash="",this.showSplash()):window.location.hash="#"+z.getHash()});null==n||"AbortError"!=n.name?this.handleError(n,null!=n?mxResources.get("errorLoadingFile"):null,m,null,null,"#"+q+b):m()}))}}),
+mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var m=this.getCurrentFile();window.location.hash=null!=m?m.getHash():""}));else{var q=b.charAt(0);b=decodeURIComponent(b.substring(1));c.getFile(b,mxUtils.bind(this,function(m){this.spinner.stop();this.fileLoaded(m);var n=this.getCurrentFile();null==n?(window.location.hash="",this.showSplash()):this.editor.chromeless&&!this.editor.editable?(n.getHash=function(){return q+b},window.location.hash="#"+n.getHash()):m==n&&null==m.getMode()&&
+(m=mxResources.get("copyCreated"),this.editor.setStatus('<div title="'+m+'" class="geStatusAlert">'+m+"</div>"));null!=d&&d()}),mxUtils.bind(this,function(m){null!=window.console&&null!=m&&console.log("error in loadFile:",b,m);var n=mxUtils.bind(this,function(){var z=this.getCurrentFile();null==z?(window.location.hash="",this.showSplash()):window.location.hash="#"+z.getHash()});null==m||"AbortError"!=m.name?this.handleError(m,null!=m?mxResources.get("errorLoadingFile"):null,n,null,null,"#"+q+b):n()}))}}),
B=this.getCurrentFile(),D=mxUtils.bind(this,function(){v||null==B||!B.isModified()?x():this.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){null!=B&&(window.location.hash=B.getHash())}),x,mxResources.get("cancel"),mxResources.get("discardChanges"))});null==b||0==b.length?D():null==B||f?D():this.showDialog((new PopupDialog(this,this.getUrl()+"#"+b,null,D)).container,320,140,!0,!0)};
App.prototype.getLibraryStorageHint=function(b){var f=b.getTitle();b.constructor!=LocalLibrary&&(f+="\n"+b.getHash());b.constructor==DriveLibrary?f+=" ("+mxResources.get("googleDrive")+")":b.constructor==GitHubLibrary?f+=" ("+mxResources.get("github")+")":b.constructor==TrelloLibrary?f+=" ("+mxResources.get("trello")+")":b.constructor==DropboxLibrary?f+=" ("+mxResources.get("dropbox")+")":b.constructor==OneDriveLibrary?f+=" ("+mxResources.get("oneDrive")+")":b.constructor==StorageLibrary?f+=" ("+
mxResources.get("browser")+")":b.constructor==LocalLibrary&&(f+=" ("+mxResources.get("device")+")");return f};App.prototype.restoreLibraries=function(){function b(k){for(var d=0;d<k.length;d++)""!=k[d]&&0>mxUtils.indexOf(f,k[d])&&f.push(k[d])}var f=[];b(mxSettings.getCustomLibraries());b((urlParams.clibs||"").split(";"));this.loadLibraries(f)};
App.prototype.loadLibraries=function(b,f){if(null!=this.sidebar){null==this.loadedLibraries&&(this.loadedLibraries={});var k=mxUtils.bind(this,function(c,e){e||mxSettings.removeCustomLibrary(c);delete this.loadedLibraries[c]}),d=0,v=[],x=0<b.length&&"L.scratchpad"==b[0]?1:0,B=mxUtils.bind(this,function(){if(0==d){if(null!=b)for(var c=b.length-1;0<=c;c--)null!=v[c]&&this.loadLibrary(v[c],c<=x);null!=f&&f()}});if(null!=b)for(var D=0;D<b.length;D++){var K=encodeURIComponent(decodeURIComponent(b[D]));
-mxUtils.bind(this,function(c,e){if(null!=c&&0<c.length&&null==this.loadedLibraries[c]&&null==this.sidebar.palettes[c]){this.loadedLibraries[c]=!0;d++;var g=mxUtils.bind(this,function(u){v[e]=u;d--;B()}),q=mxUtils.bind(this,function(u){k(c,u);d--;B()}),n=c.substring(0,1);if("L"==n)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var u=decodeURIComponent(c.substring(1));StorageFile.getFileContent(this,u,mxUtils.bind(this,function(y){".scratchpad"==u&&null==
-y&&(y=this.emptyLibraryXml);null!=y?g(new StorageLibrary(this,y,u)):q()}),q)}catch(y){q()}}),0);else if("U"==n){var m=decodeURIComponent(c.substring(1));this.isOffline()||this.loadTemplate(m,mxUtils.bind(this,function(u){null!=u&&0<u.length?g(new UrlLibrary(this,u,m)):q()}),function(){q()},null,!0)}else if("R"==n){n=decodeURIComponent(c.substring(1));try{n=JSON.parse(n);var z={id:n[0],title:n[1],downloadUrl:n[2]};this.remoteInvoke("getFileContent",[z.downloadUrl],null,mxUtils.bind(this,function(u){try{g(new RemoteLibrary(this,
-u,z))}catch(y){q()}}),function(){q()})}catch(u){q()}}else if("S"==n&&null!=this.loadDesktopLib)try{this.loadDesktopLib(decodeURIComponent(c.substring(1)),function(u){g(u)},q)}catch(u){q()}else{var C=null;"G"==n?null!=this.drive&&null!=this.drive.user&&(C=this.drive):"H"==n?null!=this.gitHub&&null!=this.gitHub.getUser()&&(C=this.gitHub):"T"==n?null!=this.trello&&this.trello.isAuthorized()&&(C=this.trello):"D"==n?null!=this.dropbox&&null!=this.dropbox.getUser()&&(C=this.dropbox):"W"==n&&null!=this.oneDrive&&
+mxUtils.bind(this,function(c,e){if(null!=c&&0<c.length&&null==this.loadedLibraries[c]&&null==this.sidebar.palettes[c]){this.loadedLibraries[c]=!0;d++;var g=mxUtils.bind(this,function(u){v[e]=u;d--;B()}),q=mxUtils.bind(this,function(u){k(c,u);d--;B()}),m=c.substring(0,1);if("L"==m)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var u=decodeURIComponent(c.substring(1));StorageFile.getFileContent(this,u,mxUtils.bind(this,function(y){".scratchpad"==u&&null==
+y&&(y=this.emptyLibraryXml);null!=y?g(new StorageLibrary(this,y,u)):q()}),q)}catch(y){q()}}),0);else if("U"==m){var n=decodeURIComponent(c.substring(1));this.isOffline()||this.loadTemplate(n,mxUtils.bind(this,function(u){null!=u&&0<u.length?g(new UrlLibrary(this,u,n)):q()}),function(){q()},null,!0)}else if("R"==m){m=decodeURIComponent(c.substring(1));try{m=JSON.parse(m);var z={id:m[0],title:m[1],downloadUrl:m[2]};this.remoteInvoke("getFileContent",[z.downloadUrl],null,mxUtils.bind(this,function(u){try{g(new RemoteLibrary(this,
+u,z))}catch(y){q()}}),function(){q()})}catch(u){q()}}else if("S"==m&&null!=this.loadDesktopLib)try{this.loadDesktopLib(decodeURIComponent(c.substring(1)),function(u){g(u)},q)}catch(u){q()}else{var C=null;"G"==m?null!=this.drive&&null!=this.drive.user&&(C=this.drive):"H"==m?null!=this.gitHub&&null!=this.gitHub.getUser()&&(C=this.gitHub):"T"==m?null!=this.trello&&this.trello.isAuthorized()&&(C=this.trello):"D"==m?null!=this.dropbox&&null!=this.dropbox.getUser()&&(C=this.dropbox):"W"==m&&null!=this.oneDrive&&
null!=this.oneDrive.getUser()&&(C=this.oneDrive);null!=C?C.getLibrary(decodeURIComponent(c.substring(1)),mxUtils.bind(this,function(u){try{g(u)}catch(y){q()}}),function(u){q()}):q(!0)}}})(K,D)}B()}};
App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var b=this.getCurrentFile();"1"==urlParams.embed&&("atlas"==uiTheme||"1"==urlParams.atlas?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"));this.commentsSupported()&&"1"!=urlParams.sketch?null==this.commentButton&&
(this.commentButton=document.createElement("a"),this.commentButton.setAttribute("title",mxResources.get("comments")),this.commentButton.className="geToolbarButton geAdaptiveAsset",this.commentButton.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;float:left;cursor:pointer;width:24px;height:24px;background-size:24px 24px;background-position:center center;background-repeat:no-repeat;background-image:url("+Editor.commentImage+");","atlas"==uiTheme?(this.commentButton.style.marginRight=
@@ -12492,9 +12492,9 @@ App.prototype.descriptorChanged=function(){var b=this.getCurrentFile();if(null!=
window.location.hash=f:0<window.location.hash.length&&(window.location.hash=""))}this.updateUi();null==this.format||null!=b&&this.fileEditable==b.isEditable()||!this.editor.graph.isSelectionEmpty()||(this.format.refresh(),this.fileEditable=null!=b?b.isEditable():null);this.fireEvent(new mxEventObject("fileDescriptorChanged","file",b))};
App.prototype.showAuthDialog=function(b,f,k,d){var v=this.spinner.pause();this.showDialog((new AuthDialog(this,b,f,mxUtils.bind(this,function(x){try{null!=k&&k(x,mxUtils.bind(this,function(){this.hideDialog();v()}))}catch(B){this.editor.setStatus(mxUtils.htmlEntities(B.message))}}))).container,300,f?180:140,!0,!0,mxUtils.bind(this,function(x){null!=d&&d(x);x&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
App.prototype.convertFile=function(b,f,k,d,v,x,B,D){var K=f;/\.svg$/i.test(K)||(K=K.substring(0,f.lastIndexOf("."))+d);var c=!1;null!=this.gitHub&&b.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(c=!0);if(/\.v(dx|sdx?)$/i.test(f)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var e=new XMLHttpRequest;e.open("GET",b,!0);c||(e.responseType="blob");if(D)for(var g in D)e.setRequestHeader(g,D[g]);e.onload=mxUtils.bind(this,function(){if(200<=
-e.status&&299>=e.status){var n=null;c?(n=JSON.parse(e.responseText),n=this.base64ToBlob(n.content,"application/octet-stream")):n=new Blob([e.response],{type:"application/octet-stream"});this.importVisio(n,mxUtils.bind(this,function(m){v(new LocalFile(this,m,K,!0))}),x,f)}else null!=x&&x({message:mxResources.get("errorLoadingFile")})});e.onerror=x;e.send()}else{var q=mxUtils.bind(this,function(n){try{if(/\.pdf$/i.test(f)){var m=Editor.extractGraphModelFromPdf(n);null!=m&&0<m.length&&v(new LocalFile(this,
-m,K,!0))}else/\.png$/i.test(f)?(m=this.extractGraphModelFromPng(n),null!=m?v(new LocalFile(this,m,K,!0)):v(new LocalFile(this,n,f,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(n,b)?this.parseFileData(n,mxUtils.bind(this,function(z){4==z.readyState&&(200<=z.status&&299>=z.status?v(new LocalFile(this,z.responseText,K,!0)):null!=x&&x({message:mxResources.get("errorLoadingFile")}))}),f):v(new LocalFile(this,n,K,!0))}catch(z){null!=x&&x(z)}});k=/\.png$/i.test(f)||/\.jpe?g$/i.test(f)||
-/\.pdf$/i.test(f)||null!=k&&"image/"==k.substring(0,6);c?mxUtils.get(b,mxUtils.bind(this,function(n){if(200<=n.getStatus()&&299>=n.getStatus()){if(null!=v){n=JSON.parse(n.getText());var m=n.content;"base64"===n.encoding&&(m=/\.png$/i.test(f)?"data:image/png;base64,"+m:/\.pdf$/i.test(f)?"data:application/pdf;base64,"+m:!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(m):atob(m));q(m)}}else null!=x&&x({code:App.ERROR_UNKNOWN})}),function(){null!=x&&x({code:App.ERROR_UNKNOWN})},!1,this.timeout,
+e.status&&299>=e.status){var m=null;c?(m=JSON.parse(e.responseText),m=this.base64ToBlob(m.content,"application/octet-stream")):m=new Blob([e.response],{type:"application/octet-stream"});this.importVisio(m,mxUtils.bind(this,function(n){v(new LocalFile(this,n,K,!0))}),x,f)}else null!=x&&x({message:mxResources.get("errorLoadingFile")})});e.onerror=x;e.send()}else{var q=mxUtils.bind(this,function(m){try{if(/\.pdf$/i.test(f)){var n=Editor.extractGraphModelFromPdf(m);null!=n&&0<n.length&&v(new LocalFile(this,
+n,K,!0))}else/\.png$/i.test(f)?(n=this.extractGraphModelFromPng(m),null!=n?v(new LocalFile(this,n,K,!0)):v(new LocalFile(this,m,f,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(m,b)?this.parseFileData(m,mxUtils.bind(this,function(z){4==z.readyState&&(200<=z.status&&299>=z.status?v(new LocalFile(this,z.responseText,K,!0)):null!=x&&x({message:mxResources.get("errorLoadingFile")}))}),f):v(new LocalFile(this,m,K,!0))}catch(z){null!=x&&x(z)}});k=/\.png$/i.test(f)||/\.jpe?g$/i.test(f)||
+/\.pdf$/i.test(f)||null!=k&&"image/"==k.substring(0,6);c?mxUtils.get(b,mxUtils.bind(this,function(m){if(200<=m.getStatus()&&299>=m.getStatus()){if(null!=v){m=JSON.parse(m.getText());var n=m.content;"base64"===m.encoding&&(n=/\.png$/i.test(f)?"data:image/png;base64,"+n:/\.pdf$/i.test(f)?"data:application/pdf;base64,"+n:!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(n):atob(n));q(n)}}else null!=x&&x({code:App.ERROR_UNKNOWN})}),function(){null!=x&&x({code:App.ERROR_UNKNOWN})},!1,this.timeout,
function(){null!=x&&x({code:App.ERROR_TIMEOUT,retry:fn})},D):null!=B?B(b,q,x,k):this.editor.loadUrl(b,q,x,k,null,null,null,D)}};
App.prototype.updateHeader=function(){if(null!=this.menubar){var b="url("+Editor.logoImage+")";this.appIcon=document.createElement("a");this.appIcon.style.display="block";this.appIcon.style.position="absolute";this.appIcon.style.width="32px";this.appIcon.style.height=this.menubarHeight-28+"px";this.appIcon.style.margin="14px 0px 8px 16px";this.appIcon.style.opacity="0.85";this.appIcon.style.borderRadius="3px";this.appIcon.style.backgroundPosition="center center";this.appIcon.style.backgroundSize=
"100% 100%";this.appIcon.style.backgroundRepeat="no-repeat";this.appIcon.style.backgroundImage=b;mxEvent.disableContextMenu(this.appIcon);mxEvent.addListener(this.appIcon,"click",mxUtils.bind(this,function(d){this.appIconClicked(d)}));var f=mxUtils.bind(this,function(){this.appIcon.style.backgroundColor=Editor.isDarkMode()?"":"#f08705"});this.addListener("darkModeChanged",f);f();mxUtils.setPrefixedStyle(this.appIcon.style,"transition","all 125ms linear");mxEvent.addListener(this.appIcon,"mouseover",
@@ -12524,13 +12524,13 @@ mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(f){f.pr
else{var d=!1;this.userPanel.innerText="";k=document.createElement("img");k.setAttribute("src",Dialog.prototype.closeImage);k.setAttribute("title",mxResources.get("close"));k.className="geDialogClose";k.style.top="8px";k.style.right="8px";mxEvent.addListener(k,"click",mxUtils.bind(this,function(){null!=this.userPanel.parentNode&&this.userPanel.parentNode.removeChild(this.userPanel)}));this.userPanel.appendChild(k);if(null!=this.drive){var v=this.drive.getUsersList();if(0<v.length){var x=mxUtils.bind(this,
function(K,c){var e=this.getCurrentFile();null!=e&&e.constructor==DriveFile?(this.spinner.spin(document.body,c),this.fileLoaded(null),window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();K()}),2E3)):K()});k=mxUtils.bind(this,function(K){var c=document.createElement("tr");c.setAttribute("title","User ID: "+K.id);var e=document.createElement("td");e.setAttribute("valig","middle");e.style.height="59px";e.style.width="66px";var g=document.createElement("img");g.setAttribute("width","50");
g.setAttribute("height","50");g.setAttribute("border","0");g.setAttribute("src",null!=K.pictureUrl?K.pictureUrl:this.defaultUserPicture);g.style.borderRadius="50%";g.style.margin="4px 8px 0 8px";e.appendChild(g);c.appendChild(e);e=document.createElement("td");e.setAttribute("valign","middle");e.style.whiteSpace="nowrap";e.style.paddingTop="4px";e.style.maxWidth="0";e.style.overflow="hidden";e.style.textOverflow="ellipsis";mxUtils.write(e,K.displayName+(K.isCurrent&&1<v.length?" ("+mxResources.get("default")+
-")":""));null!=K.email&&(mxUtils.br(e),g=document.createElement("small"),g.style.color="gray",mxUtils.write(g,K.email),e.appendChild(g));g=document.createElement("div");g.style.marginTop="4px";var q=document.createElement("i");mxUtils.write(q,mxResources.get("googleDrive"));g.appendChild(q);e.appendChild(g);c.appendChild(e);K.isCurrent||(c.style.cursor="pointer",c.style.opacity="0.3",mxEvent.addListener(c,"click",mxUtils.bind(this,function(n){x(mxUtils.bind(this,function(){this.stateArg=null;this.drive.setUser(K);
-this.drive.authorize(!0,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(m){this.handleError(m)}),!0)}),mxResources.get("closingFile")+"...");mxEvent.consume(n)})));return c});d=!0;var B=document.createElement("table");B.style.borderSpacing="0";B.style.fontSize="10pt";B.style.width="100%";B.style.padding="10px";for(var D=0;D<v.length;D++)B.appendChild(k(v[D]));this.userPanel.appendChild(B);k=document.createElement("div");k.style.textAlign=
+")":""));null!=K.email&&(mxUtils.br(e),g=document.createElement("small"),g.style.color="gray",mxUtils.write(g,K.email),e.appendChild(g));g=document.createElement("div");g.style.marginTop="4px";var q=document.createElement("i");mxUtils.write(q,mxResources.get("googleDrive"));g.appendChild(q);e.appendChild(g);c.appendChild(e);K.isCurrent||(c.style.cursor="pointer",c.style.opacity="0.3",mxEvent.addListener(c,"click",mxUtils.bind(this,function(m){x(mxUtils.bind(this,function(){this.stateArg=null;this.drive.setUser(K);
+this.drive.authorize(!0,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(n){this.handleError(n)}),!0)}),mxResources.get("closingFile")+"...");mxEvent.consume(m)})));return c});d=!0;var B=document.createElement("table");B.style.borderSpacing="0";B.style.fontSize="10pt";B.style.width="100%";B.style.padding="10px";for(var D=0;D<v.length;D++)B.appendChild(k(v[D]));this.userPanel.appendChild(B);k=document.createElement("div");k.style.textAlign=
"left";k.style.padding="10px";k.style.whiteSpace="nowrap";k.style.borderTop="1px solid rgb(224, 224, 224)";B=mxUtils.button(mxResources.get("signOut"),mxUtils.bind(this,function(){this.confirm(mxResources.get("areYouSure"),mxUtils.bind(this,function(){x(mxUtils.bind(this,function(){this.stateArg=null;this.drive.logout();this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxResources.get("signOut"))}))}));B.className="geBtn";B.style.float="right";k.appendChild(B);B=mxUtils.button(mxResources.get("addAccount"),
mxUtils.bind(this,function(){var K=this.drive.createAuthWin();K.blur();window.focus();x(mxUtils.bind(this,function(){this.stateArg=null;this.drive.authorize(!1,mxUtils.bind(this,function(){this.setMode(App.MODE_GOOGLE);this.hideDialog();this.showSplash()}),mxUtils.bind(this,function(c){this.handleError(c)}),!0,K)}),mxResources.get("closingFile")+"...")}));B.className="geBtn";B.style.margin="0px";k.appendChild(B);this.userPanel.appendChild(k)}}k=mxUtils.bind(this,function(K,c,e,g){if(null!=K){d&&this.userPanel.appendChild(document.createElement("hr"));
-d=!0;var q=document.createElement("table");q.style.borderSpacing="0";q.style.fontSize="10pt";q.style.width="100%";q.style.padding="10px";var n=document.createElement("tbody"),m=document.createElement("tr"),z=document.createElement("td");z.setAttribute("valig","top");z.style.width="40px";if(null!=c){var C=document.createElement("img");C.setAttribute("width","40");C.setAttribute("height","40");C.setAttribute("border","0");C.setAttribute("src",c);C.style.marginRight="6px";z.appendChild(C)}m.appendChild(z);
-z=document.createElement("td");z.setAttribute("valign","middle");z.style.whiteSpace="nowrap";z.style.maxWidth="0";z.style.overflow="hidden";z.style.textOverflow="ellipsis";mxUtils.write(z,K.displayName);null!=K.email&&(mxUtils.br(z),c=document.createElement("small"),c.style.color="gray",mxUtils.write(c,K.email),z.appendChild(c));null!=g&&(K=document.createElement("div"),K.style.marginTop="4px",c=document.createElement("i"),mxUtils.write(c,g),K.appendChild(c),z.appendChild(K));m.appendChild(z);n.appendChild(m);
-q.appendChild(n);this.userPanel.appendChild(q);K=document.createElement("div");K.style.textAlign="center";K.style.padding="10px";K.style.whiteSpace="nowrap";null!=e&&(e=mxUtils.button(mxResources.get("signOut"),e),e.className="geBtn",K.appendChild(e));this.userPanel.appendChild(K)}});null!=this.dropbox&&k(this.dropbox.getUser(),IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var K=this.getCurrentFile();if(null!=K&&K.constructor==DropboxFile){var c=mxUtils.bind(this,function(){this.dropbox.logout();
+d=!0;var q=document.createElement("table");q.style.borderSpacing="0";q.style.fontSize="10pt";q.style.width="100%";q.style.padding="10px";var m=document.createElement("tbody"),n=document.createElement("tr"),z=document.createElement("td");z.setAttribute("valig","top");z.style.width="40px";if(null!=c){var C=document.createElement("img");C.setAttribute("width","40");C.setAttribute("height","40");C.setAttribute("border","0");C.setAttribute("src",c);C.style.marginRight="6px";z.appendChild(C)}n.appendChild(z);
+z=document.createElement("td");z.setAttribute("valign","middle");z.style.whiteSpace="nowrap";z.style.maxWidth="0";z.style.overflow="hidden";z.style.textOverflow="ellipsis";mxUtils.write(z,K.displayName);null!=K.email&&(mxUtils.br(z),c=document.createElement("small"),c.style.color="gray",mxUtils.write(c,K.email),z.appendChild(c));null!=g&&(K=document.createElement("div"),K.style.marginTop="4px",c=document.createElement("i"),mxUtils.write(c,g),K.appendChild(c),z.appendChild(K));n.appendChild(z);m.appendChild(n);
+q.appendChild(m);this.userPanel.appendChild(q);K=document.createElement("div");K.style.textAlign="center";K.style.padding="10px";K.style.whiteSpace="nowrap";null!=e&&(e=mxUtils.button(mxResources.get("signOut"),e),e.className="geBtn",K.appendChild(e));this.userPanel.appendChild(K)}});null!=this.dropbox&&k(this.dropbox.getUser(),IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var K=this.getCurrentFile();if(null!=K&&K.constructor==DropboxFile){var c=mxUtils.bind(this,function(){this.dropbox.logout();
window.location.hash=""});K.isModified()?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c()}else this.dropbox.logout()}),mxResources.get("dropbox"));null!=this.oneDrive&&k(this.oneDrive.getUser(),IMAGE_PATH+"/onedrive-logo.svg",this.oneDrive.noLogout?null:mxUtils.bind(this,function(){var K=this.getCurrentFile();if(null!=K&&K.constructor==OneDriveFile){var c=mxUtils.bind(this,function(){this.oneDrive.logout();window.location.hash=
""});K.isModified()?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c()}else this.oneDrive.logout()}),mxResources.get("oneDrive"));null!=this.gitHub&&k(this.gitHub.getUser(),IMAGE_PATH+"/github-logo.svg",mxUtils.bind(this,function(){var K=this.getCurrentFile();if(null!=K&&K.constructor==GitHubFile){var c=mxUtils.bind(this,function(){this.gitHub.logout();window.location.hash=""});K.isModified()?this.confirm(mxResources.get("allChangesLost"),
null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c()}else this.gitHub.logout()}),mxResources.get("github"));null!=this.gitLab&&k(this.gitLab.getUser(),IMAGE_PATH+"/gitlab-logo.svg",mxUtils.bind(this,function(){var K=this.getCurrentFile();if(null!=K&&K.constructor==GitLabFile){var c=mxUtils.bind(this,function(){this.gitLab.logout();window.location.hash=""});K.isModified()?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):
@@ -12587,11 +12587,11 @@ function(){var t=document.createElement("input");t.setAttribute("type","checkbox
null!=J&&"1"==urlParams.sketch&&p.push([mxResources.get("plugins"),J.funct]);EditorUi.isElectronApp||p.push([mxResources.get("share"),function(M,H){if(0<H.value.length)try{var G=JSON.parse(H.value),E=window.location.protocol+"//"+window.location.host+"/"+d.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(G)),P=new EmbedDialog(d,E);d.showDialog(P.container,450,240,!0);P.init()}catch(T){d.handleError(T)}else d.handleError({message:mxResources.get("invalidInput")})}]);p=new TextareaDialog(d,mxResources.get("configuration")+
":",null!=F?JSON.stringify(JSON.parse(F),null,2):"",function(M){if(null!=M)try{if(null!=t.parentNode&&(mxSettings.setShowStartScreen(t.checked),mxSettings.save()),M==F)d.hideDialog();else{if(0<M.length){var H=JSON.parse(M);localStorage.setItem(Editor.configurationKey,JSON.stringify(H))}else localStorage.removeItem(Editor.configurationKey);d.hideDialog();d.alert(mxResources.get("restartForChangeRequired"))}}catch(G){d.handleError(G)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",
p,t.parentNode);d.showDialog(p.container,620,460,!0,!1);p.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,function(t,p){var F=mxUtils.bind(this,function(M){var H=""==M?mxResources.get("automatic"):mxLanguageMap[M],G=null;""!=H&&(G=t.addItem(H,null,mxUtils.bind(this,function(){mxSettings.setLanguage(M);mxSettings.save();mxClient.language=M;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);d.alert(mxResources.get("restartForChangeRequired"))}),
-p),(M==mxLanguage||""==M&&null==mxLanguage)&&t.addCheckmark(G,Editor.checkmarkImage));return G});F("");t.addSeparator(p);for(var J in mxLanguageMap)F(J)})));var n=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(t){var p=n.apply(this,arguments);if(null!=p&&"1"!=urlParams.noLangIcon){var F=this.get("language");if(null!=F){F=p.addMenu("",F.funct);F.setAttribute("title",mxResources.get("language"));F.className="geAdaptiveAsset";F.style.width="16px";F.style.paddingTop="2px";F.style.paddingLeft=
+p),(M==mxLanguage||""==M&&null==mxLanguage)&&t.addCheckmark(G,Editor.checkmarkImage));return G});F("");t.addSeparator(p);for(var J in mxLanguageMap)F(J)})));var m=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(t){var p=m.apply(this,arguments);if(null!=p&&"1"!=urlParams.noLangIcon){var F=this.get("language");if(null!=F){F=p.addMenu("",F.funct);F.setAttribute("title",mxResources.get("language"));F.className="geAdaptiveAsset";F.style.width="16px";F.style.paddingTop="2px";F.style.paddingLeft=
"4px";F.style.zIndex="1";F.style.position="absolute";F.style.display="block";F.style.cursor="pointer";F.style.right="17px";"atlas"==uiTheme?(F.style.top="6px",F.style.right="15px"):F.style.top="min"==uiTheme?"2px":"0px";var J=document.createElement("div");J.style.backgroundImage="url("+Editor.globeImage+")";J.style.backgroundPosition="center center";J.style.backgroundRepeat="no-repeat";J.style.backgroundSize="19px 19px";J.style.position="absolute";J.style.height="19px";J.style.width="19px";J.style.marginTop=
"2px";J.style.zIndex="1";F.appendChild(J);mxUtils.setOpacity(F,40);"1"==urlParams.winCtrls&&(F.style.right="95px",F.style.width="19px",F.style.height="19px",F.style.webkitAppRegion="no-drag",J.style.webkitAppRegion="no-drag");"atlas"==uiTheme&&(F.style.opacity="0.85",F.style.filter="invert(100%)");document.body.appendChild(F);p.langIcon=F}}return p}}d.customLayoutConfig=[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,
parallelEdgeSpacing:10}}];d.actions.addAction("runLayout",function(){var t=new TextareaDialog(d,"Run Layouts:",JSON.stringify(d.customLayoutConfig,null,2),function(p){if(0<p.length)try{var F=JSON.parse(p);d.executeLayouts(v.createLayouts(F));d.customLayoutConfig=F;d.hideDialog()}catch(J){d.handleError(J)}},null,null,null,null,function(p,F){var J=mxUtils.button(mxResources.get("copy"),function(){try{var M=F.value;F.value=JSON.stringify(JSON.parse(M));F.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?
-F.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");d.alert(mxResources.get("copiedToClipboard"));F.value=M}catch(H){d.handleError(H)}});J.setAttribute("title","copy");J.className="geBtn";p.appendChild(J)},!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");d.showDialog(t.container,620,460,!0,!0);t.init()});e=this.get("layout");var m=e.funct;e.funct=function(t,p){m.apply(this,arguments);t.addItem(mxResources.get("orgChart"),null,function(){var F=null,J=20,
+F.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");d.alert(mxResources.get("copiedToClipboard"));F.value=M}catch(H){d.handleError(H)}});J.setAttribute("title","copy");J.className="geBtn";p.appendChild(J)},!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");d.showDialog(t.container,620,460,!0,!0);t.init()});e=this.get("layout");var n=e.funct;e.funct=function(t,p){n.apply(this,arguments);t.addItem(mxResources.get("orgChart"),null,function(){var F=null,J=20,
M=20,H=function(){if("undefined"!==typeof mxOrgChartLayout&&null!=F){var l=d.editor.graph,A=new mxOrgChartLayout(l,F,J,M),L=l.getDefaultParent();1<l.model.getChildCount(l.getSelectionCell())&&(L=l.getSelectionCell());A.execute(L)}},G=document.createElement("div"),E=document.createElement("div");E.style.marginTop="6px";E.style.display="inline-block";E.style.width="140px";mxUtils.write(E,mxResources.get("orgChartType")+": ");G.appendChild(E);var P=document.createElement("select");P.style.width="200px";
P.style.boxSizing="border-box";E=[mxResources.get("linear"),mxResources.get("hanger2"),mxResources.get("hanger4"),mxResources.get("fishbone1"),mxResources.get("fishbone2"),mxResources.get("1ColumnLeft"),mxResources.get("1ColumnRight"),mxResources.get("smart")];for(var T=0;T<E.length;T++){var W=document.createElement("option");mxUtils.write(W,E[T]);W.value=T;2==T&&W.setAttribute("selected","selected");P.appendChild(W)}mxEvent.addListener(P,"change",function(){F=P.value});G.appendChild(P);E=document.createElement("div");
E.style.marginTop="6px";E.style.display="inline-block";E.style.width="140px";mxUtils.write(E,mxResources.get("parentChildSpacing")+": ");G.appendChild(E);var U=document.createElement("input");U.type="number";U.value=J;U.style.width="200px";U.style.boxSizing="border-box";G.appendChild(U);mxEvent.addListener(U,"change",function(){J=U.value});E=document.createElement("div");E.style.marginTop="6px";E.style.display="inline-block";E.style.width="140px";mxUtils.write(E,mxResources.get("siblingSpacing")+
@@ -12751,7 +12751,7 @@ EditorUi.prototype.createTab=function(b){var f=document.createElement("div");f.s
this.tabContainer.style.backgroundColor;f.style.cursor="move";f.style.color="gray";b&&(mxEvent.addListener(f,"mouseenter",mxUtils.bind(this,function(k){this.editor.graph.isMouseDown||(f.style.backgroundColor=Editor.isDarkMode()?"black":"#e8eaed",mxEvent.consume(k))})),mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(k){f.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(k)})));return f};
EditorUi.prototype.createControlTab=function(b,f,k){k=this.createTab(null!=k?k:!0);k.style.lineHeight=this.tabContainerHeight+"px";k.style.paddingTop=b+"px";k.style.cursor="pointer";k.style.width="30px";k.innerHTML=f;null!=k.firstChild&&null!=k.firstChild.style&&mxUtils.setOpacity(k.firstChild,40);return k};EditorUi.prototype.getShortPageName=function(b){b=b.getName();36<b.length&&(b=b.substring(0,34)+"...");return b};
EditorUi.prototype.createPageMenuTab=function(b,f){b=this.createControlTab(3,'<div class="geSprite geSprite-dots"></div>',b);b.setAttribute("title",mxResources.get("pages"));b.style.position="absolute";b.style.marginLeft="0px";b.style.top="0px";b.style.left="1px";var k=b.getElementsByTagName("div")[0];k.style.display="inline-block";k.style.marginTop="5px";k.style.width="21px";k.style.height="21px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(d){this.editor.graph.popupMenuHandler.hideMenu();
-var v=new mxPopupMenu(mxUtils.bind(this,function(D,K){var c=mxUtils.bind(this,function(){for(var n=0;n<this.pages.length;n++)mxUtils.bind(this,function(m){var z=D.addItem(this.getShortPageName(this.pages[m]),null,mxUtils.bind(this,function(){this.selectPage(this.pages[m])}),K),C=this.pages[m].getId();z.setAttribute("title",this.pages[m].getName()+" ("+(m+1)+"/"+this.pages.length+")"+(null!=C?" ["+C+"]":""));this.pages[m]==this.currentPage&&D.addCheckmark(z,Editor.checkmarkImage)})(n)}),e=mxUtils.bind(this,
+var v=new mxPopupMenu(mxUtils.bind(this,function(D,K){var c=mxUtils.bind(this,function(){for(var m=0;m<this.pages.length;m++)mxUtils.bind(this,function(n){var z=D.addItem(this.getShortPageName(this.pages[n]),null,mxUtils.bind(this,function(){this.selectPage(this.pages[n])}),K),C=this.pages[n].getId();z.setAttribute("title",this.pages[n].getName()+" ("+(n+1)+"/"+this.pages.length+")"+(null!=C?" ["+C+"]":""));this.pages[n]==this.currentPage&&D.addCheckmark(z,Editor.checkmarkImage)})(m)}),e=mxUtils.bind(this,
function(){D.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),K)});f||c();if(this.editor.graph.isEnabled()){f||(D.addSeparator(K),e());var g=this.currentPage;if(null!=g){D.addSeparator(K);var q=this.getShortPageName(g);D.addItem(mxResources.get("removeIt",[q]),null,mxUtils.bind(this,function(){this.removePage(g)}),K);D.addItem(mxResources.get("renameIt",[q]),null,mxUtils.bind(this,function(){this.renamePage(g,g.getName())}),K);f||D.addSeparator(K);D.addItem(mxResources.get("duplicateIt",
[q]),null,mxUtils.bind(this,function(){this.duplicatePage(g,mxResources.get("copyOf",[g.getName()]))}),K)}}f&&(D.addSeparator(K),e(),D.addSeparator(K),c())}));v.div.className+=" geMenubarMenu";v.smartSeparators=!0;v.showDisabled=!0;v.autoExpand=!0;v.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(v,arguments);v.destroy()});var x=mxEvent.getClientX(d),B=mxEvent.getClientY(d);v.popup(x,B,null,d);this.setCurrentMenu(v);mxEvent.consume(d)}));return b};
EditorUi.prototype.createPageInsertTab=function(){var b=this.createControlTab(4,'<div class="geSprite geSprite-plus"></div>');b.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(b,"click",mxUtils.bind(this,function(k){this.insertPage();mxEvent.consume(k)}));var f=b.getElementsByTagName("div")[0];f.style.display="inline-block";f.style.width="21px";f.style.height="21px";return b};
@@ -12770,41 +12770,41 @@ d));return d};b.beforeDecode=function(f,k,d){d.ui=f.ui;d.relatedPage=d.ui.getPag
!1),d=v.nextSibling,v.parentNode.removeChild(v),v=d;null!=v;){d=v.nextSibling;if(v.nodeType==mxConstants.NODETYPE_ELEMENT){var x=v.getAttribute("id");null==f.lookup(x)&&f.decodeCell(v)}v.parentNode.removeChild(v);v=d}}return k};b.afterDecode=function(f,k,d){d.index=d.previousIndex;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(d,v,x,B,D){v=null!=v?v:!1;null==x&&(x=this.getFoldableCells(this.getSelectionCells(),d));this.stopEditing();this.model.beginUpdate();try{for(var K=x.slice(),c=0;c<x.length;c++)"1"==mxUtils.getValue(this.getCurrentCellStyle(x[c]),"treeFolding","0")&&this.foldTreeCell(d,x[c]);x=K;x=b.apply(this,arguments)}finally{this.model.endUpdate()}return x};Graph.prototype.foldTreeCell=
function(d,v){this.model.beginUpdate();try{var x=[];this.traverse(v,!0,mxUtils.bind(this,function(D,K){var c=null!=K&&this.isTreeEdge(K);c&&x.push(K);D==v||null!=K&&!c||x.push(D);return(null==K||c)&&(D==v||!this.model.isCollapsed(D))}));this.model.setCollapsed(v,d);for(var B=0;B<x.length;B++)this.model.setVisible(x[B],!d)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(d){return!this.isEdgeIgnored(d)};Graph.prototype.getTreeEdges=function(d,v,x,B,D,K){return this.model.filterCells(this.getEdges(d,
v,x,B,D,K),mxUtils.bind(this,function(c){return this.isTreeEdge(c)}))};Graph.prototype.getIncomingTreeEdges=function(d,v){return this.getTreeEdges(d,v,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(d,v){return this.getTreeEdges(d,v,!1,!0,!1)};var f=EditorUi.prototype.init;EditorUi.prototype.init=function(){f.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function d(E){return z.isVertex(E)&&x(E)}function v(E){var P=
-!1;null!=E&&(P="1"==m.getCurrentCellStyle(E).treeMoving);return P}function x(E){var P=!1;null!=E&&(E=z.getParent(E),P=m.view.getState(E),P="tree"==(null!=P?P.style:m.getCellStyle(E)).containerType);return P}function B(E){var P=!1;null!=E&&(E=z.getParent(E),P=m.view.getState(E),m.view.getState(E),P=null!=(null!=P?P.style:m.getCellStyle(E)).childLayout);return P}function D(E){E=m.view.getState(E);if(null!=E){var P=m.getIncomingTreeEdges(E.cell);if(0<P.length&&(P=m.view.getState(P[0]),null!=P&&(P=P.absolutePoints,
-null!=P&&0<P.length&&(P=P[P.length-1],null!=P)))){if(P.y==E.y&&Math.abs(P.x-E.getCenterX())<E.width/2)return mxConstants.DIRECTION_SOUTH;if(P.y==E.y+E.height&&Math.abs(P.x-E.getCenterX())<E.width/2)return mxConstants.DIRECTION_NORTH;if(P.x>E.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function K(E,P){P=null!=P?P:!0;m.model.beginUpdate();try{var T=m.model.getParent(E),W=m.getIncomingTreeEdges(E),U=m.cloneCells([W[0],E]);m.model.setTerminal(U[0],m.model.getTerminal(W[0],
-!0),!0);var V=D(E),l=T.geometry;V==mxConstants.DIRECTION_SOUTH||V==mxConstants.DIRECTION_NORTH?U[1].geometry.x+=P?E.geometry.width+10:-U[1].geometry.width-10:U[1].geometry.y+=P?E.geometry.height+10:-U[1].geometry.height-10;m.view.currentRoot!=T&&(U[1].geometry.x-=l.x,U[1].geometry.y-=l.y);var A=m.view.getState(E),L=m.view.scale;if(null!=A){var Q=mxRectangle.fromRectangle(A);V==mxConstants.DIRECTION_SOUTH||V==mxConstants.DIRECTION_NORTH?Q.x+=(P?E.geometry.width+10:-U[1].geometry.width-10)*L:Q.y+=(P?
-E.geometry.height+10:-U[1].geometry.height-10)*L;var O=m.getOutgoingTreeEdges(m.model.getTerminal(W[0],!0));if(null!=O){for(var R=V==mxConstants.DIRECTION_SOUTH||V==mxConstants.DIRECTION_NORTH,S=l=W=0;S<O.length;S++){var X=m.model.getTerminal(O[S],!1);if(V==D(X)){var aa=m.view.getState(X);X!=E&&null!=aa&&(R&&P!=aa.getCenterX()<A.getCenterX()||!R&&P!=aa.getCenterY()<A.getCenterY())&&mxUtils.intersects(Q,aa)&&(W=10+Math.max(W,(Math.min(Q.x+Q.width,aa.x+aa.width)-Math.max(Q.x,aa.x))/L),l=10+Math.max(l,
-(Math.min(Q.y+Q.height,aa.y+aa.height)-Math.max(Q.y,aa.y))/L))}}R?l=0:W=0;for(S=0;S<O.length;S++)if(X=m.model.getTerminal(O[S],!1),V==D(X)&&(aa=m.view.getState(X),X!=E&&null!=aa&&(R&&P!=aa.getCenterX()<A.getCenterX()||!R&&P!=aa.getCenterY()<A.getCenterY()))){var Y=[];m.traverse(aa.cell,!0,function(Z,ca){var fa=null!=ca&&m.isTreeEdge(ca);fa&&Y.push(ca);(null==ca||fa)&&Y.push(Z);return null==ca||fa});m.moveCells(Y,(P?1:-1)*W,(P?1:-1)*l)}}}return m.addCells(U,T)}finally{m.model.endUpdate()}}function c(E){m.model.beginUpdate();
-try{var P=D(E),T=m.getIncomingTreeEdges(E),W=m.cloneCells([T[0],E]);m.model.setTerminal(T[0],W[1],!1);m.model.setTerminal(W[0],W[1],!0);m.model.setTerminal(W[0],E,!1);var U=m.model.getParent(E),V=U.geometry,l=[];m.view.currentRoot!=U&&(W[1].geometry.x-=V.x,W[1].geometry.y-=V.y);m.traverse(E,!0,function(Q,O){var R=null!=O&&m.isTreeEdge(O);R&&l.push(O);(null==O||R)&&l.push(Q);return null==O||R});var A=E.geometry.width+40,L=E.geometry.height+40;P==mxConstants.DIRECTION_SOUTH?A=0:P==mxConstants.DIRECTION_NORTH?
-(A=0,L=-L):P==mxConstants.DIRECTION_WEST?(A=-A,L=0):P==mxConstants.DIRECTION_EAST&&(L=0);m.moveCells(l,A,L);return m.addCells(W,U)}finally{m.model.endUpdate()}}function e(E,P){m.model.beginUpdate();try{var T=m.model.getParent(E),W=m.getIncomingTreeEdges(E),U=D(E);0==W.length&&(W=[m.createEdge(T,null,"",null,null,m.createCurrentEdgeStyle())],U=P);var V=m.cloneCells([W[0],E]);m.model.setTerminal(V[0],E,!0);if(null==m.model.getTerminal(V[0],!1)){m.model.setTerminal(V[0],V[1],!1);var l=m.getCellStyle(V[1]).newEdgeStyle;
-if(null!=l)try{var A=JSON.parse(l),L;for(L in A)m.setCellStyles(L,A[L],[V[0]]),"edgeStyle"==L&&"elbowEdgeStyle"==A[L]&&m.setCellStyles("elbow",U==mxConstants.DIRECTION_SOUTH||U==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[V[0]])}catch(aa){}}W=m.getOutgoingTreeEdges(E);var Q=T.geometry;P=[];m.view.currentRoot==T&&(Q=new mxRectangle);for(l=0;l<W.length;l++){var O=m.model.getTerminal(W[l],!1);null!=O&&P.push(O)}var R=m.view.getBounds(P),S=m.view.translate,X=m.view.scale;U==mxConstants.DIRECTION_SOUTH?
+!1;null!=E&&(P="1"==n.getCurrentCellStyle(E).treeMoving);return P}function x(E){var P=!1;null!=E&&(E=z.getParent(E),P=n.view.getState(E),P="tree"==(null!=P?P.style:n.getCellStyle(E)).containerType);return P}function B(E){var P=!1;null!=E&&(E=z.getParent(E),P=n.view.getState(E),n.view.getState(E),P=null!=(null!=P?P.style:n.getCellStyle(E)).childLayout);return P}function D(E){E=n.view.getState(E);if(null!=E){var P=n.getIncomingTreeEdges(E.cell);if(0<P.length&&(P=n.view.getState(P[0]),null!=P&&(P=P.absolutePoints,
+null!=P&&0<P.length&&(P=P[P.length-1],null!=P)))){if(P.y==E.y&&Math.abs(P.x-E.getCenterX())<E.width/2)return mxConstants.DIRECTION_SOUTH;if(P.y==E.y+E.height&&Math.abs(P.x-E.getCenterX())<E.width/2)return mxConstants.DIRECTION_NORTH;if(P.x>E.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function K(E,P){P=null!=P?P:!0;n.model.beginUpdate();try{var T=n.model.getParent(E),W=n.getIncomingTreeEdges(E),U=n.cloneCells([W[0],E]);n.model.setTerminal(U[0],n.model.getTerminal(W[0],
+!0),!0);var V=D(E),l=T.geometry;V==mxConstants.DIRECTION_SOUTH||V==mxConstants.DIRECTION_NORTH?U[1].geometry.x+=P?E.geometry.width+10:-U[1].geometry.width-10:U[1].geometry.y+=P?E.geometry.height+10:-U[1].geometry.height-10;n.view.currentRoot!=T&&(U[1].geometry.x-=l.x,U[1].geometry.y-=l.y);var A=n.view.getState(E),L=n.view.scale;if(null!=A){var Q=mxRectangle.fromRectangle(A);V==mxConstants.DIRECTION_SOUTH||V==mxConstants.DIRECTION_NORTH?Q.x+=(P?E.geometry.width+10:-U[1].geometry.width-10)*L:Q.y+=(P?
+E.geometry.height+10:-U[1].geometry.height-10)*L;var O=n.getOutgoingTreeEdges(n.model.getTerminal(W[0],!0));if(null!=O){for(var R=V==mxConstants.DIRECTION_SOUTH||V==mxConstants.DIRECTION_NORTH,S=l=W=0;S<O.length;S++){var X=n.model.getTerminal(O[S],!1);if(V==D(X)){var aa=n.view.getState(X);X!=E&&null!=aa&&(R&&P!=aa.getCenterX()<A.getCenterX()||!R&&P!=aa.getCenterY()<A.getCenterY())&&mxUtils.intersects(Q,aa)&&(W=10+Math.max(W,(Math.min(Q.x+Q.width,aa.x+aa.width)-Math.max(Q.x,aa.x))/L),l=10+Math.max(l,
+(Math.min(Q.y+Q.height,aa.y+aa.height)-Math.max(Q.y,aa.y))/L))}}R?l=0:W=0;for(S=0;S<O.length;S++)if(X=n.model.getTerminal(O[S],!1),V==D(X)&&(aa=n.view.getState(X),X!=E&&null!=aa&&(R&&P!=aa.getCenterX()<A.getCenterX()||!R&&P!=aa.getCenterY()<A.getCenterY()))){var Y=[];n.traverse(aa.cell,!0,function(Z,ca){var fa=null!=ca&&n.isTreeEdge(ca);fa&&Y.push(ca);(null==ca||fa)&&Y.push(Z);return null==ca||fa});n.moveCells(Y,(P?1:-1)*W,(P?1:-1)*l)}}}return n.addCells(U,T)}finally{n.model.endUpdate()}}function c(E){n.model.beginUpdate();
+try{var P=D(E),T=n.getIncomingTreeEdges(E),W=n.cloneCells([T[0],E]);n.model.setTerminal(T[0],W[1],!1);n.model.setTerminal(W[0],W[1],!0);n.model.setTerminal(W[0],E,!1);var U=n.model.getParent(E),V=U.geometry,l=[];n.view.currentRoot!=U&&(W[1].geometry.x-=V.x,W[1].geometry.y-=V.y);n.traverse(E,!0,function(Q,O){var R=null!=O&&n.isTreeEdge(O);R&&l.push(O);(null==O||R)&&l.push(Q);return null==O||R});var A=E.geometry.width+40,L=E.geometry.height+40;P==mxConstants.DIRECTION_SOUTH?A=0:P==mxConstants.DIRECTION_NORTH?
+(A=0,L=-L):P==mxConstants.DIRECTION_WEST?(A=-A,L=0):P==mxConstants.DIRECTION_EAST&&(L=0);n.moveCells(l,A,L);return n.addCells(W,U)}finally{n.model.endUpdate()}}function e(E,P){n.model.beginUpdate();try{var T=n.model.getParent(E),W=n.getIncomingTreeEdges(E),U=D(E);0==W.length&&(W=[n.createEdge(T,null,"",null,null,n.createCurrentEdgeStyle())],U=P);var V=n.cloneCells([W[0],E]);n.model.setTerminal(V[0],E,!0);if(null==n.model.getTerminal(V[0],!1)){n.model.setTerminal(V[0],V[1],!1);var l=n.getCellStyle(V[1]).newEdgeStyle;
+if(null!=l)try{var A=JSON.parse(l),L;for(L in A)n.setCellStyles(L,A[L],[V[0]]),"edgeStyle"==L&&"elbowEdgeStyle"==A[L]&&n.setCellStyles("elbow",U==mxConstants.DIRECTION_SOUTH||U==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[V[0]])}catch(aa){}}W=n.getOutgoingTreeEdges(E);var Q=T.geometry;P=[];n.view.currentRoot==T&&(Q=new mxRectangle);for(l=0;l<W.length;l++){var O=n.model.getTerminal(W[l],!1);null!=O&&P.push(O)}var R=n.view.getBounds(P),S=n.view.translate,X=n.view.scale;U==mxConstants.DIRECTION_SOUTH?
(V[1].geometry.x=null==R?E.geometry.x+(E.geometry.width-V[1].geometry.width)/2:(R.x+R.width)/X-S.x-Q.x+10,V[1].geometry.y+=V[1].geometry.height-Q.y+40):U==mxConstants.DIRECTION_NORTH?(V[1].geometry.x=null==R?E.geometry.x+(E.geometry.width-V[1].geometry.width)/2:(R.x+R.width)/X-S.x+-Q.x+10,V[1].geometry.y-=V[1].geometry.height+Q.y+40):(V[1].geometry.x=U==mxConstants.DIRECTION_WEST?V[1].geometry.x-(V[1].geometry.width+Q.x+40):V[1].geometry.x+(V[1].geometry.width-Q.x+40),V[1].geometry.y=null==R?E.geometry.y+
-(E.geometry.height-V[1].geometry.height)/2:(R.y+R.height)/X-S.y+-Q.y+10);return m.addCells(V,T)}finally{m.model.endUpdate()}}function g(E,P,T){E=m.getOutgoingTreeEdges(E);T=m.view.getState(T);var W=[];if(null!=T&&null!=E){for(var U=0;U<E.length;U++){var V=m.view.getState(m.model.getTerminal(E[U],!1));null!=V&&(!P&&Math.min(V.x+V.width,T.x+T.width)>=Math.max(V.x,T.x)||P&&Math.min(V.y+V.height,T.y+T.height)>=Math.max(V.y,T.y))&&W.push(V)}W.sort(function(l,A){return P?l.x+l.width-A.x-A.width:l.y+l.height-
-A.y-A.height})}return W}function q(E,P){var T=D(E),W=P==mxConstants.DIRECTION_EAST||P==mxConstants.DIRECTION_WEST;(T==mxConstants.DIRECTION_EAST||T==mxConstants.DIRECTION_WEST)==W&&T!=P?n.actions.get("selectParent").funct():T==P?(P=m.getOutgoingTreeEdges(E),null!=P&&0<P.length&&m.setSelectionCell(m.model.getTerminal(P[0],!1))):(T=m.getIncomingTreeEdges(E),null!=T&&0<T.length&&(W=g(m.model.getTerminal(T[0],!0),W,E),E=m.view.getState(E),null!=E&&(E=mxUtils.indexOf(W,E),0<=E&&(E+=P==mxConstants.DIRECTION_NORTH||
-P==mxConstants.DIRECTION_WEST?-1:1,0<=E&&E<=W.length-1&&m.setSelectionCell(W[E].cell)))))}var n=this,m=n.editor.graph,z=m.getModel(),C=n.menus.createPopupMenu;n.menus.createPopupMenu=function(E,P,T){C.apply(this,arguments);if(1==m.getSelectionCount()){P=m.getSelectionCell();var W=m.getOutgoingTreeEdges(P);E.addSeparator();0<W.length&&(d(m.getSelectionCell())&&this.addMenuItems(E,["selectChildren"],null,T),this.addMenuItems(E,["selectDescendants"],null,T));d(m.getSelectionCell())?(E.addSeparator(),
-0<m.getIncomingTreeEdges(P).length&&this.addMenuItems(E,["selectSiblings","selectParent"],null,T)):0<m.model.getEdgeCount(P)&&this.addMenuItems(E,["selectConnections"],null,T)}};n.actions.addAction("selectChildren",function(){if(m.isEnabled()&&1==m.getSelectionCount()){var E=m.getSelectionCell();E=m.getOutgoingTreeEdges(E);if(null!=E){for(var P=[],T=0;T<E.length;T++)P.push(m.model.getTerminal(E[T],!1));m.setSelectionCells(P)}}},null,null,"Alt+Shift+X");n.actions.addAction("selectSiblings",function(){if(m.isEnabled()&&
-1==m.getSelectionCount()){var E=m.getSelectionCell();E=m.getIncomingTreeEdges(E);if(null!=E&&0<E.length&&(E=m.getOutgoingTreeEdges(m.model.getTerminal(E[0],!0)),null!=E)){for(var P=[],T=0;T<E.length;T++)P.push(m.model.getTerminal(E[T],!1));m.setSelectionCells(P)}}},null,null,"Alt+Shift+S");n.actions.addAction("selectParent",function(){if(m.isEnabled()&&1==m.getSelectionCount()){var E=m.getSelectionCell();E=m.getIncomingTreeEdges(E);null!=E&&0<E.length&&m.setSelectionCell(m.model.getTerminal(E[0],
-!0))}},null,null,"Alt+Shift+P");n.actions.addAction("selectDescendants",function(E,P){E=m.getSelectionCell();if(m.isEnabled()&&m.model.isVertex(E)){if(null!=P&&mxEvent.isAltDown(P))m.setSelectionCells(m.model.getTreeEdges(E,null==P||!mxEvent.isShiftDown(P),null==P||!mxEvent.isControlDown(P)));else{var T=[];m.traverse(E,!0,function(W,U){var V=null!=U&&m.isTreeEdge(U);V&&T.push(U);null!=U&&!V||null!=P&&mxEvent.isShiftDown(P)||T.push(W);return null==U||V})}m.setSelectionCells(T)}},null,null,"Alt+Shift+D");
-var u=m.removeCells;m.removeCells=function(E,P){P=null!=P?P:!0;null==E&&(E=this.getDeletableCells(this.getSelectionCells()));P&&(E=this.getDeletableCells(this.addAllEdges(E)));for(var T=[],W=0;W<E.length;W++){var U=E[W];z.isEdge(U)&&x(U)&&(T.push(U),U=z.getTerminal(U,!1));if(d(U)){var V=[];m.traverse(U,!0,function(l,A){var L=null!=A&&m.isTreeEdge(A);L&&V.push(A);(null==A||L)&&V.push(l);return null==A||L});0<V.length&&(T=T.concat(V),U=m.getIncomingTreeEdges(E[W]),E=E.concat(U))}else null!=U&&T.push(E[W])}E=
-T;return u.apply(this,arguments)};n.hoverIcons.getStateAt=function(E,P,T){return d(E.cell)?null:this.graph.view.getState(this.graph.getCellAt(P,T))};var y=m.duplicateCells;m.duplicateCells=function(E,P){E=null!=E?E:this.getSelectionCells();for(var T=E.slice(0),W=0;W<T.length;W++){var U=m.view.getState(T[W]);if(null!=U&&d(U.cell)){var V=m.getIncomingTreeEdges(U.cell);for(U=0;U<V.length;U++)mxUtils.remove(V[U],E)}}this.model.beginUpdate();try{var l=y.call(this,E,P);if(l.length==E.length)for(W=0;W<E.length;W++)if(d(E[W])){var A=
-m.getIncomingTreeEdges(l[W]);V=m.getIncomingTreeEdges(E[W]);if(0==A.length&&0<V.length){var L=this.cloneCell(V[0]);this.addEdge(L,m.getDefaultParent(),this.model.getTerminal(V[0],!0),l[W])}}}finally{this.model.endUpdate()}return l};var I=m.moveCells;m.moveCells=function(E,P,T,W,U,V,l){var A=null;this.model.beginUpdate();try{var L=U,Q=this.getCurrentCellStyle(U);if(null!=E&&d(U)&&"1"==mxUtils.getValue(Q,"treeFolding","0")){for(var O=0;O<E.length;O++)if(d(E[O])||m.model.isEdge(E[O])&&null==m.model.getTerminal(E[O],
-!0)){U=m.model.getParent(E[O]);break}if(null!=L&&U!=L&&null!=this.view.getState(E[0])){var R=m.getIncomingTreeEdges(E[0]);if(0<R.length){var S=m.view.getState(m.model.getTerminal(R[0],!0));if(null!=S){var X=m.view.getState(L);null!=X&&(P=(X.getCenterX()-S.getCenterX())/m.view.scale,T=(X.getCenterY()-S.getCenterY())/m.view.scale)}}}}A=I.apply(this,arguments);if(null!=A&&null!=E&&A.length==E.length)for(O=0;O<A.length;O++)if(this.model.isEdge(A[O]))d(L)&&0>mxUtils.indexOf(A,this.model.getTerminal(A[O],
-!0))&&this.model.setTerminal(A[O],L,!0);else if(d(E[O])&&(R=m.getIncomingTreeEdges(E[O]),0<R.length))if(!W)d(L)&&0>mxUtils.indexOf(E,this.model.getTerminal(R[0],!0))&&this.model.setTerminal(R[0],L,!0);else if(0==m.getIncomingTreeEdges(A[O]).length){Q=L;if(null==Q||Q==m.model.getParent(E[O]))Q=m.model.getTerminal(R[0],!0);W=this.cloneCell(R[0]);this.addEdge(W,m.getDefaultParent(),Q,A[O])}}finally{this.model.endUpdate()}return A};if(null!=n.sidebar){var N=n.sidebar.dropAndConnect;n.sidebar.dropAndConnect=
-function(E,P,T,W){var U=m.model,V=null;U.beginUpdate();try{if(V=N.apply(this,arguments),d(E))for(var l=0;l<V.length;l++)if(U.isEdge(V[l])&&null==U.getTerminal(V[l],!0)){U.setTerminal(V[l],E,!0);var A=m.getCellGeometry(V[l]);A.points=null;null!=A.getTerminalPoint(!0)&&A.setTerminalPoint(null,!0)}}finally{U.endUpdate()}return V}}var t={88:n.actions.get("selectChildren"),84:n.actions.get("selectSubtree"),80:n.actions.get("selectParent"),83:n.actions.get("selectSiblings")},p=n.onKeyDown;n.onKeyDown=function(E){try{if(m.isEnabled()&&
-!m.isEditing()&&d(m.getSelectionCell())&&1==m.getSelectionCount()){var P=null;0<m.getIncomingTreeEdges(m.getSelectionCell()).length&&(9==E.which?P=mxEvent.isShiftDown(E)?c(m.getSelectionCell()):e(m.getSelectionCell()):13==E.which&&(P=K(m.getSelectionCell(),!mxEvent.isShiftDown(E))));if(null!=P&&0<P.length)1==P.length&&m.model.isEdge(P[0])?m.setSelectionCell(m.model.getTerminal(P[0],!1)):m.setSelectionCell(P[P.length-1]),null!=n.hoverIcons&&n.hoverIcons.update(m.view.getState(m.getSelectionCell())),
-m.startEditingAtCell(m.getSelectionCell()),mxEvent.consume(E);else if(mxEvent.isAltDown(E)&&mxEvent.isShiftDown(E)){var T=t[E.keyCode];null!=T&&(T.funct(E),mxEvent.consume(E))}else 37==E.keyCode?(q(m.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(E)):38==E.keyCode?(q(m.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(E)):39==E.keyCode?(q(m.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(E)):40==E.keyCode&&(q(m.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(E))}}catch(W){n.handleError(W)}mxEvent.isConsumed(E)||p.apply(this,arguments)};var F=m.connectVertex;m.connectVertex=function(E,P,T,W,U,V,l){var A=m.getIncomingTreeEdges(E);if(d(E)){var L=D(E),Q=L==mxConstants.DIRECTION_EAST||L==mxConstants.DIRECTION_WEST,O=P==mxConstants.DIRECTION_EAST||P==mxConstants.DIRECTION_WEST;return L==P||0==A.length?e(E,P):Q==O?c(E):K(E,P!=mxConstants.DIRECTION_NORTH&&P!=mxConstants.DIRECTION_WEST)}return F.apply(this,arguments)};m.getSubtree=function(E){var P=
-[E];!v(E)&&!d(E)||B(E)||m.traverse(E,!0,function(T,W){var U=null!=W&&m.isTreeEdge(W);U&&0>mxUtils.indexOf(P,W)&&P.push(W);(null==W||U)&&0>mxUtils.indexOf(P,T)&&P.push(T);return null==W||U});return P};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);(v(this.state.cell)||d(this.state.cell))&&!B(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+(E.geometry.height-V[1].geometry.height)/2:(R.y+R.height)/X-S.y+-Q.y+10);return n.addCells(V,T)}finally{n.model.endUpdate()}}function g(E,P,T){E=n.getOutgoingTreeEdges(E);T=n.view.getState(T);var W=[];if(null!=T&&null!=E){for(var U=0;U<E.length;U++){var V=n.view.getState(n.model.getTerminal(E[U],!1));null!=V&&(!P&&Math.min(V.x+V.width,T.x+T.width)>=Math.max(V.x,T.x)||P&&Math.min(V.y+V.height,T.y+T.height)>=Math.max(V.y,T.y))&&W.push(V)}W.sort(function(l,A){return P?l.x+l.width-A.x-A.width:l.y+l.height-
+A.y-A.height})}return W}function q(E,P){var T=D(E),W=P==mxConstants.DIRECTION_EAST||P==mxConstants.DIRECTION_WEST;(T==mxConstants.DIRECTION_EAST||T==mxConstants.DIRECTION_WEST)==W&&T!=P?m.actions.get("selectParent").funct():T==P?(P=n.getOutgoingTreeEdges(E),null!=P&&0<P.length&&n.setSelectionCell(n.model.getTerminal(P[0],!1))):(T=n.getIncomingTreeEdges(E),null!=T&&0<T.length&&(W=g(n.model.getTerminal(T[0],!0),W,E),E=n.view.getState(E),null!=E&&(E=mxUtils.indexOf(W,E),0<=E&&(E+=P==mxConstants.DIRECTION_NORTH||
+P==mxConstants.DIRECTION_WEST?-1:1,0<=E&&E<=W.length-1&&n.setSelectionCell(W[E].cell)))))}var m=this,n=m.editor.graph,z=n.getModel(),C=m.menus.createPopupMenu;m.menus.createPopupMenu=function(E,P,T){C.apply(this,arguments);if(1==n.getSelectionCount()){P=n.getSelectionCell();var W=n.getOutgoingTreeEdges(P);E.addSeparator();0<W.length&&(d(n.getSelectionCell())&&this.addMenuItems(E,["selectChildren"],null,T),this.addMenuItems(E,["selectDescendants"],null,T));d(n.getSelectionCell())?(E.addSeparator(),
+0<n.getIncomingTreeEdges(P).length&&this.addMenuItems(E,["selectSiblings","selectParent"],null,T)):0<n.model.getEdgeCount(P)&&this.addMenuItems(E,["selectConnections"],null,T)}};m.actions.addAction("selectChildren",function(){if(n.isEnabled()&&1==n.getSelectionCount()){var E=n.getSelectionCell();E=n.getOutgoingTreeEdges(E);if(null!=E){for(var P=[],T=0;T<E.length;T++)P.push(n.model.getTerminal(E[T],!1));n.setSelectionCells(P)}}},null,null,"Alt+Shift+X");m.actions.addAction("selectSiblings",function(){if(n.isEnabled()&&
+1==n.getSelectionCount()){var E=n.getSelectionCell();E=n.getIncomingTreeEdges(E);if(null!=E&&0<E.length&&(E=n.getOutgoingTreeEdges(n.model.getTerminal(E[0],!0)),null!=E)){for(var P=[],T=0;T<E.length;T++)P.push(n.model.getTerminal(E[T],!1));n.setSelectionCells(P)}}},null,null,"Alt+Shift+S");m.actions.addAction("selectParent",function(){if(n.isEnabled()&&1==n.getSelectionCount()){var E=n.getSelectionCell();E=n.getIncomingTreeEdges(E);null!=E&&0<E.length&&n.setSelectionCell(n.model.getTerminal(E[0],
+!0))}},null,null,"Alt+Shift+P");m.actions.addAction("selectDescendants",function(E,P){E=n.getSelectionCell();if(n.isEnabled()&&n.model.isVertex(E)){if(null!=P&&mxEvent.isAltDown(P))n.setSelectionCells(n.model.getTreeEdges(E,null==P||!mxEvent.isShiftDown(P),null==P||!mxEvent.isControlDown(P)));else{var T=[];n.traverse(E,!0,function(W,U){var V=null!=U&&n.isTreeEdge(U);V&&T.push(U);null!=U&&!V||null!=P&&mxEvent.isShiftDown(P)||T.push(W);return null==U||V})}n.setSelectionCells(T)}},null,null,"Alt+Shift+D");
+var u=n.removeCells;n.removeCells=function(E,P){P=null!=P?P:!0;null==E&&(E=this.getDeletableCells(this.getSelectionCells()));P&&(E=this.getDeletableCells(this.addAllEdges(E)));for(var T=[],W=0;W<E.length;W++){var U=E[W];z.isEdge(U)&&x(U)&&(T.push(U),U=z.getTerminal(U,!1));if(d(U)){var V=[];n.traverse(U,!0,function(l,A){var L=null!=A&&n.isTreeEdge(A);L&&V.push(A);(null==A||L)&&V.push(l);return null==A||L});0<V.length&&(T=T.concat(V),U=n.getIncomingTreeEdges(E[W]),E=E.concat(U))}else null!=U&&T.push(E[W])}E=
+T;return u.apply(this,arguments)};m.hoverIcons.getStateAt=function(E,P,T){return d(E.cell)?null:this.graph.view.getState(this.graph.getCellAt(P,T))};var y=n.duplicateCells;n.duplicateCells=function(E,P){E=null!=E?E:this.getSelectionCells();for(var T=E.slice(0),W=0;W<T.length;W++){var U=n.view.getState(T[W]);if(null!=U&&d(U.cell)){var V=n.getIncomingTreeEdges(U.cell);for(U=0;U<V.length;U++)mxUtils.remove(V[U],E)}}this.model.beginUpdate();try{var l=y.call(this,E,P);if(l.length==E.length)for(W=0;W<E.length;W++)if(d(E[W])){var A=
+n.getIncomingTreeEdges(l[W]);V=n.getIncomingTreeEdges(E[W]);if(0==A.length&&0<V.length){var L=this.cloneCell(V[0]);this.addEdge(L,n.getDefaultParent(),this.model.getTerminal(V[0],!0),l[W])}}}finally{this.model.endUpdate()}return l};var I=n.moveCells;n.moveCells=function(E,P,T,W,U,V,l){var A=null;this.model.beginUpdate();try{var L=U,Q=this.getCurrentCellStyle(U);if(null!=E&&d(U)&&"1"==mxUtils.getValue(Q,"treeFolding","0")){for(var O=0;O<E.length;O++)if(d(E[O])||n.model.isEdge(E[O])&&null==n.model.getTerminal(E[O],
+!0)){U=n.model.getParent(E[O]);break}if(null!=L&&U!=L&&null!=this.view.getState(E[0])){var R=n.getIncomingTreeEdges(E[0]);if(0<R.length){var S=n.view.getState(n.model.getTerminal(R[0],!0));if(null!=S){var X=n.view.getState(L);null!=X&&(P=(X.getCenterX()-S.getCenterX())/n.view.scale,T=(X.getCenterY()-S.getCenterY())/n.view.scale)}}}}A=I.apply(this,arguments);if(null!=A&&null!=E&&A.length==E.length)for(O=0;O<A.length;O++)if(this.model.isEdge(A[O]))d(L)&&0>mxUtils.indexOf(A,this.model.getTerminal(A[O],
+!0))&&this.model.setTerminal(A[O],L,!0);else if(d(E[O])&&(R=n.getIncomingTreeEdges(E[O]),0<R.length))if(!W)d(L)&&0>mxUtils.indexOf(E,this.model.getTerminal(R[0],!0))&&this.model.setTerminal(R[0],L,!0);else if(0==n.getIncomingTreeEdges(A[O]).length){Q=L;if(null==Q||Q==n.model.getParent(E[O]))Q=n.model.getTerminal(R[0],!0);W=this.cloneCell(R[0]);this.addEdge(W,n.getDefaultParent(),Q,A[O])}}finally{this.model.endUpdate()}return A};if(null!=m.sidebar){var N=m.sidebar.dropAndConnect;m.sidebar.dropAndConnect=
+function(E,P,T,W){var U=n.model,V=null;U.beginUpdate();try{if(V=N.apply(this,arguments),d(E))for(var l=0;l<V.length;l++)if(U.isEdge(V[l])&&null==U.getTerminal(V[l],!0)){U.setTerminal(V[l],E,!0);var A=n.getCellGeometry(V[l]);A.points=null;null!=A.getTerminalPoint(!0)&&A.setTerminalPoint(null,!0)}}finally{U.endUpdate()}return V}}var t={88:m.actions.get("selectChildren"),84:m.actions.get("selectSubtree"),80:m.actions.get("selectParent"),83:m.actions.get("selectSiblings")},p=m.onKeyDown;m.onKeyDown=function(E){try{if(n.isEnabled()&&
+!n.isEditing()&&d(n.getSelectionCell())&&1==n.getSelectionCount()){var P=null;0<n.getIncomingTreeEdges(n.getSelectionCell()).length&&(9==E.which?P=mxEvent.isShiftDown(E)?c(n.getSelectionCell()):e(n.getSelectionCell()):13==E.which&&(P=K(n.getSelectionCell(),!mxEvent.isShiftDown(E))));if(null!=P&&0<P.length)1==P.length&&n.model.isEdge(P[0])?n.setSelectionCell(n.model.getTerminal(P[0],!1)):n.setSelectionCell(P[P.length-1]),null!=m.hoverIcons&&m.hoverIcons.update(n.view.getState(n.getSelectionCell())),
+n.startEditingAtCell(n.getSelectionCell()),mxEvent.consume(E);else if(mxEvent.isAltDown(E)&&mxEvent.isShiftDown(E)){var T=t[E.keyCode];null!=T&&(T.funct(E),mxEvent.consume(E))}else 37==E.keyCode?(q(n.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(E)):38==E.keyCode?(q(n.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(E)):39==E.keyCode?(q(n.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(E)):40==E.keyCode&&(q(n.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(E))}}catch(W){m.handleError(W)}mxEvent.isConsumed(E)||p.apply(this,arguments)};var F=n.connectVertex;n.connectVertex=function(E,P,T,W,U,V,l){var A=n.getIncomingTreeEdges(E);if(d(E)){var L=D(E),Q=L==mxConstants.DIRECTION_EAST||L==mxConstants.DIRECTION_WEST,O=P==mxConstants.DIRECTION_EAST||P==mxConstants.DIRECTION_WEST;return L==P||0==A.length?e(E,P):Q==O?c(E):K(E,P!=mxConstants.DIRECTION_NORTH&&P!=mxConstants.DIRECTION_WEST)}return F.apply(this,arguments)};n.getSubtree=function(E){var P=
+[E];!v(E)&&!d(E)||B(E)||n.traverse(E,!0,function(T,W){var U=null!=W&&n.isTreeEdge(W);U&&0>mxUtils.indexOf(P,W)&&P.push(W);(null==W||U)&&0>mxUtils.indexOf(P,T)&&P.push(T);return null==W||U});return P};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);(v(this.state.cell)||d(this.state.cell))&&!B(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(E){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(E),mxEvent.getClientY(E),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(E);
-this.graph.isMouseDown=!0;n.hoverIcons.reset();mxEvent.consume(E)})))};var M=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){M.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(E){H.apply(this,
+this.graph.isMouseDown=!0;m.hoverIcons.reset();mxEvent.consume(E)})))};var M=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){M.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(E){H.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=E?"":"none")};var G=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(E,P){G.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var k=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var d=k.apply(this,arguments),v=this.graph;return d.concat([this.addEntry("tree container",
function(){var x=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");x.vertex=!0;var B=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');B.vertex=!0;var D=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
D.vertex=!0;var K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");K.geometry.relative=!0;K.edge=!0;B.insertEdge(K,!0);D.insertEdge(K,!1);x.insert(K);x.insert(B);x.insert(D);return sb.createVertexTemplateFromCells([x],x.geometry.width,x.geometry.height,x.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var x=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
x.vertex=!0;var B=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');B.vertex=!0;var D=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
D.vertex=!0;var K=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");K.geometry.relative=!0;K.edge=!0;B.insertEdge(K,!0);D.insertEdge(K,!1);var c=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
c.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");e.geometry.relative=!0;e.edge=!0;B.insertEdge(e,!0);c.insertEdge(e,!1);var g=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-g.vertex=!0;var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");q.geometry.relative=!0;q.edge=!0;B.insertEdge(q,!0);g.insertEdge(q,!1);var n=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-n.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");m.geometry.relative=!0;m.edge=!0;B.insertEdge(m,!0);n.insertEdge(m,!1);x.insert(K);x.insert(e);x.insert(q);x.insert(m);x.insert(B);x.insert(D);x.insert(c);x.insert(g);x.insert(n);return sb.createVertexTemplateFromCells([x],x.geometry.width,x.geometry.height,x.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var x=new mxCell("Central Idea",
+g.vertex=!0;var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");q.geometry.relative=!0;q.edge=!0;B.insertEdge(q,!0);g.insertEdge(q,!1);var m=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+m.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");n.geometry.relative=!0;n.edge=!0;B.insertEdge(n,!0);m.insertEdge(n,!1);x.insert(K);x.insert(e);x.insert(q);x.insert(n);x.insert(B);x.insert(D);x.insert(c);x.insert(g);x.insert(m);return sb.createVertexTemplateFromCells([x],x.geometry.width,x.geometry.height,x.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var x=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');x.vertex=!0;return sb.createVertexTemplateFromCells([x],x.geometry.width,x.geometry.height,x.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var x=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
x.vertex=!0;var B=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");B.geometry.setTerminalPoint(new mxPoint(-40,40),!0);B.geometry.relative=!0;B.edge=!0;x.insertEdge(B,!1);return sb.createVertexTemplateFromCells([x,B],x.geometry.width,x.geometry.height,x.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var x=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
x.vertex=!0;var B=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");B.geometry.setTerminalPoint(new mxPoint(-40,40),!0);B.geometry.relative=!0;B.edge=!0;x.insertEdge(B,!1);return sb.createVertexTemplateFromCells([x,B],x.geometry.width,x.geometry.height,x.value)}),this.addEntry("tree orgchart organization division",function(){var x=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
@@ -12843,8 +12843,8 @@ u.smartSeparators=!0;e.apply(this,arguments);"1"==urlParams.sketch?N.isEnabled()
["editData"],null,I),u.addSeparator(),this.addSubmenu("layout",u),this.addSubmenu("insert",u),this.addMenuItems(u,["-","exitGroup"],null,I)):N.isEnabled()&&this.addMenuItems(u,["-","lockUnlock"],null,I)};var g=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(u,y,I){g.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(u,["copyAsImage"],null,I)};EditorUi.prototype.toggleFormatPanel=function(u){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=
u?u:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=
-null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);q.apply(this,arguments)};var n=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(u){n.apply(this,arguments);if(u){var y=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=y&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);
-null!=this.formatWindow&&(1E3<=y||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var m=Menus.prototype.init;Menus.prototype.init=function(){m.apply(this,arguments);var u=this.editorUi,y=u.editor.graph;u.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";u.actions.get("createShape").label=
+null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);q.apply(this,arguments)};var m=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(u){m.apply(this,arguments);if(u){var y=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=y&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);
+null!=this.formatWindow&&(1E3<=y||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var n=Menus.prototype.init;Menus.prototype.init=function(){n.apply(this,arguments);var u=this.editorUi,y=u.editor.graph;u.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";u.actions.get("createShape").label=
mxResources.get("shape")+"...";u.actions.get("outline").label=mxResources.get("outline")+"...";u.actions.get("layers").label=mxResources.get("layers")+"...";u.actions.get("tags").label=mxResources.get("tags")+"...";u.actions.get("comments").label=mxResources.get("comments")+"...";var I=u.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(H){u.setSketchMode(!Editor.sketchMode)}));I.setToggleAction(!0);I.setSelectedCallback(function(){return Editor.sketchMode});I=u.actions.put("togglePagesVisible",
new Action(mxResources.get("pages"),function(H){u.setPagesVisible(!Editor.pagesVisible)}));I.setToggleAction(!0);I.setSelectedCallback(function(){return Editor.pagesVisible});u.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){y.popupMenuHandler.hideMenu();u.showImportCsvDialog()}));u.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var H=new ParseDialog(u,"Insert from Text");u.showDialog(H.container,620,420,!0,!1);H.init()}));u.actions.put("formatSql",
new Action(mxResources.get("formatSql")+"...",function(){var H=new ParseDialog(u,"Insert from Text","formatSql");u.showDialog(H.container,620,420,!0,!1);H.init()}));u.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){k(u)},null,null,Editor.ctrlKey+"+Shift+K"));u.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(u)})).shortcut=u.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!u.isOffline()&&
@@ -12922,44 +12922,44 @@ urlParams.embedInline){document.body.style.cursor="text";l.style.transform="";mx
"row-resize";p.diagramContainer.parentNode.appendChild(t);p.bottomResizer=t;var La=null,ja=null,xa=null,sa=null;mxEvent.addGestureListeners(t,function(da){sa=parseInt(p.diagramContainer.style.height);ja=mxEvent.getClientY(da);F.popupMenuHandler.hideMenu();mxEvent.consume(da)});t=t.cloneNode(!1);t.style.cursor="col-resize";p.diagramContainer.parentNode.appendChild(t);p.rightResizer=t;mxEvent.addGestureListeners(t,function(da){xa=parseInt(p.diagramContainer.style.width);La=mxEvent.getClientX(da);F.popupMenuHandler.hideMenu();
mxEvent.consume(da)});mxEvent.addGestureListeners(document.body,null,function(da){var ba=!1;null!=La&&(p.diagramContainer.style.width=Math.max(20,xa+mxEvent.getClientX(da)-La)+"px",ba=!0);null!=ja&&(p.diagramContainer.style.height=Math.max(20,sa+mxEvent.getClientY(da)-ja)+"px",ba=!0);ba&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:p.diagramContainer.getBoundingClientRect()}),"*"),L(),p.refresh())},function(da){null==La&&null==
ja||mxEvent.consume(da);ja=La=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";p.bottomResizer.style.visibility="hidden";p.rightResizer.style.visibility="hidden";A.style.visibility="hidden";V.style.visibility="hidden";l.style.display="none"}"1"==urlParams.prefetchFonts&&p.editor.loadFonts()}}};
-(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var f=EditorUi.initTheme;EditorUi.initTheme=function(){f.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();(function(){var b=mxGuide.prototype.move;mxGuide.prototype.move=function(d,v,x,B){var D=v.y,K=v.x,c=!1,e=!1;if(null!=this.states&&null!=d&&null!=v){var g=this,q=new mxCellState,n=this.graph.getView().scale,m=Math.max(2,this.getGuideTolerance()/2);q.x=d.x+K;q.y=d.y+D;q.width=d.width;q.height=d.height;for(var z=[],C=[],u=0;u<this.states.length;u++){var y=this.states[u];y instanceof mxCellState&&(B||!this.graph.isCellSelected(y.cell))&&((q.x>=y.x&&q.x<=y.x+y.width||y.x>=q.x&&y.x<=q.x+q.width)&&(q.y>
-y.y+y.height+4||q.y+q.height+4<y.y)?z.push(y):(q.y>=y.y&&q.y<=y.y+y.height||y.y>=q.y&&y.y<=q.y+q.height)&&(q.x>y.x+y.width+4||q.x+q.width+4<y.x)&&C.push(y))}var I=0,N=0,t=y=0,p=0,F=0,J=0,M=0,H=5*n;if(1<z.length){z.push(q);z.sort(function(T,W){return T.y-W.y});var G=!1;u=q==z[0];n=q==z[z.length-1];if(!u&&!n)for(u=1;u<z.length-1;u++)if(q==z[u]){n=z[u-1];u=z[u+1];y=N=t=(u.y-n.y-n.height-q.height)/2;break}for(u=0;u<z.length-1;u++){n=z[u];var E=z[u+1],P=q==n||q==E;E=E.y-n.y-n.height;G|=q==n;if(0==N&&0==
-I)N=E,I=1;else if(Math.abs(N-E)<=(P||1==u&&G?m:0))I+=1;else if(1<I&&G){z=z.slice(0,u+1);break}else if(3<=z.length-u&&!G)I=0,y=N=0!=t?t:0,z.splice(0,0==u?1:u),u=-1;else break;0!=y||P||(N=y=E)}3==z.length&&z[1]==q&&(y=0)}if(1<C.length){C.push(q);C.sort(function(T,W){return T.x-W.x});G=!1;u=q==C[0];n=q==C[C.length-1];if(!u&&!n)for(u=1;u<C.length-1;u++)if(q==C[u]){n=C[u-1];u=C[u+1];J=F=M=(u.x-n.x-n.width-q.width)/2;break}for(u=0;u<C.length-1;u++){n=C[u];E=C[u+1];P=q==n||q==E;E=E.x-n.x-n.width;G|=q==n;
-if(0==F&&0==p)F=E,p=1;else if(Math.abs(F-E)<=(P||1==u&&G?m:0))p+=1;else if(1<p&&G){C=C.slice(0,u+1);break}else if(3<=C.length-u&&!G)p=0,J=F=0!=M?M:0,C.splice(0,0==u?1:u),u=-1;else break;0!=J||P||(F=J=E)}3==C.length&&C[1]==q&&(J=0)}m=function(T,W,U,V){var l=[];if(V){V=H;var A=0}else V=0,A=H;l.push(new mxPoint(T.x-V,T.y-A));l.push(new mxPoint(T.x+V,T.y+A));l.push(T);l.push(W);l.push(new mxPoint(W.x-V,W.y-A));l.push(new mxPoint(W.x+V,W.y+A));if(null!=U)return U.points=l,U;T=new mxPolyline(l,mxConstants.GUIDE_COLOR,
-mxConstants.GUIDE_STROKEWIDTH);T.dialect=mxConstants.DIALECT_SVG;T.pointerEvents=!1;T.init(g.graph.getView().getOverlayPane());return T};F=function(T,W){if(T&&null!=g.guidesArrHor)for(T=0;T<g.guidesArrHor.length;T++)g.guidesArrHor[T].node.style.visibility="hidden";if(W&&null!=g.guidesArrVer)for(T=0;T<g.guidesArrVer.length;T++)g.guidesArrVer[T].node.style.visibility="hidden"};if(1<p&&p==C.length-1){p=[];M=g.guidesArrHor;c=[];K=0;u=C[0]==q?1:0;G=C[u].y+C[u].height;if(0<J)for(u=0;u<C.length-1;u++)n=
-C[u],E=C[u+1],q==n?(K=E.x-n.width-J,c.push(new mxPoint(K+n.width+H,G)),c.push(new mxPoint(E.x-H,G))):q==E?(c.push(new mxPoint(n.x+n.width+H,G)),K=n.x+n.width+J,c.push(new mxPoint(K-H,G))):(c.push(new mxPoint(n.x+n.width+H,G)),c.push(new mxPoint(E.x-H,G)));else n=C[0],u=C[2],K=n.x+n.width+(u.x-n.x-n.width-q.width)/2,c.push(new mxPoint(n.x+n.width+H,G)),c.push(new mxPoint(K-H,G)),c.push(new mxPoint(K+q.width+H,G)),c.push(new mxPoint(u.x-H,G));for(u=0;u<c.length;u+=2)C=c[u],J=c[u+1],C=m(C,J,null!=M?
-M[u/2]:null),C.node.style.visibility="visible",C.redraw(),p.push(C);for(u=c.length/2;null!=M&&u<M.length;u++)M[u].destroy();g.guidesArrHor=p;K-=d.x;c=!0}else F(!0);if(1<I&&I==z.length-1){p=[];M=g.guidesArrVer;e=[];D=0;u=z[0]==q?1:0;I=z[u].x+z[u].width;if(0<y)for(u=0;u<z.length-1;u++)n=z[u],E=z[u+1],q==n?(D=E.y-n.height-y,e.push(new mxPoint(I,D+n.height+H)),e.push(new mxPoint(I,E.y-H))):q==E?(e.push(new mxPoint(I,n.y+n.height+H)),D=n.y+n.height+y,e.push(new mxPoint(I,D-H))):(e.push(new mxPoint(I,n.y+
-n.height+H)),e.push(new mxPoint(I,E.y-H)));else n=z[0],u=z[2],D=n.y+n.height+(u.y-n.y-n.height-q.height)/2,e.push(new mxPoint(I,n.y+n.height+H)),e.push(new mxPoint(I,D-H)),e.push(new mxPoint(I,D+q.height+H)),e.push(new mxPoint(I,u.y-H));for(u=0;u<e.length;u+=2)C=e[u],J=e[u+1],C=m(C,J,null!=M?M[u/2]:null,!0),C.node.style.visibility="visible",C.redraw(),p.push(C);for(u=e.length/2;null!=M&&u<M.length;u++)M[u].destroy();g.guidesArrVer=p;D-=d.y;e=!0}else F(!1,!0)}if(c||e)return q=new mxPoint(K,D),z=b.call(this,
+(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var f=EditorUi.initTheme;EditorUi.initTheme=function(){f.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();(function(){var b=mxGuide.prototype.move;mxGuide.prototype.move=function(d,v,x,B){var D=v.y,K=v.x,c=!1,e=!1;if(null!=this.states&&null!=d&&null!=v){var g=this,q=new mxCellState,m=this.graph.getView().scale,n=Math.max(2,this.getGuideTolerance()/2);q.x=d.x+K;q.y=d.y+D;q.width=d.width;q.height=d.height;for(var z=[],C=[],u=0;u<this.states.length;u++){var y=this.states[u];y instanceof mxCellState&&(B||!this.graph.isCellSelected(y.cell))&&((q.x>=y.x&&q.x<=y.x+y.width||y.x>=q.x&&y.x<=q.x+q.width)&&(q.y>
+y.y+y.height+4||q.y+q.height+4<y.y)?z.push(y):(q.y>=y.y&&q.y<=y.y+y.height||y.y>=q.y&&y.y<=q.y+q.height)&&(q.x>y.x+y.width+4||q.x+q.width+4<y.x)&&C.push(y))}var I=0,N=0,t=y=0,p=0,F=0,J=0,M=0,H=5*m;if(1<z.length){z.push(q);z.sort(function(T,W){return T.y-W.y});var G=!1;u=q==z[0];m=q==z[z.length-1];if(!u&&!m)for(u=1;u<z.length-1;u++)if(q==z[u]){m=z[u-1];u=z[u+1];y=N=t=(u.y-m.y-m.height-q.height)/2;break}for(u=0;u<z.length-1;u++){m=z[u];var E=z[u+1],P=q==m||q==E;E=E.y-m.y-m.height;G|=q==m;if(0==N&&0==
+I)N=E,I=1;else if(Math.abs(N-E)<=(P||1==u&&G?n:0))I+=1;else if(1<I&&G){z=z.slice(0,u+1);break}else if(3<=z.length-u&&!G)I=0,y=N=0!=t?t:0,z.splice(0,0==u?1:u),u=-1;else break;0!=y||P||(N=y=E)}3==z.length&&z[1]==q&&(y=0)}if(1<C.length){C.push(q);C.sort(function(T,W){return T.x-W.x});G=!1;u=q==C[0];m=q==C[C.length-1];if(!u&&!m)for(u=1;u<C.length-1;u++)if(q==C[u]){m=C[u-1];u=C[u+1];J=F=M=(u.x-m.x-m.width-q.width)/2;break}for(u=0;u<C.length-1;u++){m=C[u];E=C[u+1];P=q==m||q==E;E=E.x-m.x-m.width;G|=q==m;
+if(0==F&&0==p)F=E,p=1;else if(Math.abs(F-E)<=(P||1==u&&G?n:0))p+=1;else if(1<p&&G){C=C.slice(0,u+1);break}else if(3<=C.length-u&&!G)p=0,J=F=0!=M?M:0,C.splice(0,0==u?1:u),u=-1;else break;0!=J||P||(F=J=E)}3==C.length&&C[1]==q&&(J=0)}n=function(T,W,U,V){var l=[];if(V){V=H;var A=0}else V=0,A=H;l.push(new mxPoint(T.x-V,T.y-A));l.push(new mxPoint(T.x+V,T.y+A));l.push(T);l.push(W);l.push(new mxPoint(W.x-V,W.y-A));l.push(new mxPoint(W.x+V,W.y+A));if(null!=U)return U.points=l,U;T=new mxPolyline(l,mxConstants.GUIDE_COLOR,
+mxConstants.GUIDE_STROKEWIDTH);T.dialect=mxConstants.DIALECT_SVG;T.pointerEvents=!1;T.init(g.graph.getView().getOverlayPane());return T};F=function(T,W){if(T&&null!=g.guidesArrHor)for(T=0;T<g.guidesArrHor.length;T++)g.guidesArrHor[T].node.style.visibility="hidden";if(W&&null!=g.guidesArrVer)for(T=0;T<g.guidesArrVer.length;T++)g.guidesArrVer[T].node.style.visibility="hidden"};if(1<p&&p==C.length-1){p=[];M=g.guidesArrHor;c=[];K=0;u=C[0]==q?1:0;G=C[u].y+C[u].height;if(0<J)for(u=0;u<C.length-1;u++)m=
+C[u],E=C[u+1],q==m?(K=E.x-m.width-J,c.push(new mxPoint(K+m.width+H,G)),c.push(new mxPoint(E.x-H,G))):q==E?(c.push(new mxPoint(m.x+m.width+H,G)),K=m.x+m.width+J,c.push(new mxPoint(K-H,G))):(c.push(new mxPoint(m.x+m.width+H,G)),c.push(new mxPoint(E.x-H,G)));else m=C[0],u=C[2],K=m.x+m.width+(u.x-m.x-m.width-q.width)/2,c.push(new mxPoint(m.x+m.width+H,G)),c.push(new mxPoint(K-H,G)),c.push(new mxPoint(K+q.width+H,G)),c.push(new mxPoint(u.x-H,G));for(u=0;u<c.length;u+=2)C=c[u],J=c[u+1],C=n(C,J,null!=M?
+M[u/2]:null),C.node.style.visibility="visible",C.redraw(),p.push(C);for(u=c.length/2;null!=M&&u<M.length;u++)M[u].destroy();g.guidesArrHor=p;K-=d.x;c=!0}else F(!0);if(1<I&&I==z.length-1){p=[];M=g.guidesArrVer;e=[];D=0;u=z[0]==q?1:0;I=z[u].x+z[u].width;if(0<y)for(u=0;u<z.length-1;u++)m=z[u],E=z[u+1],q==m?(D=E.y-m.height-y,e.push(new mxPoint(I,D+m.height+H)),e.push(new mxPoint(I,E.y-H))):q==E?(e.push(new mxPoint(I,m.y+m.height+H)),D=m.y+m.height+y,e.push(new mxPoint(I,D-H))):(e.push(new mxPoint(I,m.y+
+m.height+H)),e.push(new mxPoint(I,E.y-H)));else m=z[0],u=z[2],D=m.y+m.height+(u.y-m.y-m.height-q.height)/2,e.push(new mxPoint(I,m.y+m.height+H)),e.push(new mxPoint(I,D-H)),e.push(new mxPoint(I,D+q.height+H)),e.push(new mxPoint(I,u.y-H));for(u=0;u<e.length;u+=2)C=e[u],J=e[u+1],C=n(C,J,null!=M?M[u/2]:null,!0),C.node.style.visibility="visible",C.redraw(),p.push(C);for(u=e.length/2;null!=M&&u<M.length;u++)M[u].destroy();g.guidesArrVer=p;D-=d.y;e=!0}else F(!1,!0)}if(c||e)return q=new mxPoint(K,D),z=b.call(this,
d,q,x,B),c&&!e?q.y=z.y:e&&!c&&(q.x=z.x),z.y!=q.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),z.x!=q.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),q;F(!0,!0);return b.apply(this,arguments)};var f=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(d){f.call(this,d);var v=this.guidesArrVer,x=this.guidesArrHor;if(null!=v)for(var B=0;B<v.length;B++)v[B].node.style.visibility=d?"visible":"hidden";if(null!=
x)for(B=0;B<x.length;B++)x[B].node.style.visibility=d?"visible":"hidden"};var k=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){k.call(this);var d=this.guidesArrVer,v=this.guidesArrHor;if(null!=d){for(var x=0;x<d.length;x++)d[x].destroy();this.guidesArrVer=null}if(null!=v){for(x=0;x<v.length;x++)v[x].destroy();this.guidesArrHor=null}}})();function mxRuler(b,f,k,d){function v(){var I=b.diagramContainer;g.style.top=I.offsetTop-K+"px";g.style.left=I.offsetLeft-K+"px";g.style.width=(k?0:I.offsetWidth)+K+"px";g.style.height=(k?I.offsetHeight:0)+K+"px"}function x(I,N,t){if(null!=B)return I;var p;return function(){var F=this,J=arguments,M=t&&!p;clearTimeout(p);p=setTimeout(function(){p=null;t||I.apply(F,J)},N);M&&I.apply(F,J)}}var B=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,
D=window.cancelAnimationFrame||window.mozCancelAnimationFrame,K=this.RULER_THICKNESS,c=this;this.unit=f;var e=Editor.isDarkMode()?{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"},g=document.createElement("div");g.style.position="absolute";this.updateStyle=mxUtils.bind(this,function(){e=Editor.isDarkMode()?
{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"};g.style.background=e.bkgClr;g.style[k?"borderRight":"borderBottom"]="0.5px solid "+e.strokeClr;g.style.borderLeft="0.5px solid "+e.strokeClr});this.updateStyle();document.body.appendChild(g);mxEvent.disableContextMenu(g);this.editorUiRefresh=b.refresh;b.refresh=
-function(I){c.editorUiRefresh.apply(b,arguments);v()};v();var q=document.createElement("canvas");q.width=g.offsetWidth;q.height=g.offsetHeight;g.style.overflow="hidden";q.style.position="relative";g.appendChild(q);var n=q.getContext("2d");this.ui=b;var m=b.editor.graph;this.graph=m;this.container=g;this.canvas=q;var z=function(I,N,t,p,F){I=Math.round(I);N=Math.round(N);t=Math.round(t);p=Math.round(p);n.beginPath();n.moveTo(I+.5,N+.5);n.lineTo(t+.5,p+.5);n.stroke();F&&(k?(n.save(),n.translate(I,N),
-n.rotate(-Math.PI/2),n.fillText(F,0,0),n.restore()):n.fillText(F,I,N))},C=function(){n.clearRect(0,0,q.width,q.height);n.beginPath();n.lineWidth=.7;n.strokeStyle=e.strokeClr;n.setLineDash([]);n.font="9px Arial";n.textAlign="center";var I=m.view.scale,N=m.view.getBackgroundPageBounds(),t=m.view.translate,p=m.pageVisible;t=p?K+(k?N.y-m.container.scrollTop:N.x-m.container.scrollLeft):K+(k?t.y*I-m.container.scrollTop:t.x*I-m.container.scrollLeft);var F=0;p&&(F=m.getPageLayout(),F=k?F.y*m.pageFormat.height:
-F.x*m.pageFormat.width);var J;switch(c.unit){case mxConstants.POINTS:var M=J=10;var H=[3,5,5,5,5,10,5,5,5,5];break;case mxConstants.MILLIMETERS:J=10;M=mxConstants.PIXELS_PER_MM;H=[5,3,3,3,3,6,3,3,3,3];break;case mxConstants.METERS:J=20;M=mxConstants.PIXELS_PER_MM;H=[5,3,3,3,3,6,3,3,3,3,10,3,3,3,3,6,3,3,3,3];break;case mxConstants.INCHES:J=.5>=I||4<=I?8:16,M=mxConstants.PIXELS_PER_INCH/J,H=[5,3,5,3,7,3,5,3,7,3,5,3,7,3,5,3]}var G=M;2<=I?G=M/(2*Math.floor(I/2)):.5>=I&&(G=M*Math.floor(1/I/2)*(c.unit==
-mxConstants.MILLIMETERS?2:1));M=null;N=p?Math.min(t+(k?N.height:N.width),k?q.height:q.width):k?q.height:q.width;if(p)if(n.fillStyle=e.outBkgClr,k){var E=t-K;0<E&&n.fillRect(0,K,K,E);N<q.height&&n.fillRect(0,N,K,q.height)}else E=t-K,0<E&&n.fillRect(K,0,E,K),N<q.width&&n.fillRect(N,0,q.width,K);n.fillStyle=e.fontClr;for(p=p?t:t%(G*I);p<=N;p+=G*I)if(E=Math.round((p-t)/I/G),!(p<K||E==M)){M=E;var P=null;0==E%J&&(P=c.formatText(F+E*G)+"");k?z(K-H[Math.abs(E)%J],p,K,p,P):z(p,K-H[Math.abs(E)%J],p,K,P)}n.lineWidth=
-1;z(k?0:K,k?K:0,K,K);n.fillStyle=e.cornerClr;n.fillRect(0,0,K,K)},u=-1,y=function(){null!=B?(null!=D&&D(u),u=B(C)):C()};this.drawRuler=y;this.sizeListener=f=x(function(){var I=m.container;k?(I=I.offsetHeight+K,q.height!=I&&(q.height=I,g.style.height=I+"px",y())):(I=I.offsetWidth+K,q.width!=I&&(q.width=I,g.style.width=I+"px",y()))},10);this.pageListener=function(){y()};this.scrollListener=d=x(function(){var I=k?m.container.scrollTop:m.container.scrollLeft;c.lastScroll!=I&&(c.lastScroll=I,y())},10);
-this.unitListener=function(I,N){c.setUnit(N.getProperty("unit"))};m.addListener(mxEvent.SIZE,f);m.container.addEventListener("scroll",d);m.view.addListener("unitChanged",this.unitListener);b.addListener("pageViewChanged",this.pageListener);b.addListener("pageScaleChanged",this.pageListener);b.addListener("pageFormatChanged",this.pageListener);this.setStyle=function(I){e=I;g.style.background=e.bkgClr;C()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=function(I,N,t,p){if(k&&4<I.height||
-!k&&4<I.width){if(null!=c.guidePart)try{n.putImageData(c.guidePart.imgData1,c.guidePart.x1,c.guidePart.y1),n.putImageData(c.guidePart.imgData2,c.guidePart.x2,c.guidePart.y2),n.putImageData(c.guidePart.imgData3,c.guidePart.x3,c.guidePart.y3)}catch(V){}var F=c.origGuideMove.apply(this,arguments);try{n.lineWidth=.5;n.strokeStyle=e.guideClr;n.setLineDash([2]);if(k){var J=I.y+F.y+K-this.graph.container.scrollTop;var M=0;var H=J+I.height/2;var G=K/2;var E=J+I.height;var P=0;var T=n.getImageData(M,J-1,K,
-3);z(M,J,K,J);J--;var W=n.getImageData(G,H-1,K,3);z(G,H,K,H);H--;var U=n.getImageData(P,E-1,K,3);z(P,E,K,E);E--}else J=0,M=I.x+F.x+K-this.graph.container.scrollLeft,H=K/2,G=M+I.width/2,E=0,P=M+I.width,T=n.getImageData(M-1,J,3,K),z(M,J,M,K),M--,W=n.getImageData(G-1,H,3,K),z(G,H,G,K),G--,U=n.getImageData(P-1,E,3,K),z(P,E,P,K),P--;if(null==c.guidePart||c.guidePart.x1!=M||c.guidePart.y1!=J)c.guidePart={imgData1:T,x1:M,y1:J,imgData2:W,x2:G,y2:H,imgData3:U,x3:P,y3:E}}catch(V){}}else F=c.origGuideMove.apply(this,
-arguments);return F};this.origGuideDestroy=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){var I=c.origGuideDestroy.apply(this,arguments);if(null!=c.guidePart)try{n.putImageData(c.guidePart.imgData1,c.guidePart.x1,c.guidePart.y1),n.putImageData(c.guidePart.imgData2,c.guidePart.x2,c.guidePart.y2),n.putImageData(c.guidePart.imgData3,c.guidePart.x3,c.guidePart.y3),c.guidePart=null}catch(N){}return I}}mxRuler.prototype.RULER_THICKNESS=14;mxRuler.prototype.unit=mxConstants.POINTS;
+function(I){c.editorUiRefresh.apply(b,arguments);v()};v();var q=document.createElement("canvas");q.width=g.offsetWidth;q.height=g.offsetHeight;g.style.overflow="hidden";q.style.position="relative";g.appendChild(q);var m=q.getContext("2d");this.ui=b;var n=b.editor.graph;this.graph=n;this.container=g;this.canvas=q;var z=function(I,N,t,p,F){I=Math.round(I);N=Math.round(N);t=Math.round(t);p=Math.round(p);m.beginPath();m.moveTo(I+.5,N+.5);m.lineTo(t+.5,p+.5);m.stroke();F&&(k?(m.save(),m.translate(I,N),
+m.rotate(-Math.PI/2),m.fillText(F,0,0),m.restore()):m.fillText(F,I,N))},C=function(){m.clearRect(0,0,q.width,q.height);m.beginPath();m.lineWidth=.7;m.strokeStyle=e.strokeClr;m.setLineDash([]);m.font="9px Arial";m.textAlign="center";var I=n.view.scale,N=n.view.getBackgroundPageBounds(),t=n.view.translate,p=n.pageVisible;t=p?K+(k?N.y-n.container.scrollTop:N.x-n.container.scrollLeft):K+(k?t.y*I-n.container.scrollTop:t.x*I-n.container.scrollLeft);var F=0;p&&(F=n.getPageLayout(),F=k?F.y*n.pageFormat.height:
+F.x*n.pageFormat.width);var J;switch(c.unit){case mxConstants.POINTS:var M=J=10;var H=[3,5,5,5,5,10,5,5,5,5];break;case mxConstants.MILLIMETERS:J=10;M=mxConstants.PIXELS_PER_MM;H=[5,3,3,3,3,6,3,3,3,3];break;case mxConstants.METERS:J=20;M=mxConstants.PIXELS_PER_MM;H=[5,3,3,3,3,6,3,3,3,3,10,3,3,3,3,6,3,3,3,3];break;case mxConstants.INCHES:J=.5>=I||4<=I?8:16,M=mxConstants.PIXELS_PER_INCH/J,H=[5,3,5,3,7,3,5,3,7,3,5,3,7,3,5,3]}var G=M;2<=I?G=M/(2*Math.floor(I/2)):.5>=I&&(G=M*Math.floor(1/I/2)*(c.unit==
+mxConstants.MILLIMETERS?2:1));M=null;N=p?Math.min(t+(k?N.height:N.width),k?q.height:q.width):k?q.height:q.width;if(p)if(m.fillStyle=e.outBkgClr,k){var E=t-K;0<E&&m.fillRect(0,K,K,E);N<q.height&&m.fillRect(0,N,K,q.height)}else E=t-K,0<E&&m.fillRect(K,0,E,K),N<q.width&&m.fillRect(N,0,q.width,K);m.fillStyle=e.fontClr;for(p=p?t:t%(G*I);p<=N;p+=G*I)if(E=Math.round((p-t)/I/G),!(p<K||E==M)){M=E;var P=null;0==E%J&&(P=c.formatText(F+E*G)+"");k?z(K-H[Math.abs(E)%J],p,K,p,P):z(p,K-H[Math.abs(E)%J],p,K,P)}m.lineWidth=
+1;z(k?0:K,k?K:0,K,K);m.fillStyle=e.cornerClr;m.fillRect(0,0,K,K)},u=-1,y=function(){null!=B?(null!=D&&D(u),u=B(C)):C()};this.drawRuler=y;this.sizeListener=f=x(function(){var I=n.container;k?(I=I.offsetHeight+K,q.height!=I&&(q.height=I,g.style.height=I+"px",y())):(I=I.offsetWidth+K,q.width!=I&&(q.width=I,g.style.width=I+"px",y()))},10);this.pageListener=function(){y()};this.scrollListener=d=x(function(){var I=k?n.container.scrollTop:n.container.scrollLeft;c.lastScroll!=I&&(c.lastScroll=I,y())},10);
+this.unitListener=function(I,N){c.setUnit(N.getProperty("unit"))};n.addListener(mxEvent.SIZE,f);n.container.addEventListener("scroll",d);n.view.addListener("unitChanged",this.unitListener);b.addListener("pageViewChanged",this.pageListener);b.addListener("pageScaleChanged",this.pageListener);b.addListener("pageFormatChanged",this.pageListener);this.setStyle=function(I){e=I;g.style.background=e.bkgClr;C()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=function(I,N,t,p){if(k&&4<I.height||
+!k&&4<I.width){if(null!=c.guidePart)try{m.putImageData(c.guidePart.imgData1,c.guidePart.x1,c.guidePart.y1),m.putImageData(c.guidePart.imgData2,c.guidePart.x2,c.guidePart.y2),m.putImageData(c.guidePart.imgData3,c.guidePart.x3,c.guidePart.y3)}catch(V){}var F=c.origGuideMove.apply(this,arguments);try{m.lineWidth=.5;m.strokeStyle=e.guideClr;m.setLineDash([2]);if(k){var J=I.y+F.y+K-this.graph.container.scrollTop;var M=0;var H=J+I.height/2;var G=K/2;var E=J+I.height;var P=0;var T=m.getImageData(M,J-1,K,
+3);z(M,J,K,J);J--;var W=m.getImageData(G,H-1,K,3);z(G,H,K,H);H--;var U=m.getImageData(P,E-1,K,3);z(P,E,K,E);E--}else J=0,M=I.x+F.x+K-this.graph.container.scrollLeft,H=K/2,G=M+I.width/2,E=0,P=M+I.width,T=m.getImageData(M-1,J,3,K),z(M,J,M,K),M--,W=m.getImageData(G-1,H,3,K),z(G,H,G,K),G--,U=m.getImageData(P-1,E,3,K),z(P,E,P,K),P--;if(null==c.guidePart||c.guidePart.x1!=M||c.guidePart.y1!=J)c.guidePart={imgData1:T,x1:M,y1:J,imgData2:W,x2:G,y2:H,imgData3:U,x3:P,y3:E}}catch(V){}}else F=c.origGuideMove.apply(this,
+arguments);return F};this.origGuideDestroy=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){var I=c.origGuideDestroy.apply(this,arguments);if(null!=c.guidePart)try{m.putImageData(c.guidePart.imgData1,c.guidePart.x1,c.guidePart.y1),m.putImageData(c.guidePart.imgData2,c.guidePart.x2,c.guidePart.y2),m.putImageData(c.guidePart.imgData3,c.guidePart.x3,c.guidePart.y3),c.guidePart=null}catch(N){}return I}}mxRuler.prototype.RULER_THICKNESS=14;mxRuler.prototype.unit=mxConstants.POINTS;
mxRuler.prototype.setUnit=function(b){this.unit=b;this.drawRuler()};mxRuler.prototype.formatText=function(b){switch(this.unit){case mxConstants.POINTS:return Math.round(b);case mxConstants.MILLIMETERS:return(b/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.METERS:return(b/(1E3*mxConstants.PIXELS_PER_MM)).toFixed(4);case mxConstants.INCHES:return(b/mxConstants.PIXELS_PER_INCH).toFixed(2)}};
mxRuler.prototype.destroy=function(){this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.graph.removeListener(this.sizeListener);this.graph.container.removeEventListener("scroll",this.scrollListener);this.graph.view.removeListener("unitChanged",this.unitListener);this.ui.removeListener("pageViewChanged",this.pageListener);this.ui.removeListener("pageScaleChanged",this.pageListener);this.ui.removeListener("pageFormatChanged",
this.pageListener);null!=this.container&&this.container.parentNode.removeChild(this.container)};
function mxDualRuler(b,f){var k=new mxPoint(mxRuler.prototype.RULER_THICKNESS,mxRuler.prototype.RULER_THICKNESS);this.editorUiGetDiagContOffset=b.getDiagramContainerOffset;b.getDiagramContainerOffset=function(){return k};this.editorUiRefresh=b.refresh;this.ui=b;this.origGuideMove=mxGuide.prototype.move;this.origGuideDestroy=mxGuide.prototype.destroy;this.vRuler=new mxRuler(b,f,!0);this.hRuler=new mxRuler(b,f,!1,!0);f=mxUtils.bind(this,function(d){var v=!1;mxEvent.addGestureListeners(d,mxUtils.bind(this,
function(x){v=null!=b.currentMenu;mxEvent.consume(x)}),null,mxUtils.bind(this,function(x){if(b.editor.graph.isEnabled()&&!b.editor.graph.isMouseDown&&(mxEvent.isTouchEvent(x)||mxEvent.isPopupTrigger(x))){b.editor.graph.popupMenuHandler.hideMenu();b.hideCurrentMenu();if(!mxEvent.isTouchEvent(x)||!v){var B=new mxPopupMenu(mxUtils.bind(this,function(c,e){b.menus.addMenuItems(c,["points","inches","millimeters","meters"],e)}));B.div.className+=" geMenubarMenu";B.smartSeparators=!0;B.showDisabled=!0;B.autoExpand=
!0;B.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(B,arguments);b.resetCurrentMenu();B.destroy()});var D=mxEvent.getClientX(x),K=mxEvent.getClientY(x);B.popup(D,K,null,x);b.setCurrentMenu(B,d)}mxEvent.consume(x)}}))});f(this.hRuler.container);f(this.vRuler.container);this.vRuler.drawRuler();this.hRuler.drawRuler()}mxDualRuler.prototype.updateStyle=function(){this.vRuler.updateStyle();this.hRuler.updateStyle();this.vRuler.drawRuler();this.hRuler.drawRuler()};
-mxDualRuler.prototype.setUnit=function(b){this.vRuler.setUnit(b);this.hRuler.setUnit(b)};mxDualRuler.prototype.setStyle=function(b){this.vRuler.setStyle(b);this.hRuler.setStyle(b)};mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(b){var f=null!=b.view&&null!=b.view.canvas?b.view.canvas.ownerSVGElement:null;if(null!=b.container&&null!=f){b.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){this.stopDrawing()}));var k=mxFreehand.prototype.NORMAL_SMOOTHING,d=null,v=[],x,B=[],D,K=!1,c=!0,e=!0,g=!0,q=!0,n=[],m=!1,z=!0,C=!1,u={size:5,thinning:.5,smoothing:.5,streamline:.5,start:{taper:0,cap:!0},end:{taper:0,cap:!0}},y=!0;this.setClosedPath=function(H){K=H};this.setAutoClose=function(H){c=H};this.setAutoInsert=
-function(H){e=H};this.setAutoScroll=function(H){g=H};this.setOpenFill=function(H){q=H};this.setStopClickEnabled=function(H){z=H};this.setSelectInserted=function(H){C=H};this.setSmoothing=function(H){k=H};this.setPerfectFreehandMode=function(H){y=H};this.isPerfectFreehandMode=function(){return y};this.setBrushSize=function(H){u.size=H};this.getBrushSize=function(){return u.size};var I=function(H){m=H;b.getRubberband().setEnabled(!H);b.graphHandler.setSelectEnabled(!H);b.graphHandler.setMoveEnabled(!H);
-b.container.style.cursor=H?"crosshair":"";b.fireEvent(new mxEventObject("freehandStateChanged"))};this.startDrawing=function(){I(!0)};this.isDrawing=function(){return m};var N=mxUtils.bind(this,function(H){if(d){var G=D.length,E=z&&0<B.length&&null!=D&&2>D.length;E||B.push.apply(B,D);D=[];B.push(null);v.push(d);d=null;(E||e)&&this.stopDrawing();e&&2<=G&&this.startDrawing();mxEvent.consume(H)}}),t=new mxCell;t.edge=!0;var p=function(){var H=b.getCurrentCellStyle(t);H=mxUtils.getValue(b.currentVertexStyle,
+mxDualRuler.prototype.setUnit=function(b){this.vRuler.setUnit(b);this.hRuler.setUnit(b)};mxDualRuler.prototype.setStyle=function(b){this.vRuler.setStyle(b);this.hRuler.setStyle(b)};mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(b){var f=null!=b.view&&null!=b.view.canvas?b.view.canvas.ownerSVGElement:null;if(null!=b.container&&null!=f){b.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){this.stopDrawing()}));var k=mxFreehand.prototype.NORMAL_SMOOTHING,d=null,v=[],x,B=[],D,K=!1,c=!0,e=!0,g=!0,q=!0,m=[],n=!1,z=!0,C=!1,u={size:5,thinning:.5,smoothing:.5,streamline:.5,start:{taper:0,cap:!0},end:{taper:0,cap:!0}},y=!0;this.setClosedPath=function(H){K=H};this.setAutoClose=function(H){c=H};this.setAutoInsert=
+function(H){e=H};this.setAutoScroll=function(H){g=H};this.setOpenFill=function(H){q=H};this.setStopClickEnabled=function(H){z=H};this.setSelectInserted=function(H){C=H};this.setSmoothing=function(H){k=H};this.setPerfectFreehandMode=function(H){y=H};this.isPerfectFreehandMode=function(){return y};this.setBrushSize=function(H){u.size=H};this.getBrushSize=function(){return u.size};var I=function(H){n=H;b.getRubberband().setEnabled(!H);b.graphHandler.setSelectEnabled(!H);b.graphHandler.setMoveEnabled(!H);
+b.container.style.cursor=H?"crosshair":"";b.fireEvent(new mxEventObject("freehandStateChanged"))};this.startDrawing=function(){I(!0)};this.isDrawing=function(){return n};var N=mxUtils.bind(this,function(H){if(d){var G=D.length,E=z&&0<B.length&&null!=D&&2>D.length;E||B.push.apply(B,D);D=[];B.push(null);v.push(d);d=null;(E||e)&&this.stopDrawing();e&&2<=G&&this.startDrawing();mxEvent.consume(H)}}),t=new mxCell;t.edge=!0;var p=function(){var H=b.getCurrentCellStyle(t);H=mxUtils.getValue(b.currentVertexStyle,
mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(H,mxConstants.STYLE_STROKECOLOR,"#000"));"default"==H&&(H=b.shapeForegroundColor);return H};this.createStyle=function(H){var G=";fillColor=none;";y&&(G=";lineShape=1;");return mxConstants.STYLE_SHAPE+"="+H+G};this.stopDrawing=function(){if(0<v.length){if(y){for(var H=[],G=0;G<B.length;G++)null!=B[G]&&H.push([B[G].x,B[G].y]);H=PerfectFreehand.getStroke(H,u);B=[];for(G=0;G<H.length;G++)B.push({x:H[G][0],y:H[G][1]});B.push(null)}H=B[0].x;var E=B[0].x,P=
B[0].y,T=B[0].y;for(G=1;G<B.length;G++)null!=B[G]&&(H=Math.max(H,B[G].x),E=Math.min(E,B[G].x),P=Math.max(P,B[G].y),T=Math.min(T,B[G].y));H-=E;P-=T;if(0<H&&0<P){var W=100/H,U=100/P;B.map(function(Q){if(null==Q)return Q;Q.x=(Q.x-E)*W;Q.y=(Q.y-T)*U;return Q});var V='<shape strokewidth="inherit"><foreground>',l=0;for(G=0;G<B.length;G++){var A=B[G];if(null==A){A=!1;l=B[l];var L=B[G-1];!K&&c&&(A=l.x-L.x,L=l.y-L.y,A=Math.sqrt(A*A+L*L)<=b.tolerance);if(K||A)V+='<line x="'+l.x.toFixed(2)+'" y="'+l.y.toFixed(2)+
'"/>';V+="</path>"+(q||K||A?"<fillstroke/>":"<stroke/>");l=G+1}else V=G==l?V+('<path><move x="'+A.x.toFixed(2)+'" y="'+A.y.toFixed(2)+'"/>'):V+('<line x="'+A.x.toFixed(2)+'" y="'+A.y.toFixed(2)+'"/>')}V+="</foreground></shape>";if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){G=this.createStyle("stencil("+Graph.compress(V)+")");V=b.view.scale;l=b.view.translate;G=new mxCell("",new mxGeometry(E/V-l.x,T/V-l.y,H/V,P/V),G);G.vertex=1;b.model.beginUpdate();try{G=b.addCell(G),b.fireEvent(new mxEventObject("cellsInserted",
-"cells",[G])),b.fireEvent(new mxEventObject("freehandInserted","cell",G))}finally{b.model.endUpdate()}C&&b.setSelectionCells([G])}}for(G=0;G<v.length;G++)v[G].parentNode.removeChild(v[G]);d=null;v=[];B=[]}I(!1)};b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(H,G){H=G.getProperty("eventName");G=G.getProperty("event");H==mxEvent.MOUSE_MOVE&&m&&(null!=G.sourceState&&G.sourceState.setCursor("crosshair"),G.consume())}));b.addMouseListener({mouseDown:mxUtils.bind(this,function(H,G){if(b.isEnabled()&&
-!b.isCellLocked(b.getDefaultParent())&&(H=G.getEvent(),m&&!mxEvent.isPopupTrigger(H)&&!mxEvent.isMultiTouchEvent(H))){var E=parseFloat(b.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1);E=Math.max(1,E*b.view.scale);var P=p();d=document.createElementNS("http://www.w3.org/2000/svg","path");d.setAttribute("fill",y?P:"none");d.setAttribute("stroke",P);d.setAttribute("stroke-width",E);"1"==b.currentVertexStyle[mxConstants.STYLE_DASHED]&&(P=b.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",
-P=P.split(" ").map(function(T){return parseFloat(T)*E}).join(" "),d.setAttribute("stroke-dasharray",P));n=[];H=F(H);J(H);x="M"+H.x+" "+H.y;B.push(H);D=[];d.setAttribute("d",y?PerfectFreehand.getSvgPathFromStroke([[H.x,H.y]],u):x);f.appendChild(d);G.consume()}}),mouseMove:mxUtils.bind(this,function(H,G){if(d&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){H=G.getEvent();H=F(H);J(H);var E=M(0);if(E)if(B.push(E),y){var P=[];for(E=0;E<B.length;E++)P.push([B[E].x,B[E].y]);D=[];for(var T=2;T<n.length;T+=
-2)E=M(T),P.push([E.x,E.y]),D.push(E);d.setAttribute("d",PerfectFreehand.getSvgPathFromStroke(P,u))}else{x+=" L"+E.x+" "+E.y;P="";D=[];for(T=2;T<n.length;T+=2)E=M(T),P+=" L"+E.x+" "+E.y,D.push(E);d.setAttribute("d",x+P)}g&&(E=b.view.translate,b.scrollRectToVisible((new mxRectangle(H.x-E.x,H.y-E.y)).grow(20)));G.consume()}}),mouseUp:mxUtils.bind(this,function(H,G){d&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(N(G.getEvent()),G.consume())})});var F=function(H){return mxUtils.convertPoint(b.container,
-mxEvent.getClientX(H),mxEvent.getClientY(H))},J=function(H){for(n.push(H);n.length>k;)n.shift()},M=function(H){var G=n.length;if(1===G%2||G>=k){var E=0,P=0,T,W=0;for(T=H;T<G;T++)W++,H=n[T],E+=H.x,P+=H.y;return{x:E/W,y:P/W}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;DrawioUser=function(b,f,k,d,v){this.id=b;this.email=f;this.displayName=k;this.pictureUrl=d;this.locale=v};DrawioComment=function(b,f,k,d,v,x,B){this.file=b;this.id=f;this.content=k;this.modifiedDate=d;this.createdDate=v;this.isResolved=x;this.user=B;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,f,k,d,v){f()};DrawioComment.prototype.editComment=function(b,f,k){f()};DrawioComment.prototype.deleteComment=function(b,f){b()};Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
+"cells",[G])),b.fireEvent(new mxEventObject("freehandInserted","cell",G))}finally{b.model.endUpdate()}C&&b.setSelectionCells([G])}}for(G=0;G<v.length;G++)v[G].parentNode.removeChild(v[G]);d=null;v=[];B=[]}I(!1)};b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(H,G){H=G.getProperty("eventName");G=G.getProperty("event");H==mxEvent.MOUSE_MOVE&&n&&(null!=G.sourceState&&G.sourceState.setCursor("crosshair"),G.consume())}));b.addMouseListener({mouseDown:mxUtils.bind(this,function(H,G){if(b.isEnabled()&&
+!b.isCellLocked(b.getDefaultParent())&&(H=G.getEvent(),n&&!mxEvent.isPopupTrigger(H)&&!mxEvent.isMultiTouchEvent(H))){var E=parseFloat(b.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1);E=Math.max(1,E*b.view.scale);var P=p();d=document.createElementNS("http://www.w3.org/2000/svg","path");d.setAttribute("fill",y?P:"none");d.setAttribute("stroke",P);d.setAttribute("stroke-width",E);"1"==b.currentVertexStyle[mxConstants.STYLE_DASHED]&&(P=b.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",
+P=P.split(" ").map(function(T){return parseFloat(T)*E}).join(" "),d.setAttribute("stroke-dasharray",P));m=[];H=F(H);J(H);x="M"+H.x+" "+H.y;B.push(H);D=[];d.setAttribute("d",y?PerfectFreehand.getSvgPathFromStroke([[H.x,H.y]],u):x);f.appendChild(d);G.consume()}}),mouseMove:mxUtils.bind(this,function(H,G){if(d&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){H=G.getEvent();H=F(H);J(H);var E=M(0);if(E)if(B.push(E),y){var P=[];for(E=0;E<B.length;E++)P.push([B[E].x,B[E].y]);D=[];for(var T=2;T<m.length;T+=
+2)E=M(T),P.push([E.x,E.y]),D.push(E);d.setAttribute("d",PerfectFreehand.getSvgPathFromStroke(P,u))}else{x+=" L"+E.x+" "+E.y;P="";D=[];for(T=2;T<m.length;T+=2)E=M(T),P+=" L"+E.x+" "+E.y,D.push(E);d.setAttribute("d",x+P)}g&&(E=b.view.translate,b.scrollRectToVisible((new mxRectangle(H.x-E.x,H.y-E.y)).grow(20)));G.consume()}}),mouseUp:mxUtils.bind(this,function(H,G){d&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(N(G.getEvent()),G.consume())})});var F=function(H){return mxUtils.convertPoint(b.container,
+mxEvent.getClientX(H),mxEvent.getClientY(H))},J=function(H){for(m.push(H);m.length>k;)m.shift()},M=function(H){var G=m.length;if(1===G%2||G>=k){var E=0,P=0,T,W=0;for(T=H;T<G;T++)W++,H=m[T],E+=H.x,P+=H.y;return{x:E/W,y:P/W}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;DrawioUser=function(b,f,k,d,v){this.id=b;this.email=f;this.displayName=k;this.pictureUrl=d;this.locale=v};DrawioComment=function(b,f,k,d,v,x,B){this.file=b;this.id=f;this.content=k;this.modifiedDate=d;this.createdDate=v;this.isResolved=x;this.user=B;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,f,k,d,v){f()};DrawioComment.prototype.editComment=function(b,f,k){f()};DrawioComment.prototype.deleteComment=function(b,f){b()};Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=Graph.prototype.defaultThemes["default-style2"];
LucidImporter={};
(function(){function h(u){if(u&&null!=LucidImporter.imgSrcRepl){var E=LucidImporter.imgSrcRepl.attMap;if(E[u])u=E[u];else{E=LucidImporter.imgSrcRepl.imgRepl;for(var F=0;F<E.length;F++){var t=E[F];u=u.replace(t.searchVal,t.replVal)}LucidImporter.hasExtImgs=!0}}return u}function y(u){lb="";try{if(u){var E=null;LucidImporter.advImpConfig&&LucidImporter.advImpConfig.fontMapping&&(E=LucidImporter.advImpConfig.fontMapping[u]);if(E){for(var F in E)lb+=F+"="+E[F]+";";return E.fontFamily?"font-family: "+E.fontFamily:
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index 76b2021f..7405b9a4 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -111,7 +111,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,ADD_ATTR:["target","content"]};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;
-window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -3203,21 +3203,21 @@ function(q,F,R){return Editor.extractGraphModel.apply(this,arguments)};var k=Edi
arguments);this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(q,F){if("undefined"===typeof window.MathJax&&!mxClient.IS_IE&&!mxClient.IS_IE11){q=null!=q?q:DRAW_MATH_URL+"/startup.js";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(T){try{MathJax.typesetClear([T]),MathJax.typeset([T]),Editor.onMathJaxDone()}catch(ba){MathJax.typesetClear([T]),null!=ba.retry?ba.retry.then(function(){MathJax.typesetPromise([T]).then(Editor.onMathJaxDone)}):
null!=window.console&&console.log("Error in MathJax: "+ba.toString())}};window.MathJax=null!=F?F:{options:{skipHtmlTags:{"[+]":["text"]}},loader:{load:["html"==urlParams["math-output"]?"output/chtml":"output/svg","input/tex","input/asciimath"]},startup:{pageReady:function(){for(var T=0;T<Editor.mathJaxQueue.length;T++)Editor.doMathJaxRender(Editor.mathJaxQueue[T])}}};Editor.MathJaxRender=function(T){"undefined"!==typeof MathJax&&"function"===typeof MathJax.typeset?Editor.doMathJaxRender(T):Editor.mathJaxQueue.push(T)};
Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.onMathJaxDone=function(){};var R=Editor.prototype.init;Editor.prototype.init=function(){R.apply(this,arguments);var T=mxUtils.bind(this,function(ba,ia){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)});this.graph.model.addListener(mxEvent.CHANGE,T);this.graph.addListener(mxEvent.REFRESH,T)};F=document.getElementsByTagName("script");if(null!=F&&0<F.length){var W=
-document.createElement("script");W.setAttribute("type","text/javascript");W.setAttribute("src",q);F[0].parentNode.appendChild(W)}}};Editor.prototype.csvToArray=function(q){if(0<q.length){var F="",R=[""],W=0,T=!0,ba;q=$jscomp.makeIterator(q);for(ba=q.next();!ba.done;ba=q.next())ba=ba.value,'"'===ba?(T&&ba===F&&(R[W]+=ba),T=!T):","===ba&&T?ba=R[++W]="":R[W]+=ba,F=ba;return R}return[]};Editor.prototype.getProxiedUrl=function(q){if(!this.isCorsEnabledForUrl(q)){var F=/(\.v(dx|sdx?))($|\?)/i.test(q)||
-/(\.vs(x|sx?))($|\?)/i.test(q);F=/\.png$/i.test(q)||/\.pdf$/i.test(q)||F;var R="t="+(new Date).getTime();q=PROXY_URL+"?url="+encodeURIComponent(q)+"&"+R+(F?"&base64=1":"")}return q};Editor.prototype.isCorsEnabledForUrl=function(q){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||q.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(q)||
-"https://raw.githubusercontent.com/"===q.substring(0,34)||"https://fonts.googleapis.com/"===q.substring(0,29)||"https://fonts.gstatic.com/"===q.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var q=new mxUrlConverter;q.updateBaseUrl();var F=q.convert,R=this;q.convert=function(W){if(null!=W){var T="http://"==W.substring(0,7)||"https://"==W.substring(0,8);T&&!navigator.onLine?W=Editor.svgBrokenImage.src:!T||W.substring(0,q.baseUrl.length)==q.baseUrl||R.crossOriginImages&&R.isCorsEnabledForUrl(W)?
-"chrome-extension://"==W.substring(0,19)||mxClient.IS_CHROMEAPP||(W=F.apply(this,arguments)):W=PROXY_URL+"?url="+encodeURIComponent(W)}return W};return q};Editor.createSvgDataUri=function(q){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(q)))};Editor.prototype.convertImageToDataUri=function(q,F){try{var R=!0,W=window.setTimeout(mxUtils.bind(this,function(){R=!1;F(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(q))mxUtils.get(q,mxUtils.bind(this,function(ba){window.clearTimeout(W);
-R&&F(Editor.createSvgDataUri(ba.getText()))}),function(){window.clearTimeout(W);R&&F(Editor.svgBrokenImage.src)});else{var T=new Image;this.crossOriginImages&&(T.crossOrigin="anonymous");T.onload=function(){window.clearTimeout(W);if(R)try{var ba=document.createElement("canvas"),ia=ba.getContext("2d");ba.height=T.height;ba.width=T.width;ia.drawImage(T,0,0);F(ba.toDataURL())}catch(ra){F(Editor.svgBrokenImage.src)}};T.onerror=function(){window.clearTimeout(W);R&&F(Editor.svgBrokenImage.src)};T.src=q}}catch(ba){F(Editor.svgBrokenImage.src)}};
-Editor.prototype.convertImages=function(q,F,R,W){null==W&&(W=this.createImageUrlConverter());var T=0,ba=R||{};R=mxUtils.bind(this,function(ia,ra){ia=q.getElementsByTagName(ia);for(var ta=0;ta<ia.length;ta++)mxUtils.bind(this,function(ma){try{if(null!=ma){var pa=W.convert(ma.getAttribute(ra));if(null!=pa&&"data:"!=pa.substring(0,5)){var za=ba[pa];null==za?(T++,this.convertImageToDataUri(pa,function(Ba){null!=Ba&&(ba[pa]=Ba,ma.setAttribute(ra,Ba));T--;0==T&&F(q)})):ma.setAttribute(ra,za)}else null!=
-pa&&ma.setAttribute(ra,pa)}}catch(Ba){}})(ia[ta])});R("image","xlink:href");R("img","src");0==T&&F(q)};Editor.base64Encode=function(q){for(var F="",R=0,W=q.length,T,ba,ia;R<W;){T=q.charCodeAt(R++)&255;if(R==W){F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4);F+="==";break}ba=q.charCodeAt(R++);if(R==W){F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>
-2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&15)<<2);F+="=";break}ia=q.charCodeAt(R++);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&15)<<2|(ia&192)>>
-6);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(ia&63)}return F};Editor.prototype.loadUrl=function(q,F,R,W,T,ba,ia,ra){try{var ta=!ia&&(W||/(\.png)($|\?)/i.test(q)||/(\.jpe?g)($|\?)/i.test(q)||/(\.gif)($|\?)/i.test(q)||/(\.pdf)($|\?)/i.test(q));T=null!=T?T:!0;var ma=mxUtils.bind(this,function(){mxUtils.get(q,mxUtils.bind(this,function(pa){if(200<=pa.getStatus()&&299>=pa.getStatus()){if(null!=F){var za=pa.getText();if(ta){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){pa=mxUtilsBinaryToArray(pa.request.responseBody).toArray();za=Array(pa.length);for(var Ba=0;Ba<pa.length;Ba++)za[Ba]=String.fromCharCode(pa[Ba]);za=za.join("")}ba=null!=ba?ba:"data:image/png;base64,";za=ba+Editor.base64Encode(za)}F(za)}}else null!=R&&(0==pa.getStatus()?R({message:mxResources.get("accessDenied")},pa):404==pa.getStatus()?R({code:pa.getStatus()},pa):R({message:mxResources.get("error")+" "+pa.getStatus()},pa))}),function(pa){null!=R&&
-R({message:mxResources.get("error")+" "+pa.getStatus()})},ta,this.timeout,function(){T&&null!=R&&R({code:App.ERROR_TIMEOUT,retry:ma})},ra)});ma()}catch(pa){null!=R&&R(pa)}};Editor.prototype.absoluteCssFonts=function(q){var F=null;if(null!=q){var R=q.split("url(");if(0<R.length){F=[R[0]];q=window.location.pathname;var W=null!=q?q.lastIndexOf("/"):-1;0<=W&&(q=q.substring(0,W+1));W=document.getElementsByTagName("base");var T=null;null!=W&&0<W.length&&(T=W[0].getAttribute("href"));for(var ba=1;ba<R.length;ba++)if(W=
-R[ba].indexOf(")"),0<W){var ia=Editor.trimCssUrl(R[ba].substring(0,W));this.graph.isRelativeUrl(ia)&&(ia=null!=T?T+ia:window.location.protocol+"//"+window.location.hostname+("/"==ia.charAt(0)?"":q)+ia);F.push('url("'+ia+'"'+R[ba].substring(W))}else F.push(R[ba])}else F=[q]}return null!=F?F.join(""):null};Editor.prototype.mapFontUrl=function(q,F,R){/^https?:\/\//.test(F)&&!this.isCorsEnabledForUrl(F)&&(F=PROXY_URL+"?url="+encodeURIComponent(F));R(q,F)};Editor.prototype.embedCssFonts=function(q,F){var R=
-q.split("url("),W=0;null==this.cachedFonts&&(this.cachedFonts={});var T=mxUtils.bind(this,function(){if(0==W){for(var ta=[R[0]],ma=1;ma<R.length;ma++){var pa=R[ma].indexOf(")");ta.push('url("');ta.push(this.cachedFonts[Editor.trimCssUrl(R[ma].substring(0,pa))]);ta.push('"'+R[ma].substring(pa))}F(ta.join(""))}});if(0<R.length){for(q=1;q<R.length;q++){var ba=R[q].indexOf(")"),ia=null,ra=R[q].indexOf("format(",ba);0<ra&&(ia=Editor.trimCssUrl(R[q].substring(ra+7,R[q].indexOf(")",ra))));mxUtils.bind(this,
-function(ta){if(null==this.cachedFonts[ta]){this.cachedFonts[ta]=ta;W++;var ma="application/x-font-ttf";if("svg"==ia||/(\.svg)($|\?)/i.test(ta))ma="image/svg+xml";else if("otf"==ia||"embedded-opentype"==ia||/(\.otf)($|\?)/i.test(ta))ma="application/x-font-opentype";else if("woff"==ia||/(\.woff)($|\?)/i.test(ta))ma="application/font-woff";else if("woff2"==ia||/(\.woff2)($|\?)/i.test(ta))ma="application/font-woff2";else if("eot"==ia||/(\.eot)($|\?)/i.test(ta))ma="application/vnd.ms-fontobject";else if("sfnt"==
-ia||/(\.sfnt)($|\?)/i.test(ta))ma="application/font-sfnt";this.mapFontUrl(ma,ta,mxUtils.bind(this,function(pa,za){this.loadUrl(za,mxUtils.bind(this,function(Ba){this.cachedFonts[ta]=Ba;W--;T()}),mxUtils.bind(this,function(Ba){W--;T()}),!0,null,"data:"+pa+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(R[q].substring(0,ba)),ia)}T()}else F(q)};Editor.prototype.loadFonts=function(q){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(F){this.resolvedFontCss=
+document.createElement("script");W.setAttribute("type","text/javascript");W.setAttribute("src",q);F[0].parentNode.appendChild(W)}}};Editor.prototype.csvToArray=function(q){if(0<q.length){var F="",R=[""],W=0,T=!0,ba;q=$jscomp.makeIterator(q);for(ba=q.next();!ba.done;ba=q.next())ba=ba.value,'"'===ba?(T&&ba===F&&(R[W]+=ba),T=!T):","===ba&&T?ba=R[++W]="":R[W]+=ba,F=ba;return R}return[]};Editor.prototype.getProxiedUrl=function(q){if((/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))&&
+!this.isCorsEnabledForUrl(q)){var F=/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q);F=/\.png$/i.test(q)||/\.pdf$/i.test(q)||F;var R="t="+(new Date).getTime();q=PROXY_URL+"?url="+encodeURIComponent(q)+"&"+R+(F?"&base64=1":"")}return q};Editor.prototype.isCorsEnabledForUrl=function(q){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||q.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
+return null!=this.corsRegExp&&this.corsRegExp.test(q)||"https://raw.githubusercontent.com/"===q.substring(0,34)||"https://fonts.googleapis.com/"===q.substring(0,29)||"https://fonts.gstatic.com/"===q.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var q=new mxUrlConverter;q.updateBaseUrl();var F=q.convert,R=this;q.convert=function(W){if(null!=W){var T="http://"==W.substring(0,7)||"https://"==W.substring(0,8);T&&!navigator.onLine?W=Editor.svgBrokenImage.src:!T||W.substring(0,q.baseUrl.length)==
+q.baseUrl||R.crossOriginImages&&R.isCorsEnabledForUrl(W)?"chrome-extension://"==W.substring(0,19)||mxClient.IS_CHROMEAPP||(W=F.apply(this,arguments)):W=PROXY_URL+"?url="+encodeURIComponent(W)}return W};return q};Editor.createSvgDataUri=function(q){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(q)))};Editor.prototype.convertImageToDataUri=function(q,F){try{var R=!0,W=window.setTimeout(mxUtils.bind(this,function(){R=!1;F(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(q))mxUtils.get(q,
+mxUtils.bind(this,function(ba){window.clearTimeout(W);R&&F(Editor.createSvgDataUri(ba.getText()))}),function(){window.clearTimeout(W);R&&F(Editor.svgBrokenImage.src)});else{var T=new Image;this.crossOriginImages&&(T.crossOrigin="anonymous");T.onload=function(){window.clearTimeout(W);if(R)try{var ba=document.createElement("canvas"),ia=ba.getContext("2d");ba.height=T.height;ba.width=T.width;ia.drawImage(T,0,0);F(ba.toDataURL())}catch(ra){F(Editor.svgBrokenImage.src)}};T.onerror=function(){window.clearTimeout(W);
+R&&F(Editor.svgBrokenImage.src)};T.src=q}}catch(ba){F(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(q,F,R,W){null==W&&(W=this.createImageUrlConverter());var T=0,ba=R||{};R=mxUtils.bind(this,function(ia,ra){ia=q.getElementsByTagName(ia);for(var ta=0;ta<ia.length;ta++)mxUtils.bind(this,function(ma){try{if(null!=ma){var pa=W.convert(ma.getAttribute(ra));if(null!=pa&&"data:"!=pa.substring(0,5)){var za=ba[pa];null==za?(T++,this.convertImageToDataUri(pa,function(Ba){null!=Ba&&(ba[pa]=
+Ba,ma.setAttribute(ra,Ba));T--;0==T&&F(q)})):ma.setAttribute(ra,za)}else null!=pa&&ma.setAttribute(ra,pa)}}catch(Ba){}})(ia[ta])});R("image","xlink:href");R("img","src");0==T&&F(q)};Editor.base64Encode=function(q){for(var F="",R=0,W=q.length,T,ba,ia;R<W;){T=q.charCodeAt(R++)&255;if(R==W){F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4);F+="==";break}ba=q.charCodeAt(R++);if(R==W){F+=
+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&15)<<2);F+="=";break}ia=q.charCodeAt(R++);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&
+15)<<2|(ia&192)>>6);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(ia&63)}return F};Editor.prototype.loadUrl=function(q,F,R,W,T,ba,ia,ra){try{var ta=!ia&&(W||/(\.png)($|\?)/i.test(q)||/(\.jpe?g)($|\?)/i.test(q)||/(\.gif)($|\?)/i.test(q)||/(\.pdf)($|\?)/i.test(q));T=null!=T?T:!0;var ma=mxUtils.bind(this,function(){mxUtils.get(q,mxUtils.bind(this,function(pa){if(200<=pa.getStatus()&&299>=pa.getStatus()){if(null!=F){var za=pa.getText();if(ta){if((9==document.documentMode||
+10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){pa=mxUtilsBinaryToArray(pa.request.responseBody).toArray();za=Array(pa.length);for(var Ba=0;Ba<pa.length;Ba++)za[Ba]=String.fromCharCode(pa[Ba]);za=za.join("")}ba=null!=ba?ba:"data:image/png;base64,";za=ba+Editor.base64Encode(za)}F(za)}}else null!=R&&(0==pa.getStatus()?R({message:mxResources.get("accessDenied")},pa):404==pa.getStatus()?R({code:pa.getStatus()},pa):R({message:mxResources.get("error")+" "+pa.getStatus()},pa))}),
+function(pa){null!=R&&R({message:mxResources.get("error")+" "+pa.getStatus()})},ta,this.timeout,function(){T&&null!=R&&R({code:App.ERROR_TIMEOUT,retry:ma})},ra)});ma()}catch(pa){null!=R&&R(pa)}};Editor.prototype.absoluteCssFonts=function(q){var F=null;if(null!=q){var R=q.split("url(");if(0<R.length){F=[R[0]];q=window.location.pathname;var W=null!=q?q.lastIndexOf("/"):-1;0<=W&&(q=q.substring(0,W+1));W=document.getElementsByTagName("base");var T=null;null!=W&&0<W.length&&(T=W[0].getAttribute("href"));
+for(var ba=1;ba<R.length;ba++)if(W=R[ba].indexOf(")"),0<W){var ia=Editor.trimCssUrl(R[ba].substring(0,W));this.graph.isRelativeUrl(ia)&&(ia=null!=T?T+ia:window.location.protocol+"//"+window.location.hostname+("/"==ia.charAt(0)?"":q)+ia);F.push('url("'+ia+'"'+R[ba].substring(W))}else F.push(R[ba])}else F=[q]}return null!=F?F.join(""):null};Editor.prototype.mapFontUrl=function(q,F,R){/^https?:\/\//.test(F)&&!this.isCorsEnabledForUrl(F)&&(F=PROXY_URL+"?url="+encodeURIComponent(F));R(q,F)};Editor.prototype.embedCssFonts=
+function(q,F){var R=q.split("url("),W=0;null==this.cachedFonts&&(this.cachedFonts={});var T=mxUtils.bind(this,function(){if(0==W){for(var ta=[R[0]],ma=1;ma<R.length;ma++){var pa=R[ma].indexOf(")");ta.push('url("');ta.push(this.cachedFonts[Editor.trimCssUrl(R[ma].substring(0,pa))]);ta.push('"'+R[ma].substring(pa))}F(ta.join(""))}});if(0<R.length){for(q=1;q<R.length;q++){var ba=R[q].indexOf(")"),ia=null,ra=R[q].indexOf("format(",ba);0<ra&&(ia=Editor.trimCssUrl(R[q].substring(ra+7,R[q].indexOf(")",ra))));
+mxUtils.bind(this,function(ta){if(null==this.cachedFonts[ta]){this.cachedFonts[ta]=ta;W++;var ma="application/x-font-ttf";if("svg"==ia||/(\.svg)($|\?)/i.test(ta))ma="image/svg+xml";else if("otf"==ia||"embedded-opentype"==ia||/(\.otf)($|\?)/i.test(ta))ma="application/x-font-opentype";else if("woff"==ia||/(\.woff)($|\?)/i.test(ta))ma="application/font-woff";else if("woff2"==ia||/(\.woff2)($|\?)/i.test(ta))ma="application/font-woff2";else if("eot"==ia||/(\.eot)($|\?)/i.test(ta))ma="application/vnd.ms-fontobject";
+else if("sfnt"==ia||/(\.sfnt)($|\?)/i.test(ta))ma="application/font-sfnt";this.mapFontUrl(ma,ta,mxUtils.bind(this,function(pa,za){this.loadUrl(za,mxUtils.bind(this,function(Ba){this.cachedFonts[ta]=Ba;W--;T()}),mxUtils.bind(this,function(Ba){W--;T()}),!0,null,"data:"+pa+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(R[q].substring(0,ba)),ia)}T()}else F(q)};Editor.prototype.loadFonts=function(q){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(F){this.resolvedFontCss=
F;null!=q&&q()})):null!=q&&q()};Editor.prototype.createGoogleFontCache=function(){var q={},F;for(F in Graph.fontMapping)Graph.isCssFontUrl(F)&&(q[F]=Graph.fontMapping[F]);return q};Editor.prototype.embedExtFonts=function(q){var F=this.graph.getCustomFonts();if(0<F.length){var R=[],W=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var T=mxUtils.bind(this,function(){0==W&&this.embedCssFonts(R.join(""),q)}),ba=0;ba<F.length;ba++)mxUtils.bind(this,function(ia,
ra){Graph.isCssFontUrl(ra)?null==this.cachedGoogleFonts[ra]?(W++,this.loadUrl(ra,mxUtils.bind(this,function(ta){this.cachedGoogleFonts[ra]=ta;R.push(ta+"\n");W--;T()}),mxUtils.bind(this,function(ta){W--;R.push("@import url("+ra+");\n");T()}))):R.push(this.cachedGoogleFonts[ra]+"\n"):R.push('@font-face {font-family: "'+ia+'";src: url("'+ra+'")}\n')})(F[ba].name,F[ba].url);T()}else q()};Editor.prototype.addMathCss=function(q){q=q.getElementsByTagName("defs");if(null!=q&&0<q.length)for(var F=document.getElementsByTagName("style"),
R=0;R<F.length;R++){var W=mxUtils.getTextContent(F[R]);0>W.indexOf("mxPageSelector")&&0<W.indexOf("MathJax")&&q[0].appendChild(F[R].cloneNode(!0))}};Editor.prototype.addFontCss=function(q,F){F=null!=F?F:this.absoluteCssFonts(this.fontCss);if(null!=F){var R=q.getElementsByTagName("defs"),W=q.ownerDocument;0==R.length?(R=null!=W.createElementNS?W.createElementNS(mxConstants.NS_SVG,"defs"):W.createElement("defs"),null!=q.firstChild?q.insertBefore(R,q.firstChild):q.appendChild(R)):R=R[0];q=null!=W.createElementNS?
@@ -3383,7 +3383,7 @@ function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.u
this.shadowVisible)}}else da.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var ja=document.createElement("canvas"),ka=new Image;ka.onload=function(){try{ja.getContext("2d").drawImage(ka,
0,0);var q=ja.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=q&&6<q.length}catch(F){}};ka.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(q){}Editor.prototype.useCanvasForExport=!1})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,k,m){m.ui=e.ui;return k};b.afterDecode=function(e,k,m){m.previousColor=m.color;m.previousImage=m.image;m.previousFormat=m.format;null!=m.foldingEnabled&&(m.foldingEnabled=!m.foldingEnabled);null!=m.mathEnabled&&(m.mathEnabled=!m.mathEnabled);null!=m.shadowVisible&&(m.shadowVisible=!m.shadowVisible);return m};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,k,m){m.ui=e.ui;return k};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,k,m){m.ui=e.ui;return k};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&
"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,
mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(d,f,g,x,z,u,H){u=null!=u?u:0<=d.indexOf("NetworkError")||0<=d.indexOf("SecurityError")||0<=d.indexOf("NS_ERROR_FAILURE")||0<=d.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -3442,21 +3442,21 @@ null,null,!1,"pdf"==f);var oa="",aa="";if(qa.width*qa.height>MAX_AREA||g.length>
(u="#ffffff"):u=mxConstants.NONE;z={globalVars:O.getExportVariables()};C&&(z.grid={size:O.gridSize,steps:O.view.gridSteps,color:O.view.gridColor});Graph.translateDiagram&&(z.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+f+oa+aa+"&bg="+(null!=u?u:mxConstants.NONE)+"&base64="+x+"&embedXml="+G+"&xml="+encodeURIComponent(g)+(null!=d?"&filename="+encodeURIComponent(d):"")+"&extras="+encodeURIComponent(JSON.stringify(z))+(null!=H?"&scale="+H:"")+(null!=K?"&border="+
K:"")+(U&&isFinite(U)?"&w="+U:"")+(Y&&isFinite(Y)?"&h="+Y:""))};EditorUi.prototype.setMode=function(d,f){this.mode=d};EditorUi.prototype.loadDescriptor=function(d,f,g){var x=window.location.hash,z=mxUtils.bind(this,function(H){var K=null!=d.data?d.data:"";null!=H&&0<H.length&&(0<K.length&&(K+="\n"),K+=H);H=new LocalFile(this,"csv"!=d.format&&0<K.length?K:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);H.getHash=function(){return x};this.fileLoaded(H);
"csv"==d.format&&this.importCsv(K,mxUtils.bind(this,function(Y){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=d.update){var C=null!=d.interval?parseInt(d.interval):6E4,G=null,V=mxUtils.bind(this,function(){var Y=this.currentPage;mxUtils.post(d.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(O){Y===this.currentPage&&(200<=O.getStatus()&&300>=O.getStatus()?(this.updateDiagram(O.getText()),U()):
-this.handleError({message:mxResources.get("error")+" "+O.getStatus()}))}),mxUtils.bind(this,function(O){this.handleError(O)}))}),U=mxUtils.bind(this,function(){window.clearTimeout(G);G=window.setTimeout(V,C)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){U();V()}));U();V()}null!=f&&f()});if(null!=d.url&&0<d.url.length){var u=d.url;if(/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))u=this.editor.getProxiedUrl(u);this.editor.loadUrl(u,
-mxUtils.bind(this,function(H){z(H)}),mxUtils.bind(this,function(H){null!=g&&g(H)}))}else z("")};EditorUi.prototype.updateDiagram=function(d){function f(J){var Z=new mxCellOverlay(J.image||z.warningImage,J.tooltip,J.align,J.valign,J.offset);Z.addListener(mxEvent.CLICK,function(P,da){x.alert(J.tooltip)});return Z}var g=null,x=this;if(null!=d&&0<d.length&&(g=mxUtils.parseXml(d),d=null!=g?g.documentElement:null,null!=d&&"updates"==d.nodeName)){var z=this.editor.graph,u=z.getModel();u.beginUpdate();var H=
-null;try{for(d=d.firstChild;null!=d;){if("update"==d.nodeName){var K=u.getCell(d.getAttribute("id"));if(null!=K){try{var C=d.getAttribute("value");if(null!=C){var G=mxUtils.parseXml(C).documentElement;if(null!=G)if("1"==G.getAttribute("replace-value"))u.setValue(K,G);else for(var V=G.attributes,U=0;U<V.length;U++)z.setAttributeForCell(K,V[U].nodeName,0<V[U].nodeValue.length?V[U].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+K.id+": "+J)}try{var Y=d.getAttribute("style");
-null!=Y&&z.model.setStyle(K,Y)}catch(J){null!=window.console&&console.log("Error in style for "+K.id+": "+J)}try{var O=d.getAttribute("icon");if(null!=O){var qa=0<O.length?JSON.parse(O):null;null!=qa&&qa.append||z.removeCellOverlays(K);null!=qa&&z.addCellOverlay(K,f(qa))}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}try{var oa=d.getAttribute("geometry");if(null!=oa){oa=JSON.parse(oa);var aa=z.getCellGeometry(K);if(null!=aa){aa=aa.clone();for(key in oa){var ca=parseFloat(oa[key]);
-"dx"==key?aa.x+=ca:"dy"==key?aa.y+=ca:"dw"==key?aa.width+=ca:"dh"==key?aa.height+=ca:aa[key]=parseFloat(oa[key])}z.model.setGeometry(K,aa)}}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}}}else if("model"==d.nodeName){for(var fa=d.firstChild;null!=fa&&fa.nodeType!=mxConstants.NODETYPE_ELEMENT;)fa=fa.nextSibling;null!=fa&&(new mxCodec(d.firstChild)).decode(fa,u)}else if("view"==d.nodeName){if(d.hasAttribute("scale")&&(z.view.scale=parseFloat(d.getAttribute("scale"))),
-d.hasAttribute("dx")||d.hasAttribute("dy"))z.view.translate=new mxPoint(parseFloat(d.getAttribute("dx")||0),parseFloat(d.getAttribute("dy")||0))}else"fit"==d.nodeName&&(H=d.hasAttribute("max-scale")?parseFloat(d.getAttribute("max-scale")):1);d=d.nextSibling}}finally{u.endUpdate()}null!=H&&this.chromelessResize&&this.chromelessResize(!0,H)}return g};EditorUi.prototype.getCopyFilename=function(d,f){var g=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;d="";var x=g.lastIndexOf(".");0<=
-x&&(d=g.substring(x),g=g.substring(0,x));if(f){f=g;var z=new Date;g=z.getFullYear();x=z.getMonth()+1;var u=z.getDate(),H=z.getHours(),K=z.getMinutes();z=z.getSeconds();g=f+(" "+(g+"-"+x+"-"+u+"-"+H+"-"+K+"-"+z))}return g=mxResources.get("copyOf",[g])+d};EditorUi.prototype.fileLoaded=function(d,f){var g=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var x=!1;this.hideDialog();null!=g&&(EditorUi.debug("File.closed",[g]),g.removeListener(this.descriptorChangedListener),
-g.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var z=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=g&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!f&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));
-this.editor.setStatus("");this.updateUi();f||this.showSplash()});if(null!=d)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(d);d.addListener("descriptorChanged",this.descriptorChangedListener);d.addListener("contentChanged",this.descriptorChangedListener);d.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(d.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();
-this.updateUi();d.isEditable()?d.isModified()?(d.addUnsavedStatus(),null!=d.backupPatch&&d.patch([d.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&
-this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));x=!0;if(!this.isOffline()&&null!=d.getMode()){var u="1"==urlParams.sketch?"sketch":uiTheme;if(null==u)u="default";else if("sketch"==u||"min"==u)u+=Editor.isDarkMode()?"-dark":"-light";EditorUi.logEvent({category:d.getMode().toUpperCase()+"-OPEN-FILE-"+d.getHash(),action:"size_"+d.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+u})}EditorUi.debug("File.opened",[d]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));
-if(this.editor.editable&&this.mode==d.getMode()&&d.getMode()!=App.MODE_DEVICE&&null!=d.getMode())try{this.addRecent({id:d.getHash(),title:d.getTitle(),mode:d.getMode()})}catch(H){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(H){}}catch(H){this.fileLoadedError=H;if(null!=d)try{d.close()}catch(K){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=d?d.getHash():"none"),action:"message_"+H.message,label:"stack_"+
-H.stack})}catch(K){}d=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=g?this.fileLoaded(g)||z():z()});f?d():this.handleError(H,mxResources.get("errorLoadingFile"),d,!0,null,null,!0)}else z();return x};EditorUi.prototype.getHashValueForPages=function(d,f){var g=0,x=new mxGraphModel,z=new mxCodec;null!=f&&(f.byteCount=0,f.attrCount=0,f.eltCount=0,f.nodeCount=0);for(var u=0;u<d.length;u++){this.updatePageRoot(d[u]);
-var H=d[u].node.cloneNode(!1);H.removeAttribute("name");x.root=d[u].root;var K=z.encode(x);this.editor.graph.saveViewState(d[u].viewState,K,!0);K.removeAttribute("pageWidth");K.removeAttribute("pageHeight");H.appendChild(K);null!=f&&(f.eltCount+=H.getElementsByTagName("*").length,f.nodeCount+=H.getElementsByTagName("mxCell").length);g=(g<<5)-g+this.hashValue(H,function(C,G,V,U){return!U||"mxGeometry"!=C.nodeName&&"mxPoint"!=C.nodeName||"x"!=G&&"y"!=G&&"width"!=G&&"height"!=G?U&&"mxCell"==C.nodeName&&
-"previous"==G?null:V:Math.round(V)},f)<<0}return g};EditorUi.prototype.hashValue=function(d,f,g){var x=0;if(null!=d&&"object"===typeof d&&"number"===typeof d.nodeType&&"string"===typeof d.nodeName&&"function"===typeof d.getAttribute){null!=d.nodeName&&(x^=this.hashValue(d.nodeName,f,g));if(null!=d.attributes){null!=g&&(g.attrCount+=d.attributes.length);for(var z=0;z<d.attributes.length;z++){var u=d.attributes[z].name,H=null!=f?f(d,u,d.attributes[z].value,!0):d.attributes[z].value;null!=H&&(x^=this.hashValue(u,
+this.handleError({message:mxResources.get("error")+" "+O.getStatus()}))}),mxUtils.bind(this,function(O){this.handleError(O)}))}),U=mxUtils.bind(this,function(){window.clearTimeout(G);G=window.setTimeout(V,C)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){U();V()}));U();V()}null!=f&&f()});if(null!=d.url&&0<d.url.length){var u=this.editor.getProxiedUrl(d.url);this.editor.loadUrl(u,mxUtils.bind(this,function(H){z(H)}),mxUtils.bind(this,function(H){null!=g&&g(H)}))}else z("")};
+EditorUi.prototype.updateDiagram=function(d){function f(J){var Z=new mxCellOverlay(J.image||z.warningImage,J.tooltip,J.align,J.valign,J.offset);Z.addListener(mxEvent.CLICK,function(P,da){x.alert(J.tooltip)});return Z}var g=null,x=this;if(null!=d&&0<d.length&&(g=mxUtils.parseXml(d),d=null!=g?g.documentElement:null,null!=d&&"updates"==d.nodeName)){var z=this.editor.graph,u=z.getModel();u.beginUpdate();var H=null;try{for(d=d.firstChild;null!=d;){if("update"==d.nodeName){var K=u.getCell(d.getAttribute("id"));
+if(null!=K){try{var C=d.getAttribute("value");if(null!=C){var G=mxUtils.parseXml(C).documentElement;if(null!=G)if("1"==G.getAttribute("replace-value"))u.setValue(K,G);else for(var V=G.attributes,U=0;U<V.length;U++)z.setAttributeForCell(K,V[U].nodeName,0<V[U].nodeValue.length?V[U].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+K.id+": "+J)}try{var Y=d.getAttribute("style");null!=Y&&z.model.setStyle(K,Y)}catch(J){null!=window.console&&console.log("Error in style for "+
+K.id+": "+J)}try{var O=d.getAttribute("icon");if(null!=O){var qa=0<O.length?JSON.parse(O):null;null!=qa&&qa.append||z.removeCellOverlays(K);null!=qa&&z.addCellOverlay(K,f(qa))}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}try{var oa=d.getAttribute("geometry");if(null!=oa){oa=JSON.parse(oa);var aa=z.getCellGeometry(K);if(null!=aa){aa=aa.clone();for(key in oa){var ca=parseFloat(oa[key]);"dx"==key?aa.x+=ca:"dy"==key?aa.y+=ca:"dw"==key?aa.width+=ca:"dh"==key?aa.height+=
+ca:aa[key]=parseFloat(oa[key])}z.model.setGeometry(K,aa)}}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}}}else if("model"==d.nodeName){for(var fa=d.firstChild;null!=fa&&fa.nodeType!=mxConstants.NODETYPE_ELEMENT;)fa=fa.nextSibling;null!=fa&&(new mxCodec(d.firstChild)).decode(fa,u)}else if("view"==d.nodeName){if(d.hasAttribute("scale")&&(z.view.scale=parseFloat(d.getAttribute("scale"))),d.hasAttribute("dx")||d.hasAttribute("dy"))z.view.translate=new mxPoint(parseFloat(d.getAttribute("dx")||
+0),parseFloat(d.getAttribute("dy")||0))}else"fit"==d.nodeName&&(H=d.hasAttribute("max-scale")?parseFloat(d.getAttribute("max-scale")):1);d=d.nextSibling}}finally{u.endUpdate()}null!=H&&this.chromelessResize&&this.chromelessResize(!0,H)}return g};EditorUi.prototype.getCopyFilename=function(d,f){var g=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;d="";var x=g.lastIndexOf(".");0<=x&&(d=g.substring(x),g=g.substring(0,x));if(f){f=g;var z=new Date;g=z.getFullYear();x=z.getMonth()+1;var u=
+z.getDate(),H=z.getHours(),K=z.getMinutes();z=z.getSeconds();g=f+(" "+(g+"-"+x+"-"+u+"-"+H+"-"+K+"-"+z))}return g=mxResources.get("copyOf",[g])+d};EditorUi.prototype.fileLoaded=function(d,f){var g=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var x=!1;this.hideDialog();null!=g&&(EditorUi.debug("File.closed",[g]),g.removeListener(this.descriptorChangedListener),g.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var z=mxUtils.bind(this,
+function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=g&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!f&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();f||this.showSplash()});if(null!=d)try{mxClient.IS_SF&&
+"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(d);d.addListener("descriptorChanged",this.descriptorChangedListener);d.addListener("contentChanged",this.descriptorChangedListener);d.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(d.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();d.isEditable()?d.isModified()?(d.addUnsavedStatus(),null!=d.backupPatch&&
+d.patch([d.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));
+x=!0;if(!this.isOffline()&&null!=d.getMode()){var u="1"==urlParams.sketch?"sketch":uiTheme;if(null==u)u="default";else if("sketch"==u||"min"==u)u+=Editor.isDarkMode()?"-dark":"-light";EditorUi.logEvent({category:d.getMode().toUpperCase()+"-OPEN-FILE-"+d.getHash(),action:"size_"+d.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+u})}EditorUi.debug("File.opened",[d]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==
+d.getMode()&&d.getMode()!=App.MODE_DEVICE&&null!=d.getMode())try{this.addRecent({id:d.getHash(),title:d.getTitle(),mode:d.getMode()})}catch(H){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(H){}}catch(H){this.fileLoadedError=H;if(null!=d)try{d.close()}catch(K){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=d?d.getHash():"none"),action:"message_"+H.message,label:"stack_"+H.stack})}catch(K){}d=mxUtils.bind(this,
+function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=g?this.fileLoaded(g)||z():z()});f?d():this.handleError(H,mxResources.get("errorLoadingFile"),d,!0,null,null,!0)}else z();return x};EditorUi.prototype.getHashValueForPages=function(d,f){var g=0,x=new mxGraphModel,z=new mxCodec;null!=f&&(f.byteCount=0,f.attrCount=0,f.eltCount=0,f.nodeCount=0);for(var u=0;u<d.length;u++){this.updatePageRoot(d[u]);var H=
+d[u].node.cloneNode(!1);H.removeAttribute("name");x.root=d[u].root;var K=z.encode(x);this.editor.graph.saveViewState(d[u].viewState,K,!0);K.removeAttribute("pageWidth");K.removeAttribute("pageHeight");H.appendChild(K);null!=f&&(f.eltCount+=H.getElementsByTagName("*").length,f.nodeCount+=H.getElementsByTagName("mxCell").length);g=(g<<5)-g+this.hashValue(H,function(C,G,V,U){return!U||"mxGeometry"!=C.nodeName&&"mxPoint"!=C.nodeName||"x"!=G&&"y"!=G&&"width"!=G&&"height"!=G?U&&"mxCell"==C.nodeName&&"previous"==
+G?null:V:Math.round(V)},f)<<0}return g};EditorUi.prototype.hashValue=function(d,f,g){var x=0;if(null!=d&&"object"===typeof d&&"number"===typeof d.nodeType&&"string"===typeof d.nodeName&&"function"===typeof d.getAttribute){null!=d.nodeName&&(x^=this.hashValue(d.nodeName,f,g));if(null!=d.attributes){null!=g&&(g.attrCount+=d.attributes.length);for(var z=0;z<d.attributes.length;z++){var u=d.attributes[z].name,H=null!=f?f(d,u,d.attributes[z].value,!0):d.attributes[z].value;null!=H&&(x^=this.hashValue(u,
f,g)+this.hashValue(H,f,g))}}if(null!=d.childNodes)for(z=0;z<d.childNodes.length;z++)x=(x<<5)-x+this.hashValue(d.childNodes[z],f,g)<<0}else if(null!=d&&"function"!==typeof d){d=String(d);f=0;null!=g&&(g.byteCount+=d.length);for(z=0;z<d.length;z++)f=(f<<5)-f+d.charCodeAt(z)<<0;x^=f}return x};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(d,f,g,x,z,u,H){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||
mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(d){null==d&&(d=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,d,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(d){var f=mxUtils.createXmlDocument(),g=f.createElement("mxlibrary");mxUtils.setTextContent(g,JSON.stringify(d));f.appendChild(g);
return mxUtils.getXml(f)};EditorUi.prototype.closeLibrary=function(d){null!=d&&(this.removeLibrarySidebar(d.getHash()),d.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(d.getHash()),".scratchpad"==d.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(d){var f=this.sidebar.palettes[d];if(null!=f){for(var g=0;g<f.length;g++)f[g].parentNode.removeChild(f[g]);delete this.sidebar.palettes[d]}};EditorUi.prototype.repositionLibrary=function(d){var f=this.sidebar.container;
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index f9690fcb..18bb99e7 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -111,7 +111,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,ADD_ATTR:["target","content"]};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;
-window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.2.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -3203,21 +3203,21 @@ function(q,F,R){return Editor.extractGraphModel.apply(this,arguments)};var k=Edi
arguments);this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(q,F){if("undefined"===typeof window.MathJax&&!mxClient.IS_IE&&!mxClient.IS_IE11){q=null!=q?q:DRAW_MATH_URL+"/startup.js";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(T){try{MathJax.typesetClear([T]),MathJax.typeset([T]),Editor.onMathJaxDone()}catch(ba){MathJax.typesetClear([T]),null!=ba.retry?ba.retry.then(function(){MathJax.typesetPromise([T]).then(Editor.onMathJaxDone)}):
null!=window.console&&console.log("Error in MathJax: "+ba.toString())}};window.MathJax=null!=F?F:{options:{skipHtmlTags:{"[+]":["text"]}},loader:{load:["html"==urlParams["math-output"]?"output/chtml":"output/svg","input/tex","input/asciimath"]},startup:{pageReady:function(){for(var T=0;T<Editor.mathJaxQueue.length;T++)Editor.doMathJaxRender(Editor.mathJaxQueue[T])}}};Editor.MathJaxRender=function(T){"undefined"!==typeof MathJax&&"function"===typeof MathJax.typeset?Editor.doMathJaxRender(T):Editor.mathJaxQueue.push(T)};
Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.onMathJaxDone=function(){};var R=Editor.prototype.init;Editor.prototype.init=function(){R.apply(this,arguments);var T=mxUtils.bind(this,function(ba,ia){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)});this.graph.model.addListener(mxEvent.CHANGE,T);this.graph.addListener(mxEvent.REFRESH,T)};F=document.getElementsByTagName("script");if(null!=F&&0<F.length){var W=
-document.createElement("script");W.setAttribute("type","text/javascript");W.setAttribute("src",q);F[0].parentNode.appendChild(W)}}};Editor.prototype.csvToArray=function(q){if(0<q.length){var F="",R=[""],W=0,T=!0,ba;q=$jscomp.makeIterator(q);for(ba=q.next();!ba.done;ba=q.next())ba=ba.value,'"'===ba?(T&&ba===F&&(R[W]+=ba),T=!T):","===ba&&T?ba=R[++W]="":R[W]+=ba,F=ba;return R}return[]};Editor.prototype.getProxiedUrl=function(q){if(!this.isCorsEnabledForUrl(q)){var F=/(\.v(dx|sdx?))($|\?)/i.test(q)||
-/(\.vs(x|sx?))($|\?)/i.test(q);F=/\.png$/i.test(q)||/\.pdf$/i.test(q)||F;var R="t="+(new Date).getTime();q=PROXY_URL+"?url="+encodeURIComponent(q)+"&"+R+(F?"&base64=1":"")}return q};Editor.prototype.isCorsEnabledForUrl=function(q){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||q.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(q)||
-"https://raw.githubusercontent.com/"===q.substring(0,34)||"https://fonts.googleapis.com/"===q.substring(0,29)||"https://fonts.gstatic.com/"===q.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var q=new mxUrlConverter;q.updateBaseUrl();var F=q.convert,R=this;q.convert=function(W){if(null!=W){var T="http://"==W.substring(0,7)||"https://"==W.substring(0,8);T&&!navigator.onLine?W=Editor.svgBrokenImage.src:!T||W.substring(0,q.baseUrl.length)==q.baseUrl||R.crossOriginImages&&R.isCorsEnabledForUrl(W)?
-"chrome-extension://"==W.substring(0,19)||mxClient.IS_CHROMEAPP||(W=F.apply(this,arguments)):W=PROXY_URL+"?url="+encodeURIComponent(W)}return W};return q};Editor.createSvgDataUri=function(q){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(q)))};Editor.prototype.convertImageToDataUri=function(q,F){try{var R=!0,W=window.setTimeout(mxUtils.bind(this,function(){R=!1;F(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(q))mxUtils.get(q,mxUtils.bind(this,function(ba){window.clearTimeout(W);
-R&&F(Editor.createSvgDataUri(ba.getText()))}),function(){window.clearTimeout(W);R&&F(Editor.svgBrokenImage.src)});else{var T=new Image;this.crossOriginImages&&(T.crossOrigin="anonymous");T.onload=function(){window.clearTimeout(W);if(R)try{var ba=document.createElement("canvas"),ia=ba.getContext("2d");ba.height=T.height;ba.width=T.width;ia.drawImage(T,0,0);F(ba.toDataURL())}catch(ra){F(Editor.svgBrokenImage.src)}};T.onerror=function(){window.clearTimeout(W);R&&F(Editor.svgBrokenImage.src)};T.src=q}}catch(ba){F(Editor.svgBrokenImage.src)}};
-Editor.prototype.convertImages=function(q,F,R,W){null==W&&(W=this.createImageUrlConverter());var T=0,ba=R||{};R=mxUtils.bind(this,function(ia,ra){ia=q.getElementsByTagName(ia);for(var ta=0;ta<ia.length;ta++)mxUtils.bind(this,function(ma){try{if(null!=ma){var pa=W.convert(ma.getAttribute(ra));if(null!=pa&&"data:"!=pa.substring(0,5)){var za=ba[pa];null==za?(T++,this.convertImageToDataUri(pa,function(Ba){null!=Ba&&(ba[pa]=Ba,ma.setAttribute(ra,Ba));T--;0==T&&F(q)})):ma.setAttribute(ra,za)}else null!=
-pa&&ma.setAttribute(ra,pa)}}catch(Ba){}})(ia[ta])});R("image","xlink:href");R("img","src");0==T&&F(q)};Editor.base64Encode=function(q){for(var F="",R=0,W=q.length,T,ba,ia;R<W;){T=q.charCodeAt(R++)&255;if(R==W){F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4);F+="==";break}ba=q.charCodeAt(R++);if(R==W){F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>
-2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&15)<<2);F+="=";break}ia=q.charCodeAt(R++);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&15)<<2|(ia&192)>>
-6);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(ia&63)}return F};Editor.prototype.loadUrl=function(q,F,R,W,T,ba,ia,ra){try{var ta=!ia&&(W||/(\.png)($|\?)/i.test(q)||/(\.jpe?g)($|\?)/i.test(q)||/(\.gif)($|\?)/i.test(q)||/(\.pdf)($|\?)/i.test(q));T=null!=T?T:!0;var ma=mxUtils.bind(this,function(){mxUtils.get(q,mxUtils.bind(this,function(pa){if(200<=pa.getStatus()&&299>=pa.getStatus()){if(null!=F){var za=pa.getText();if(ta){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){pa=mxUtilsBinaryToArray(pa.request.responseBody).toArray();za=Array(pa.length);for(var Ba=0;Ba<pa.length;Ba++)za[Ba]=String.fromCharCode(pa[Ba]);za=za.join("")}ba=null!=ba?ba:"data:image/png;base64,";za=ba+Editor.base64Encode(za)}F(za)}}else null!=R&&(0==pa.getStatus()?R({message:mxResources.get("accessDenied")},pa):404==pa.getStatus()?R({code:pa.getStatus()},pa):R({message:mxResources.get("error")+" "+pa.getStatus()},pa))}),function(pa){null!=R&&
-R({message:mxResources.get("error")+" "+pa.getStatus()})},ta,this.timeout,function(){T&&null!=R&&R({code:App.ERROR_TIMEOUT,retry:ma})},ra)});ma()}catch(pa){null!=R&&R(pa)}};Editor.prototype.absoluteCssFonts=function(q){var F=null;if(null!=q){var R=q.split("url(");if(0<R.length){F=[R[0]];q=window.location.pathname;var W=null!=q?q.lastIndexOf("/"):-1;0<=W&&(q=q.substring(0,W+1));W=document.getElementsByTagName("base");var T=null;null!=W&&0<W.length&&(T=W[0].getAttribute("href"));for(var ba=1;ba<R.length;ba++)if(W=
-R[ba].indexOf(")"),0<W){var ia=Editor.trimCssUrl(R[ba].substring(0,W));this.graph.isRelativeUrl(ia)&&(ia=null!=T?T+ia:window.location.protocol+"//"+window.location.hostname+("/"==ia.charAt(0)?"":q)+ia);F.push('url("'+ia+'"'+R[ba].substring(W))}else F.push(R[ba])}else F=[q]}return null!=F?F.join(""):null};Editor.prototype.mapFontUrl=function(q,F,R){/^https?:\/\//.test(F)&&!this.isCorsEnabledForUrl(F)&&(F=PROXY_URL+"?url="+encodeURIComponent(F));R(q,F)};Editor.prototype.embedCssFonts=function(q,F){var R=
-q.split("url("),W=0;null==this.cachedFonts&&(this.cachedFonts={});var T=mxUtils.bind(this,function(){if(0==W){for(var ta=[R[0]],ma=1;ma<R.length;ma++){var pa=R[ma].indexOf(")");ta.push('url("');ta.push(this.cachedFonts[Editor.trimCssUrl(R[ma].substring(0,pa))]);ta.push('"'+R[ma].substring(pa))}F(ta.join(""))}});if(0<R.length){for(q=1;q<R.length;q++){var ba=R[q].indexOf(")"),ia=null,ra=R[q].indexOf("format(",ba);0<ra&&(ia=Editor.trimCssUrl(R[q].substring(ra+7,R[q].indexOf(")",ra))));mxUtils.bind(this,
-function(ta){if(null==this.cachedFonts[ta]){this.cachedFonts[ta]=ta;W++;var ma="application/x-font-ttf";if("svg"==ia||/(\.svg)($|\?)/i.test(ta))ma="image/svg+xml";else if("otf"==ia||"embedded-opentype"==ia||/(\.otf)($|\?)/i.test(ta))ma="application/x-font-opentype";else if("woff"==ia||/(\.woff)($|\?)/i.test(ta))ma="application/font-woff";else if("woff2"==ia||/(\.woff2)($|\?)/i.test(ta))ma="application/font-woff2";else if("eot"==ia||/(\.eot)($|\?)/i.test(ta))ma="application/vnd.ms-fontobject";else if("sfnt"==
-ia||/(\.sfnt)($|\?)/i.test(ta))ma="application/font-sfnt";this.mapFontUrl(ma,ta,mxUtils.bind(this,function(pa,za){this.loadUrl(za,mxUtils.bind(this,function(Ba){this.cachedFonts[ta]=Ba;W--;T()}),mxUtils.bind(this,function(Ba){W--;T()}),!0,null,"data:"+pa+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(R[q].substring(0,ba)),ia)}T()}else F(q)};Editor.prototype.loadFonts=function(q){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(F){this.resolvedFontCss=
+document.createElement("script");W.setAttribute("type","text/javascript");W.setAttribute("src",q);F[0].parentNode.appendChild(W)}}};Editor.prototype.csvToArray=function(q){if(0<q.length){var F="",R=[""],W=0,T=!0,ba;q=$jscomp.makeIterator(q);for(ba=q.next();!ba.done;ba=q.next())ba=ba.value,'"'===ba?(T&&ba===F&&(R[W]+=ba),T=!T):","===ba&&T?ba=R[++W]="":R[W]+=ba,F=ba;return R}return[]};Editor.prototype.getProxiedUrl=function(q){if((/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))&&
+!this.isCorsEnabledForUrl(q)){var F=/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q);F=/\.png$/i.test(q)||/\.pdf$/i.test(q)||F;var R="t="+(new Date).getTime();q=PROXY_URL+"?url="+encodeURIComponent(q)+"&"+R+(F?"&base64=1":"")}return q};Editor.prototype.isCorsEnabledForUrl=function(q){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||q.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
+return null!=this.corsRegExp&&this.corsRegExp.test(q)||"https://raw.githubusercontent.com/"===q.substring(0,34)||"https://fonts.googleapis.com/"===q.substring(0,29)||"https://fonts.gstatic.com/"===q.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var q=new mxUrlConverter;q.updateBaseUrl();var F=q.convert,R=this;q.convert=function(W){if(null!=W){var T="http://"==W.substring(0,7)||"https://"==W.substring(0,8);T&&!navigator.onLine?W=Editor.svgBrokenImage.src:!T||W.substring(0,q.baseUrl.length)==
+q.baseUrl||R.crossOriginImages&&R.isCorsEnabledForUrl(W)?"chrome-extension://"==W.substring(0,19)||mxClient.IS_CHROMEAPP||(W=F.apply(this,arguments)):W=PROXY_URL+"?url="+encodeURIComponent(W)}return W};return q};Editor.createSvgDataUri=function(q){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(q)))};Editor.prototype.convertImageToDataUri=function(q,F){try{var R=!0,W=window.setTimeout(mxUtils.bind(this,function(){R=!1;F(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(q))mxUtils.get(q,
+mxUtils.bind(this,function(ba){window.clearTimeout(W);R&&F(Editor.createSvgDataUri(ba.getText()))}),function(){window.clearTimeout(W);R&&F(Editor.svgBrokenImage.src)});else{var T=new Image;this.crossOriginImages&&(T.crossOrigin="anonymous");T.onload=function(){window.clearTimeout(W);if(R)try{var ba=document.createElement("canvas"),ia=ba.getContext("2d");ba.height=T.height;ba.width=T.width;ia.drawImage(T,0,0);F(ba.toDataURL())}catch(ra){F(Editor.svgBrokenImage.src)}};T.onerror=function(){window.clearTimeout(W);
+R&&F(Editor.svgBrokenImage.src)};T.src=q}}catch(ba){F(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(q,F,R,W){null==W&&(W=this.createImageUrlConverter());var T=0,ba=R||{};R=mxUtils.bind(this,function(ia,ra){ia=q.getElementsByTagName(ia);for(var ta=0;ta<ia.length;ta++)mxUtils.bind(this,function(ma){try{if(null!=ma){var pa=W.convert(ma.getAttribute(ra));if(null!=pa&&"data:"!=pa.substring(0,5)){var za=ba[pa];null==za?(T++,this.convertImageToDataUri(pa,function(Ba){null!=Ba&&(ba[pa]=
+Ba,ma.setAttribute(ra,Ba));T--;0==T&&F(q)})):ma.setAttribute(ra,za)}else null!=pa&&ma.setAttribute(ra,pa)}}catch(Ba){}})(ia[ta])});R("image","xlink:href");R("img","src");0==T&&F(q)};Editor.base64Encode=function(q){for(var F="",R=0,W=q.length,T,ba,ia;R<W;){T=q.charCodeAt(R++)&255;if(R==W){F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4);F+="==";break}ba=q.charCodeAt(R++);if(R==W){F+=
+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&15)<<2);F+="=";break}ia=q.charCodeAt(R++);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T>>2);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&3)<<4|(ba&240)>>4);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((ba&
+15)<<2|(ia&192)>>6);F+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(ia&63)}return F};Editor.prototype.loadUrl=function(q,F,R,W,T,ba,ia,ra){try{var ta=!ia&&(W||/(\.png)($|\?)/i.test(q)||/(\.jpe?g)($|\?)/i.test(q)||/(\.gif)($|\?)/i.test(q)||/(\.pdf)($|\?)/i.test(q));T=null!=T?T:!0;var ma=mxUtils.bind(this,function(){mxUtils.get(q,mxUtils.bind(this,function(pa){if(200<=pa.getStatus()&&299>=pa.getStatus()){if(null!=F){var za=pa.getText();if(ta){if((9==document.documentMode||
+10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){pa=mxUtilsBinaryToArray(pa.request.responseBody).toArray();za=Array(pa.length);for(var Ba=0;Ba<pa.length;Ba++)za[Ba]=String.fromCharCode(pa[Ba]);za=za.join("")}ba=null!=ba?ba:"data:image/png;base64,";za=ba+Editor.base64Encode(za)}F(za)}}else null!=R&&(0==pa.getStatus()?R({message:mxResources.get("accessDenied")},pa):404==pa.getStatus()?R({code:pa.getStatus()},pa):R({message:mxResources.get("error")+" "+pa.getStatus()},pa))}),
+function(pa){null!=R&&R({message:mxResources.get("error")+" "+pa.getStatus()})},ta,this.timeout,function(){T&&null!=R&&R({code:App.ERROR_TIMEOUT,retry:ma})},ra)});ma()}catch(pa){null!=R&&R(pa)}};Editor.prototype.absoluteCssFonts=function(q){var F=null;if(null!=q){var R=q.split("url(");if(0<R.length){F=[R[0]];q=window.location.pathname;var W=null!=q?q.lastIndexOf("/"):-1;0<=W&&(q=q.substring(0,W+1));W=document.getElementsByTagName("base");var T=null;null!=W&&0<W.length&&(T=W[0].getAttribute("href"));
+for(var ba=1;ba<R.length;ba++)if(W=R[ba].indexOf(")"),0<W){var ia=Editor.trimCssUrl(R[ba].substring(0,W));this.graph.isRelativeUrl(ia)&&(ia=null!=T?T+ia:window.location.protocol+"//"+window.location.hostname+("/"==ia.charAt(0)?"":q)+ia);F.push('url("'+ia+'"'+R[ba].substring(W))}else F.push(R[ba])}else F=[q]}return null!=F?F.join(""):null};Editor.prototype.mapFontUrl=function(q,F,R){/^https?:\/\//.test(F)&&!this.isCorsEnabledForUrl(F)&&(F=PROXY_URL+"?url="+encodeURIComponent(F));R(q,F)};Editor.prototype.embedCssFonts=
+function(q,F){var R=q.split("url("),W=0;null==this.cachedFonts&&(this.cachedFonts={});var T=mxUtils.bind(this,function(){if(0==W){for(var ta=[R[0]],ma=1;ma<R.length;ma++){var pa=R[ma].indexOf(")");ta.push('url("');ta.push(this.cachedFonts[Editor.trimCssUrl(R[ma].substring(0,pa))]);ta.push('"'+R[ma].substring(pa))}F(ta.join(""))}});if(0<R.length){for(q=1;q<R.length;q++){var ba=R[q].indexOf(")"),ia=null,ra=R[q].indexOf("format(",ba);0<ra&&(ia=Editor.trimCssUrl(R[q].substring(ra+7,R[q].indexOf(")",ra))));
+mxUtils.bind(this,function(ta){if(null==this.cachedFonts[ta]){this.cachedFonts[ta]=ta;W++;var ma="application/x-font-ttf";if("svg"==ia||/(\.svg)($|\?)/i.test(ta))ma="image/svg+xml";else if("otf"==ia||"embedded-opentype"==ia||/(\.otf)($|\?)/i.test(ta))ma="application/x-font-opentype";else if("woff"==ia||/(\.woff)($|\?)/i.test(ta))ma="application/font-woff";else if("woff2"==ia||/(\.woff2)($|\?)/i.test(ta))ma="application/font-woff2";else if("eot"==ia||/(\.eot)($|\?)/i.test(ta))ma="application/vnd.ms-fontobject";
+else if("sfnt"==ia||/(\.sfnt)($|\?)/i.test(ta))ma="application/font-sfnt";this.mapFontUrl(ma,ta,mxUtils.bind(this,function(pa,za){this.loadUrl(za,mxUtils.bind(this,function(Ba){this.cachedFonts[ta]=Ba;W--;T()}),mxUtils.bind(this,function(Ba){W--;T()}),!0,null,"data:"+pa+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(R[q].substring(0,ba)),ia)}T()}else F(q)};Editor.prototype.loadFonts=function(q){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(F){this.resolvedFontCss=
F;null!=q&&q()})):null!=q&&q()};Editor.prototype.createGoogleFontCache=function(){var q={},F;for(F in Graph.fontMapping)Graph.isCssFontUrl(F)&&(q[F]=Graph.fontMapping[F]);return q};Editor.prototype.embedExtFonts=function(q){var F=this.graph.getCustomFonts();if(0<F.length){var R=[],W=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var T=mxUtils.bind(this,function(){0==W&&this.embedCssFonts(R.join(""),q)}),ba=0;ba<F.length;ba++)mxUtils.bind(this,function(ia,
ra){Graph.isCssFontUrl(ra)?null==this.cachedGoogleFonts[ra]?(W++,this.loadUrl(ra,mxUtils.bind(this,function(ta){this.cachedGoogleFonts[ra]=ta;R.push(ta+"\n");W--;T()}),mxUtils.bind(this,function(ta){W--;R.push("@import url("+ra+");\n");T()}))):R.push(this.cachedGoogleFonts[ra]+"\n"):R.push('@font-face {font-family: "'+ia+'";src: url("'+ra+'")}\n')})(F[ba].name,F[ba].url);T()}else q()};Editor.prototype.addMathCss=function(q){q=q.getElementsByTagName("defs");if(null!=q&&0<q.length)for(var F=document.getElementsByTagName("style"),
R=0;R<F.length;R++){var W=mxUtils.getTextContent(F[R]);0>W.indexOf("mxPageSelector")&&0<W.indexOf("MathJax")&&q[0].appendChild(F[R].cloneNode(!0))}};Editor.prototype.addFontCss=function(q,F){F=null!=F?F:this.absoluteCssFonts(this.fontCss);if(null!=F){var R=q.getElementsByTagName("defs"),W=q.ownerDocument;0==R.length?(R=null!=W.createElementNS?W.createElementNS(mxConstants.NS_SVG,"defs"):W.createElement("defs"),null!=q.firstChild?q.insertBefore(R,q.firstChild):q.appendChild(R)):R=R[0];q=null!=W.createElementNS?
@@ -3383,7 +3383,7 @@ function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.u
this.shadowVisible)}}else da.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var ja=document.createElement("canvas"),ka=new Image;ka.onload=function(){try{ja.getContext("2d").drawImage(ka,
0,0);var q=ja.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=q&&6<q.length}catch(F){}};ka.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(q){}Editor.prototype.useCanvasForExport=!1})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,k,m){m.ui=e.ui;return k};b.afterDecode=function(e,k,m){m.previousColor=m.color;m.previousImage=m.image;m.previousFormat=m.format;null!=m.foldingEnabled&&(m.foldingEnabled=!m.foldingEnabled);null!=m.mathEnabled&&(m.mathEnabled=!m.mathEnabled);null!=m.shadowVisible&&(m.shadowVisible=!m.shadowVisible);return m};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,k,m){m.ui=e.ui;return k};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,k,m){m.ui=e.ui;return k};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.2.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&
"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,
mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(d,f,g,x,z,u,H){u=null!=u?u:0<=d.indexOf("NetworkError")||0<=d.indexOf("SecurityError")||0<=d.indexOf("NS_ERROR_FAILURE")||0<=d.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -3442,21 +3442,21 @@ null,null,!1,"pdf"==f);var oa="",aa="";if(qa.width*qa.height>MAX_AREA||g.length>
(u="#ffffff"):u=mxConstants.NONE;z={globalVars:O.getExportVariables()};C&&(z.grid={size:O.gridSize,steps:O.view.gridSteps,color:O.view.gridColor});Graph.translateDiagram&&(z.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+f+oa+aa+"&bg="+(null!=u?u:mxConstants.NONE)+"&base64="+x+"&embedXml="+G+"&xml="+encodeURIComponent(g)+(null!=d?"&filename="+encodeURIComponent(d):"")+"&extras="+encodeURIComponent(JSON.stringify(z))+(null!=H?"&scale="+H:"")+(null!=K?"&border="+
K:"")+(U&&isFinite(U)?"&w="+U:"")+(Y&&isFinite(Y)?"&h="+Y:""))};EditorUi.prototype.setMode=function(d,f){this.mode=d};EditorUi.prototype.loadDescriptor=function(d,f,g){var x=window.location.hash,z=mxUtils.bind(this,function(H){var K=null!=d.data?d.data:"";null!=H&&0<H.length&&(0<K.length&&(K+="\n"),K+=H);H=new LocalFile(this,"csv"!=d.format&&0<K.length?K:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);H.getHash=function(){return x};this.fileLoaded(H);
"csv"==d.format&&this.importCsv(K,mxUtils.bind(this,function(Y){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=d.update){var C=null!=d.interval?parseInt(d.interval):6E4,G=null,V=mxUtils.bind(this,function(){var Y=this.currentPage;mxUtils.post(d.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(O){Y===this.currentPage&&(200<=O.getStatus()&&300>=O.getStatus()?(this.updateDiagram(O.getText()),U()):
-this.handleError({message:mxResources.get("error")+" "+O.getStatus()}))}),mxUtils.bind(this,function(O){this.handleError(O)}))}),U=mxUtils.bind(this,function(){window.clearTimeout(G);G=window.setTimeout(V,C)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){U();V()}));U();V()}null!=f&&f()});if(null!=d.url&&0<d.url.length){var u=d.url;if(/test\.draw\.io$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname))u=this.editor.getProxiedUrl(u);this.editor.loadUrl(u,
-mxUtils.bind(this,function(H){z(H)}),mxUtils.bind(this,function(H){null!=g&&g(H)}))}else z("")};EditorUi.prototype.updateDiagram=function(d){function f(J){var Z=new mxCellOverlay(J.image||z.warningImage,J.tooltip,J.align,J.valign,J.offset);Z.addListener(mxEvent.CLICK,function(P,da){x.alert(J.tooltip)});return Z}var g=null,x=this;if(null!=d&&0<d.length&&(g=mxUtils.parseXml(d),d=null!=g?g.documentElement:null,null!=d&&"updates"==d.nodeName)){var z=this.editor.graph,u=z.getModel();u.beginUpdate();var H=
-null;try{for(d=d.firstChild;null!=d;){if("update"==d.nodeName){var K=u.getCell(d.getAttribute("id"));if(null!=K){try{var C=d.getAttribute("value");if(null!=C){var G=mxUtils.parseXml(C).documentElement;if(null!=G)if("1"==G.getAttribute("replace-value"))u.setValue(K,G);else for(var V=G.attributes,U=0;U<V.length;U++)z.setAttributeForCell(K,V[U].nodeName,0<V[U].nodeValue.length?V[U].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+K.id+": "+J)}try{var Y=d.getAttribute("style");
-null!=Y&&z.model.setStyle(K,Y)}catch(J){null!=window.console&&console.log("Error in style for "+K.id+": "+J)}try{var O=d.getAttribute("icon");if(null!=O){var qa=0<O.length?JSON.parse(O):null;null!=qa&&qa.append||z.removeCellOverlays(K);null!=qa&&z.addCellOverlay(K,f(qa))}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}try{var oa=d.getAttribute("geometry");if(null!=oa){oa=JSON.parse(oa);var aa=z.getCellGeometry(K);if(null!=aa){aa=aa.clone();for(key in oa){var ca=parseFloat(oa[key]);
-"dx"==key?aa.x+=ca:"dy"==key?aa.y+=ca:"dw"==key?aa.width+=ca:"dh"==key?aa.height+=ca:aa[key]=parseFloat(oa[key])}z.model.setGeometry(K,aa)}}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}}}else if("model"==d.nodeName){for(var fa=d.firstChild;null!=fa&&fa.nodeType!=mxConstants.NODETYPE_ELEMENT;)fa=fa.nextSibling;null!=fa&&(new mxCodec(d.firstChild)).decode(fa,u)}else if("view"==d.nodeName){if(d.hasAttribute("scale")&&(z.view.scale=parseFloat(d.getAttribute("scale"))),
-d.hasAttribute("dx")||d.hasAttribute("dy"))z.view.translate=new mxPoint(parseFloat(d.getAttribute("dx")||0),parseFloat(d.getAttribute("dy")||0))}else"fit"==d.nodeName&&(H=d.hasAttribute("max-scale")?parseFloat(d.getAttribute("max-scale")):1);d=d.nextSibling}}finally{u.endUpdate()}null!=H&&this.chromelessResize&&this.chromelessResize(!0,H)}return g};EditorUi.prototype.getCopyFilename=function(d,f){var g=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;d="";var x=g.lastIndexOf(".");0<=
-x&&(d=g.substring(x),g=g.substring(0,x));if(f){f=g;var z=new Date;g=z.getFullYear();x=z.getMonth()+1;var u=z.getDate(),H=z.getHours(),K=z.getMinutes();z=z.getSeconds();g=f+(" "+(g+"-"+x+"-"+u+"-"+H+"-"+K+"-"+z))}return g=mxResources.get("copyOf",[g])+d};EditorUi.prototype.fileLoaded=function(d,f){var g=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var x=!1;this.hideDialog();null!=g&&(EditorUi.debug("File.closed",[g]),g.removeListener(this.descriptorChangedListener),
-g.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var z=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=g&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!f&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));
-this.editor.setStatus("");this.updateUi();f||this.showSplash()});if(null!=d)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(d);d.addListener("descriptorChanged",this.descriptorChangedListener);d.addListener("contentChanged",this.descriptorChangedListener);d.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(d.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();
-this.updateUi();d.isEditable()?d.isModified()?(d.addUnsavedStatus(),null!=d.backupPatch&&d.patch([d.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&
-this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));x=!0;if(!this.isOffline()&&null!=d.getMode()){var u="1"==urlParams.sketch?"sketch":uiTheme;if(null==u)u="default";else if("sketch"==u||"min"==u)u+=Editor.isDarkMode()?"-dark":"-light";EditorUi.logEvent({category:d.getMode().toUpperCase()+"-OPEN-FILE-"+d.getHash(),action:"size_"+d.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+u})}EditorUi.debug("File.opened",[d]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));
-if(this.editor.editable&&this.mode==d.getMode()&&d.getMode()!=App.MODE_DEVICE&&null!=d.getMode())try{this.addRecent({id:d.getHash(),title:d.getTitle(),mode:d.getMode()})}catch(H){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(H){}}catch(H){this.fileLoadedError=H;if(null!=d)try{d.close()}catch(K){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=d?d.getHash():"none"),action:"message_"+H.message,label:"stack_"+
-H.stack})}catch(K){}d=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=g?this.fileLoaded(g)||z():z()});f?d():this.handleError(H,mxResources.get("errorLoadingFile"),d,!0,null,null,!0)}else z();return x};EditorUi.prototype.getHashValueForPages=function(d,f){var g=0,x=new mxGraphModel,z=new mxCodec;null!=f&&(f.byteCount=0,f.attrCount=0,f.eltCount=0,f.nodeCount=0);for(var u=0;u<d.length;u++){this.updatePageRoot(d[u]);
-var H=d[u].node.cloneNode(!1);H.removeAttribute("name");x.root=d[u].root;var K=z.encode(x);this.editor.graph.saveViewState(d[u].viewState,K,!0);K.removeAttribute("pageWidth");K.removeAttribute("pageHeight");H.appendChild(K);null!=f&&(f.eltCount+=H.getElementsByTagName("*").length,f.nodeCount+=H.getElementsByTagName("mxCell").length);g=(g<<5)-g+this.hashValue(H,function(C,G,V,U){return!U||"mxGeometry"!=C.nodeName&&"mxPoint"!=C.nodeName||"x"!=G&&"y"!=G&&"width"!=G&&"height"!=G?U&&"mxCell"==C.nodeName&&
-"previous"==G?null:V:Math.round(V)},f)<<0}return g};EditorUi.prototype.hashValue=function(d,f,g){var x=0;if(null!=d&&"object"===typeof d&&"number"===typeof d.nodeType&&"string"===typeof d.nodeName&&"function"===typeof d.getAttribute){null!=d.nodeName&&(x^=this.hashValue(d.nodeName,f,g));if(null!=d.attributes){null!=g&&(g.attrCount+=d.attributes.length);for(var z=0;z<d.attributes.length;z++){var u=d.attributes[z].name,H=null!=f?f(d,u,d.attributes[z].value,!0):d.attributes[z].value;null!=H&&(x^=this.hashValue(u,
+this.handleError({message:mxResources.get("error")+" "+O.getStatus()}))}),mxUtils.bind(this,function(O){this.handleError(O)}))}),U=mxUtils.bind(this,function(){window.clearTimeout(G);G=window.setTimeout(V,C)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){U();V()}));U();V()}null!=f&&f()});if(null!=d.url&&0<d.url.length){var u=this.editor.getProxiedUrl(d.url);this.editor.loadUrl(u,mxUtils.bind(this,function(H){z(H)}),mxUtils.bind(this,function(H){null!=g&&g(H)}))}else z("")};
+EditorUi.prototype.updateDiagram=function(d){function f(J){var Z=new mxCellOverlay(J.image||z.warningImage,J.tooltip,J.align,J.valign,J.offset);Z.addListener(mxEvent.CLICK,function(P,da){x.alert(J.tooltip)});return Z}var g=null,x=this;if(null!=d&&0<d.length&&(g=mxUtils.parseXml(d),d=null!=g?g.documentElement:null,null!=d&&"updates"==d.nodeName)){var z=this.editor.graph,u=z.getModel();u.beginUpdate();var H=null;try{for(d=d.firstChild;null!=d;){if("update"==d.nodeName){var K=u.getCell(d.getAttribute("id"));
+if(null!=K){try{var C=d.getAttribute("value");if(null!=C){var G=mxUtils.parseXml(C).documentElement;if(null!=G)if("1"==G.getAttribute("replace-value"))u.setValue(K,G);else for(var V=G.attributes,U=0;U<V.length;U++)z.setAttributeForCell(K,V[U].nodeName,0<V[U].nodeValue.length?V[U].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+K.id+": "+J)}try{var Y=d.getAttribute("style");null!=Y&&z.model.setStyle(K,Y)}catch(J){null!=window.console&&console.log("Error in style for "+
+K.id+": "+J)}try{var O=d.getAttribute("icon");if(null!=O){var qa=0<O.length?JSON.parse(O):null;null!=qa&&qa.append||z.removeCellOverlays(K);null!=qa&&z.addCellOverlay(K,f(qa))}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}try{var oa=d.getAttribute("geometry");if(null!=oa){oa=JSON.parse(oa);var aa=z.getCellGeometry(K);if(null!=aa){aa=aa.clone();for(key in oa){var ca=parseFloat(oa[key]);"dx"==key?aa.x+=ca:"dy"==key?aa.y+=ca:"dw"==key?aa.width+=ca:"dh"==key?aa.height+=
+ca:aa[key]=parseFloat(oa[key])}z.model.setGeometry(K,aa)}}}catch(J){null!=window.console&&console.log("Error in icon for "+K.id+": "+J)}}}else if("model"==d.nodeName){for(var fa=d.firstChild;null!=fa&&fa.nodeType!=mxConstants.NODETYPE_ELEMENT;)fa=fa.nextSibling;null!=fa&&(new mxCodec(d.firstChild)).decode(fa,u)}else if("view"==d.nodeName){if(d.hasAttribute("scale")&&(z.view.scale=parseFloat(d.getAttribute("scale"))),d.hasAttribute("dx")||d.hasAttribute("dy"))z.view.translate=new mxPoint(parseFloat(d.getAttribute("dx")||
+0),parseFloat(d.getAttribute("dy")||0))}else"fit"==d.nodeName&&(H=d.hasAttribute("max-scale")?parseFloat(d.getAttribute("max-scale")):1);d=d.nextSibling}}finally{u.endUpdate()}null!=H&&this.chromelessResize&&this.chromelessResize(!0,H)}return g};EditorUi.prototype.getCopyFilename=function(d,f){var g=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;d="";var x=g.lastIndexOf(".");0<=x&&(d=g.substring(x),g=g.substring(0,x));if(f){f=g;var z=new Date;g=z.getFullYear();x=z.getMonth()+1;var u=
+z.getDate(),H=z.getHours(),K=z.getMinutes();z=z.getSeconds();g=f+(" "+(g+"-"+x+"-"+u+"-"+H+"-"+K+"-"+z))}return g=mxResources.get("copyOf",[g])+d};EditorUi.prototype.fileLoaded=function(d,f){var g=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var x=!1;this.hideDialog();null!=g&&(EditorUi.debug("File.closed",[g]),g.removeListener(this.descriptorChangedListener),g.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var z=mxUtils.bind(this,
+function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=g&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!f&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerText="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();f||this.showSplash()});if(null!=d)try{mxClient.IS_SF&&
+"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(d);d.addListener("descriptorChanged",this.descriptorChangedListener);d.addListener("contentChanged",this.descriptorChangedListener);d.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(d.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();d.isEditable()?d.isModified()?(d.addUnsavedStatus(),null!=d.backupPatch&&
+d.patch([d.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));
+x=!0;if(!this.isOffline()&&null!=d.getMode()){var u="1"==urlParams.sketch?"sketch":uiTheme;if(null==u)u="default";else if("sketch"==u||"min"==u)u+=Editor.isDarkMode()?"-dark":"-light";EditorUi.logEvent({category:d.getMode().toUpperCase()+"-OPEN-FILE-"+d.getHash(),action:"size_"+d.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")+"_theme_"+u})}EditorUi.debug("File.opened",[d]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==
+d.getMode()&&d.getMode()!=App.MODE_DEVICE&&null!=d.getMode())try{this.addRecent({id:d.getHash(),title:d.getTitle(),mode:d.getMode()})}catch(H){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(H){}}catch(H){this.fileLoadedError=H;if(null!=d)try{d.close()}catch(K){}if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=d?d.getHash():"none"),action:"message_"+H.message,label:"stack_"+H.stack})}catch(K){}d=mxUtils.bind(this,
+function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=g?this.fileLoaded(g)||z():z()});f?d():this.handleError(H,mxResources.get("errorLoadingFile"),d,!0,null,null,!0)}else z();return x};EditorUi.prototype.getHashValueForPages=function(d,f){var g=0,x=new mxGraphModel,z=new mxCodec;null!=f&&(f.byteCount=0,f.attrCount=0,f.eltCount=0,f.nodeCount=0);for(var u=0;u<d.length;u++){this.updatePageRoot(d[u]);var H=
+d[u].node.cloneNode(!1);H.removeAttribute("name");x.root=d[u].root;var K=z.encode(x);this.editor.graph.saveViewState(d[u].viewState,K,!0);K.removeAttribute("pageWidth");K.removeAttribute("pageHeight");H.appendChild(K);null!=f&&(f.eltCount+=H.getElementsByTagName("*").length,f.nodeCount+=H.getElementsByTagName("mxCell").length);g=(g<<5)-g+this.hashValue(H,function(C,G,V,U){return!U||"mxGeometry"!=C.nodeName&&"mxPoint"!=C.nodeName||"x"!=G&&"y"!=G&&"width"!=G&&"height"!=G?U&&"mxCell"==C.nodeName&&"previous"==
+G?null:V:Math.round(V)},f)<<0}return g};EditorUi.prototype.hashValue=function(d,f,g){var x=0;if(null!=d&&"object"===typeof d&&"number"===typeof d.nodeType&&"string"===typeof d.nodeName&&"function"===typeof d.getAttribute){null!=d.nodeName&&(x^=this.hashValue(d.nodeName,f,g));if(null!=d.attributes){null!=g&&(g.attrCount+=d.attributes.length);for(var z=0;z<d.attributes.length;z++){var u=d.attributes[z].name,H=null!=f?f(d,u,d.attributes[z].value,!0):d.attributes[z].value;null!=H&&(x^=this.hashValue(u,
f,g)+this.hashValue(H,f,g))}}if(null!=d.childNodes)for(z=0;z<d.childNodes.length;z++)x=(x<<5)-x+this.hashValue(d.childNodes[z],f,g)<<0}else if(null!=d&&"function"!==typeof d){d=String(d);f=0;null!=g&&(g.byteCount+=d.length);for(z=0;z<d.length;z++)f=(f<<5)-f+d.charCodeAt(z)<<0;x^=f}return x};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(d,f,g,x,z,u,H){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||
mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(d){null==d&&(d=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,d,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(d){var f=mxUtils.createXmlDocument(),g=f.createElement("mxlibrary");mxUtils.setTextContent(g,JSON.stringify(d));f.appendChild(g);
return mxUtils.getXml(f)};EditorUi.prototype.closeLibrary=function(d){null!=d&&(this.removeLibrarySidebar(d.getHash()),d.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(d.getHash()),".scratchpad"==d.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(d){var f=this.sidebar.palettes[d];if(null!=f){for(var g=0;g<f.length;g++)f[g].parentNode.removeChild(f[g]);delete this.sidebar.palettes[d]}};EditorUi.prototype.repositionLibrary=function(d){var f=this.sidebar.container;
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index 2db2708f..8afe24bf 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"20.2.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+var mxClient={VERSION:"20.2.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index ccca55be..5fd314d9 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -485,7 +485,7 @@ microsoftWord=Microsoft Word
middle=Midden
minimal=Minimaal
misc=Overige
-mockups=Modellen
+mockups=Prototypen
modificationDate=Aanpassingsdatum
modifiedBy=Aangepast door
more=Meer
@@ -537,7 +537,7 @@ oneDrive=OneDrive
online=Online
opacity=Ondoorzichtigheid
open=Openen
-openArrow=Open Pijl
+openArrow=Open pijl
openExistingDiagram=Bestaand diagram openen
openFile=Bestand openen
openFrom=Openen van
@@ -683,7 +683,7 @@ sendYourFeedback=Stuur uw opmerkingen
serviceUnavailableOrBlocked=Dienst niet beschikbaar of geblokkeerd
sessionExpired=Uw sessie is verlopen. Ververs het browservenster.
sessionTimeoutOnSave=Uw sessie is verlopen en uw verbinding met Google Drive is verbroken. Druk op OK om in te loggen en op te slaan.
-setAsDefaultStyle=Als Standaardstijl Instellen
+setAsDefaultStyle=Als standaardstijl Instellen
shadow=Schaduw
shape=Vorm
shapes=Vormen
@@ -693,7 +693,7 @@ shareLink=Link voor gedeeld bewerken
sharingAvailable=Delen van Google Drive- en OneDrive-bestanden.
sharp=Rechthoekig
show=Tonen
-showRemoteCursors=Show Remote Mouse Cursors
+showRemoteCursors=Muiscursor buiten beeld tonen
showStartScreen=Startscherm tonen
sidebarTooltip=Klik om uit te breiden. Sleep en plaats vormen in het diagram. Shift+klik om selectie te wijzigen. Alt+klik om in te voegen en te verbinden.
signs=Tekens
@@ -803,7 +803,7 @@ engineering=Elektrisch
flowcharts=Stroomschema's
gmdl=Materiaalontwerp
mindmaps=Mindmaps
-mockups=Modellen
+mockups=Prototypen
networkdiagrams=Netwerkdiagrammen
nothingIsSelected=Niets geselecteerd
other=Overige
@@ -1196,15 +1196,15 @@ confAFileCleaned=Oude versies opgeschoond van diagram concept "{1}"
confAFileCleanFailed=Oude versies opschonen van diagram concept "{1}" mislukt
confACleanOnly=Alleen diagram concepten opschonen
brush=Kwast
-openDevTools=Open Developer Tools
-autoBkp=Automatic Backup
-confAIgnoreCollectErr=Ignore collecting current pages errors
-drafts=Drafts
-draftSaveInt=Draft save interval [sec] (0 to disable)
-pluginsDisabled=External plugins disabled.
-extExpNotConfigured=External image service is not configured
-pathFilename=Path/Filename
-confAHugeInstances=Very Large Instances
-confAHugeInstancesDesc=If this instance includes 100,000+ pages, it is faster to request the current instance pages list from Atlassian. Please contact our support for more details.
-choosePageIDsFile=Choose current page IDs csv file
-chooseDrawioPsgesFile=Choose pages with draw.io diagrams csv file
+openDevTools=Ontwikkelgereedschap opnenen
+autoBkp=Automatische back-up
+confAIgnoreCollectErr=Verzameling van fouten op huidige pagina negeren
+drafts=Ontwerpen
+draftSaveInt=Ontwerp-opgeslagen interval [sec] (0 om uit te schakelen)
+pluginsDisabled=Externe plug-ins uitgeschakeld
+extExpNotConfigured=Externe afbeeldingendienst is niet geconfigureerd
+pathFilename=Pad/Bestandsnaam
+confAHugeInstances=Zeer grote exemplaren
+confAHugeInstancesDesc=Als dit exemplaar meer dan 100.000 pagina's bevat, is het sneller om de huidige lijst met instantpagina's op te vragen bij Atlassian. Neem contact op met onze ondersteuning voor meer details.
+choosePageIDsFile=Kies het huidige pagina-ID's csv-bestand
+chooseDrawioPsgesFile=Kies pagina's met draw.io diagrammen csv-bestand
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index f99a6279..9f43807a 100644
--- a/src/main/webapp/service-worker.js
+++ b/src/main/webapp/service-worker.js
@@ -1,2 +1,2 @@
-if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let r=Promise.resolve();return i[e]||(r=new Promise((async r=>{if("document"in self){const i=document.createElement("script");i.src=e,document.head.appendChild(i),i.onload=r}else importScripts(e),r()}))),r.then((()=>{if(!i[e])throw new Error(`Module ${e} didn’t register its module`);return i[e]}))},r=(r,i)=>{Promise.all(r.map(e)).then((e=>i(1===e.length?e[0]:e)))},i={require:Promise.resolve(r)};self.define=(r,a,c)=>{i[r]||(i[r]=Promise.resolve().then((()=>{let i={};const s={uri:location.origin+r.slice(1)};return Promise.all(a.map((r=>{switch(r){case"exports":return i;case"module":return s;default:return e(r)}}))).then((e=>{const r=c(...e);return i.default||(i.default=r),i}))})))}}define("./service-worker.js",["./workbox-4768a546"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"5d86303a64be6cb0733c3ffcdca71345"},{url:"js/extensions.min.js",revision:"a6b272e834a0a5032db20b0c99ec7ce6"},{url:"js/stencils.min.js",revision:"82f8dd046bfa4d392a40949d24890062"},{url:"js/shapes-14-6-5.min.js",revision:"0e4ce222957707e50bc19057beb6fe46"},{url:"js/math-print.js",revision:"acea91d5b3b68fdec3f02c08a087aeb0"},{url:"index.html",revision:"8b5b1cf07fc74454cf354717e9d18534"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/fonts/ArchitectsDaughter-Regular.ttf",revision:"31c2153c0530e32553b31a49b3d70736"},{url:"styles/grapheditor.css",revision:"4f2c07c4585347249c95cd9158872fb2"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"06d77cbda9c3ebf49e244567f20e5dbc"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"5b64cf20dc0bc5c1eb9aaa0086b8abda"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"c96db1790184cb35781f791e8d1dafd9"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"df9ba18d1f247c069258c13516f78a9d"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"e00ad51fc16b87c362d6eaf930ab1fa5"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"80d3c5ec6575b41d271eb6f7a6efe40b"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"c36b256237fa27ea379e30f7d5add825"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"d089f12446d443ca01752a5115456fcc"},{url:"connect/confluence/viewer-init.js",revision:"8aa8d02147def4535563bc65632a3e6d"},{url:"connect/confluence/viewer.js",revision:"7dc22c622b238536ea550815d1364d52"},{url:"connect/confluence/viewer-1-4-42.html",revision:"4c58f3a1a4c99b1c4264593b6e05100b"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"7e198d0456c3075b4b305da188f09714"},{url:"connect/confluence/includeDiagram.html",revision:"99382f1af0419f116f056874ba17f0d7"},{url:"connect/confluence/macro-editor.js",revision:"412bc4b87e630b697a40f247c579d398"},{url:"math/es5/startup.js",revision:"dc7130cdc866593293dbb5dde11ceb40"},{url:"math/es5/core.js",revision:"f71bc0bfb7d2ac8261747f97a5d47dd4"},{url:"math/es5/output/svg.js",revision:"4f55967d16197ebb01b86356d8ab179a"},{url:"math/es5/input/tex.js",revision:"5c4f470da2ccb1acf85041fcecd6fff6"},{url:"math/es5/input/asciimath.js",revision:"c2d4076dd8e26d509bfe3a378e71cfa7"},{url:"resources/dia.txt",revision:"731c4510de55994ec2d5feff88570b74"},{url:"resources/dia_am.txt",revision:"1fbc0ff1ab0631a95e0eec65eadf947f"},{url:"resources/dia_ar.txt",revision:"76295b768e3443e2b3e81c76c8674955"},{url:"resources/dia_bg.txt",revision:"cd021b810f00fcb60754a009339da093"},{url:"resources/dia_bn.txt",revision:"d004918d24ce051628beb2ddbc274221"},{url:"resources/dia_bs.txt",revision:"dac946476177b2066b4ea8d9837e9664"},{url:"resources/dia_ca.txt",revision:"7957b4a052904394c2376099791deb76"},{url:"resources/dia_cs.txt",revision:"f0624407e102c3fdeb3b2811153798c7"},{url:"resources/dia_da.txt",revision:"6232ada9ab2f58f9165fec9cfb1f8cb4"},{url:"resources/dia_de.txt",revision:"a615e99b2c6427e0b2764762e518e7be"},{url:"resources/dia_el.txt",revision:"14503792e4932953678d7389cc48e132"},{url:"resources/dia_eo.txt",revision:"6cd7a9e39559ef9ec1421bcae62f12a4"},{url:"resources/dia_es.txt",revision:"15d5c773aa67d38e9fc955da76a05fbd"},{url:"resources/dia_et.txt",revision:"ce032655cfa41725f2232096c99f0784"},{url:"resources/dia_eu.txt",revision:"67a5533475b88addfd890b00132a8533"},{url:"resources/dia_fa.txt",revision:"ed063ed259647ad569231274af2ab224"},{url:"resources/dia_fi.txt",revision:"c2eafd8b219c9a3374b6c9d93e6a25b5"},{url:"resources/dia_fil.txt",revision:"cf87e966bc995fd4805a968cf5244584"},{url:"resources/dia_fr.txt",revision:"8986b0e1dec19655c80b1c5ab2faa032"},{url:"resources/dia_gl.txt",revision:"6250d60f8511b506866f2d36e67cc1f0"},{url:"resources/dia_gu.txt",revision:"27d7cc90c01e37eeeacab0d7170b973d"},{url:"resources/dia_he.txt",revision:"084e02f4ed843df855635d4af2ef5434"},{url:"resources/dia_hi.txt",revision:"a3702cc098d0fa75fe9af6d267882e8a"},{url:"resources/dia_hr.txt",revision:"f90bbba4cbabbfe9b8b8f0af33caf557"},{url:"resources/dia_hu.txt",revision:"889365cb400b98a4a71798267ce05dd1"},{url:"resources/dia_id.txt",revision:"37a696446a15336029071bfc17265bcb"},{url:"resources/dia_it.txt",revision:"45059ae2a8eeb92fb79c93fd73e41a67"},{url:"resources/dia_ja.txt",revision:"7c4477567bffcb2a34c7c17e610b8b32"},{url:"resources/dia_kn.txt",revision:"85594b11f140a62ae5208dc8a6031537"},{url:"resources/dia_ko.txt",revision:"9afaddadfc15116def46801c3fae3902"},{url:"resources/dia_lt.txt",revision:"1fda55cf1749eb28aaa15bcd4b263ff7"},{url:"resources/dia_lv.txt",revision:"6e655c38b13ca083e3d9e989b1625b72"},{url:"resources/dia_ml.txt",revision:"634ed48d153c436fdac54422d6f25c97"},{url:"resources/dia_mr.txt",revision:"c2e5e7d6d12f4d17eb3a8b116fea807d"},{url:"resources/dia_ms.txt",revision:"ded8350e4fc8d592127a5611fea1cf52"},{url:"resources/dia_my.txt",revision:"731c4510de55994ec2d5feff88570b74"},{url:"resources/dia_nl.txt",revision:"aa811a09d78454b81d891be16ef0849e"},{url:"resources/dia_no.txt",revision:"4df620a4f972b4ee9cf2084f77b0e055"},{url:"resources/dia_pl.txt",revision:"a148e99a59ca2aa67cfaa7374679c480"},{url:"resources/dia_pt-br.txt",revision:"cd200294760e0b37cb9c6861bde9977d"},{url:"resources/dia_pt.txt",revision:"acfc189c058ea58a50f0ea5f9ea37fd8"},{url:"resources/dia_ro.txt",revision:"320e258ccf0957f18f6cd1e499885506"},{url:"resources/dia_ru.txt",revision:"1ea33db8aa6d19e13642c3841ab90802"},{url:"resources/dia_si.txt",revision:"731c4510de55994ec2d5feff88570b74"},{url:"resources/dia_sk.txt",revision:"ad54b43eb1cd46ad69032eb45abb3d02"},{url:"resources/dia_sl.txt",revision:"5704e95859a77900b20e225fe02f36f6"},{url:"resources/dia_sr.txt",revision:"ef0552ddce6b4dd91230c9114be2365b"},{url:"resources/dia_sv.txt",revision:"3df58a93314f87b21efb8f9fcc709c65"},{url:"resources/dia_sw.txt",revision:"cb5407bfa6e7779306f258615ea6497b"},{url:"resources/dia_ta.txt",revision:"cf6e1f9a9c18266599165d163a1225a5"},{url:"resources/dia_te.txt",revision:"17061b897a6f00a4c5beb835abaf4c31"},{url:"resources/dia_th.txt",revision:"b72ea1e62e361734ccd709ddb6935e2a"},{url:"resources/dia_tr.txt",revision:"7193eab9b177f514621b8479211f6ab4"},{url:"resources/dia_uk.txt",revision:"9d576620b92feeb088717eeb41e27c5c"},{url:"resources/dia_vi.txt",revision:"2a69b79be262348ba283d4a0611c75cc"},{url:"resources/dia_zh-tw.txt",revision:"c380c5550e86a5b263f8dec7282803b5"},{url:"resources/dia_zh.txt",revision:"851c7b377fc498df6b638300edfa3852"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
+if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let r=Promise.resolve();return i[e]||(r=new Promise((async r=>{if("document"in self){const i=document.createElement("script");i.src=e,document.head.appendChild(i),i.onload=r}else importScripts(e),r()}))),r.then((()=>{if(!i[e])throw new Error(`Module ${e} didn’t register its module`);return i[e]}))},r=(r,i)=>{Promise.all(r.map(e)).then((e=>i(1===e.length?e[0]:e)))},i={require:Promise.resolve(r)};self.define=(r,a,c)=>{i[r]||(i[r]=Promise.resolve().then((()=>{let i={};const s={uri:location.origin+r.slice(1)};return Promise.all(a.map((r=>{switch(r){case"exports":return i;case"module":return s;default:return e(r)}}))).then((e=>{const r=c(...e);return i.default||(i.default=r),i}))})))}}define("./service-worker.js",["./workbox-4768a546"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"e1fe7c45f3cfd24259f9e0bf9e384d71"},{url:"js/extensions.min.js",revision:"a6b272e834a0a5032db20b0c99ec7ce6"},{url:"js/stencils.min.js",revision:"82f8dd046bfa4d392a40949d24890062"},{url:"js/shapes-14-6-5.min.js",revision:"0e4ce222957707e50bc19057beb6fe46"},{url:"js/math-print.js",revision:"acea91d5b3b68fdec3f02c08a087aeb0"},{url:"index.html",revision:"8b5b1cf07fc74454cf354717e9d18534"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/fonts/ArchitectsDaughter-Regular.ttf",revision:"31c2153c0530e32553b31a49b3d70736"},{url:"styles/grapheditor.css",revision:"4f2c07c4585347249c95cd9158872fb2"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"06d77cbda9c3ebf49e244567f20e5dbc"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"3e32d7aa2657359fdd8dcf8bdb419fe5"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"c96db1790184cb35781f791e8d1dafd9"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"df9ba18d1f247c069258c13516f78a9d"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"e00ad51fc16b87c362d6eaf930ab1fa5"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"80d3c5ec6575b41d271eb6f7a6efe40b"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"1a25b12d0b8e53afec0a71e9f82d39c7"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"d089f12446d443ca01752a5115456fcc"},{url:"connect/confluence/viewer-init.js",revision:"8aa8d02147def4535563bc65632a3e6d"},{url:"connect/confluence/viewer.js",revision:"7dc22c622b238536ea550815d1364d52"},{url:"connect/confluence/viewer-1-4-42.html",revision:"4c58f3a1a4c99b1c4264593b6e05100b"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"7e198d0456c3075b4b305da188f09714"},{url:"connect/confluence/includeDiagram.html",revision:"99382f1af0419f116f056874ba17f0d7"},{url:"connect/confluence/macro-editor.js",revision:"412bc4b87e630b697a40f247c579d398"},{url:"math/es5/startup.js",revision:"dc7130cdc866593293dbb5dde11ceb40"},{url:"math/es5/core.js",revision:"f71bc0bfb7d2ac8261747f97a5d47dd4"},{url:"math/es5/output/svg.js",revision:"4f55967d16197ebb01b86356d8ab179a"},{url:"math/es5/input/tex.js",revision:"5c4f470da2ccb1acf85041fcecd6fff6"},{url:"math/es5/input/asciimath.js",revision:"c2d4076dd8e26d509bfe3a378e71cfa7"},{url:"resources/dia.txt",revision:"731c4510de55994ec2d5feff88570b74"},{url:"resources/dia_am.txt",revision:"1fbc0ff1ab0631a95e0eec65eadf947f"},{url:"resources/dia_ar.txt",revision:"76295b768e3443e2b3e81c76c8674955"},{url:"resources/dia_bg.txt",revision:"cd021b810f00fcb60754a009339da093"},{url:"resources/dia_bn.txt",revision:"d004918d24ce051628beb2ddbc274221"},{url:"resources/dia_bs.txt",revision:"dac946476177b2066b4ea8d9837e9664"},{url:"resources/dia_ca.txt",revision:"7957b4a052904394c2376099791deb76"},{url:"resources/dia_cs.txt",revision:"f0624407e102c3fdeb3b2811153798c7"},{url:"resources/dia_da.txt",revision:"6232ada9ab2f58f9165fec9cfb1f8cb4"},{url:"resources/dia_de.txt",revision:"a615e99b2c6427e0b2764762e518e7be"},{url:"resources/dia_el.txt",revision:"14503792e4932953678d7389cc48e132"},{url:"resources/dia_eo.txt",revision:"6cd7a9e39559ef9ec1421bcae62f12a4"},{url:"resources/dia_es.txt",revision:"15d5c773aa67d38e9fc955da76a05fbd"},{url:"resources/dia_et.txt",revision:"ce032655cfa41725f2232096c99f0784"},{url:"resources/dia_eu.txt",revision:"67a5533475b88addfd890b00132a8533"},{url:"resources/dia_fa.txt",revision:"ed063ed259647ad569231274af2ab224"},{url:"resources/dia_fi.txt",revision:"c2eafd8b219c9a3374b6c9d93e6a25b5"},{url:"resources/dia_fil.txt",revision:"cf87e966bc995fd4805a968cf5244584"},{url:"resources/dia_fr.txt",revision:"8986b0e1dec19655c80b1c5ab2faa032"},{url:"resources/dia_gl.txt",revision:"6250d60f8511b506866f2d36e67cc1f0"},{url:"resources/dia_gu.txt",revision:"27d7cc90c01e37eeeacab0d7170b973d"},{url:"resources/dia_he.txt",revision:"084e02f4ed843df855635d4af2ef5434"},{url:"resources/dia_hi.txt",revision:"a3702cc098d0fa75fe9af6d267882e8a"},{url:"resources/dia_hr.txt",revision:"f90bbba4cbabbfe9b8b8f0af33caf557"},{url:"resources/dia_hu.txt",revision:"889365cb400b98a4a71798267ce05dd1"},{url:"resources/dia_id.txt",revision:"37a696446a15336029071bfc17265bcb"},{url:"resources/dia_it.txt",revision:"45059ae2a8eeb92fb79c93fd73e41a67"},{url:"resources/dia_ja.txt",revision:"7c4477567bffcb2a34c7c17e610b8b32"},{url:"resources/dia_kn.txt",revision:"85594b11f140a62ae5208dc8a6031537"},{url:"resources/dia_ko.txt",revision:"9afaddadfc15116def46801c3fae3902"},{url:"resources/dia_lt.txt",revision:"1fda55cf1749eb28aaa15bcd4b263ff7"},{url:"resources/dia_lv.txt",revision:"6e655c38b13ca083e3d9e989b1625b72"},{url:"resources/dia_ml.txt",revision:"634ed48d153c436fdac54422d6f25c97"},{url:"resources/dia_mr.txt",revision:"c2e5e7d6d12f4d17eb3a8b116fea807d"},{url:"resources/dia_ms.txt",revision:"ded8350e4fc8d592127a5611fea1cf52"},{url:"resources/dia_my.txt",revision:"731c4510de55994ec2d5feff88570b74"},{url:"resources/dia_nl.txt",revision:"38bf9b81d536396f3dc60d63a5732419"},{url:"resources/dia_no.txt",revision:"4df620a4f972b4ee9cf2084f77b0e055"},{url:"resources/dia_pl.txt",revision:"a148e99a59ca2aa67cfaa7374679c480"},{url:"resources/dia_pt-br.txt",revision:"cd200294760e0b37cb9c6861bde9977d"},{url:"resources/dia_pt.txt",revision:"acfc189c058ea58a50f0ea5f9ea37fd8"},{url:"resources/dia_ro.txt",revision:"320e258ccf0957f18f6cd1e499885506"},{url:"resources/dia_ru.txt",revision:"1ea33db8aa6d19e13642c3841ab90802"},{url:"resources/dia_si.txt",revision:"731c4510de55994ec2d5feff88570b74"},{url:"resources/dia_sk.txt",revision:"ad54b43eb1cd46ad69032eb45abb3d02"},{url:"resources/dia_sl.txt",revision:"5704e95859a77900b20e225fe02f36f6"},{url:"resources/dia_sr.txt",revision:"ef0552ddce6b4dd91230c9114be2365b"},{url:"resources/dia_sv.txt",revision:"3df58a93314f87b21efb8f9fcc709c65"},{url:"resources/dia_sw.txt",revision:"cb5407bfa6e7779306f258615ea6497b"},{url:"resources/dia_ta.txt",revision:"cf6e1f9a9c18266599165d163a1225a5"},{url:"resources/dia_te.txt",revision:"17061b897a6f00a4c5beb835abaf4c31"},{url:"resources/dia_th.txt",revision:"b72ea1e62e361734ccd709ddb6935e2a"},{url:"resources/dia_tr.txt",revision:"7193eab9b177f514621b8479211f6ab4"},{url:"resources/dia_uk.txt",revision:"9d576620b92feeb088717eeb41e27c5c"},{url:"resources/dia_vi.txt",revision:"2a69b79be262348ba283d4a0611c75cc"},{url:"resources/dia_zh-tw.txt",revision:"c380c5550e86a5b263f8dec7282803b5"},{url:"resources/dia_zh.txt",revision:"851c7b377fc498df6b638300edfa3852"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
//# sourceMappingURL=service-worker.js.map
diff --git a/src/main/webapp/service-worker.js.map b/src/main/webapp/service-worker.js.map
index c21c29ef..4cff7953 100644
--- a/src/main/webapp/service-worker.js.map
+++ b/src/main/webapp/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../../tmp/8c1fb7dcbfb0f79db7083165d0596950/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.20.0/x64/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"5d86303a64be6cb0733c3ffcdca71345\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"a6b272e834a0a5032db20b0c99ec7ce6\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"82f8dd046bfa4d392a40949d24890062\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"0e4ce222957707e50bc19057beb6fe46\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"acea91d5b3b68fdec3f02c08a087aeb0\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"8b5b1cf07fc74454cf354717e9d18534\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/fonts/ArchitectsDaughter-Regular.ttf\",\n \"revision\": \"31c2153c0530e32553b31a49b3d70736\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"4f2c07c4585347249c95cd9158872fb2\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"06d77cbda9c3ebf49e244567f20e5dbc\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"5b64cf20dc0bc5c1eb9aaa0086b8abda\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"c96db1790184cb35781f791e8d1dafd9\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"df9ba18d1f247c069258c13516f78a9d\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"e00ad51fc16b87c362d6eaf930ab1fa5\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"80d3c5ec6575b41d271eb6f7a6efe40b\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"c36b256237fa27ea379e30f7d5add825\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"d089f12446d443ca01752a5115456fcc\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"8aa8d02147def4535563bc65632a3e6d\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"7dc22c622b238536ea550815d1364d52\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"4c58f3a1a4c99b1c4264593b6e05100b\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"7e198d0456c3075b4b305da188f09714\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"99382f1af0419f116f056874ba17f0d7\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"412bc4b87e630b697a40f247c579d398\"\n },\n {\n \"url\": \"math/es5/startup.js\",\n \"revision\": \"dc7130cdc866593293dbb5dde11ceb40\"\n },\n {\n \"url\": \"math/es5/core.js\",\n \"revision\": \"f71bc0bfb7d2ac8261747f97a5d47dd4\"\n },\n {\n \"url\": \"math/es5/output/svg.js\",\n \"revision\": \"4f55967d16197ebb01b86356d8ab179a\"\n },\n {\n \"url\": \"math/es5/input/tex.js\",\n \"revision\": \"5c4f470da2ccb1acf85041fcecd6fff6\"\n },\n {\n \"url\": \"math/es5/input/asciimath.js\",\n \"revision\": \"c2d4076dd8e26d509bfe3a378e71cfa7\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"731c4510de55994ec2d5feff88570b74\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"1fbc0ff1ab0631a95e0eec65eadf947f\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"76295b768e3443e2b3e81c76c8674955\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"cd021b810f00fcb60754a009339da093\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"d004918d24ce051628beb2ddbc274221\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"dac946476177b2066b4ea8d9837e9664\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"7957b4a052904394c2376099791deb76\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"f0624407e102c3fdeb3b2811153798c7\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"6232ada9ab2f58f9165fec9cfb1f8cb4\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"a615e99b2c6427e0b2764762e518e7be\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"14503792e4932953678d7389cc48e132\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"6cd7a9e39559ef9ec1421bcae62f12a4\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"15d5c773aa67d38e9fc955da76a05fbd\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"ce032655cfa41725f2232096c99f0784\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"67a5533475b88addfd890b00132a8533\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"ed063ed259647ad569231274af2ab224\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"c2eafd8b219c9a3374b6c9d93e6a25b5\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"cf87e966bc995fd4805a968cf5244584\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"8986b0e1dec19655c80b1c5ab2faa032\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"6250d60f8511b506866f2d36e67cc1f0\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"27d7cc90c01e37eeeacab0d7170b973d\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"084e02f4ed843df855635d4af2ef5434\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"a3702cc098d0fa75fe9af6d267882e8a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"f90bbba4cbabbfe9b8b8f0af33caf557\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"889365cb400b98a4a71798267ce05dd1\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"37a696446a15336029071bfc17265bcb\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"45059ae2a8eeb92fb79c93fd73e41a67\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"7c4477567bffcb2a34c7c17e610b8b32\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"85594b11f140a62ae5208dc8a6031537\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"9afaddadfc15116def46801c3fae3902\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"1fda55cf1749eb28aaa15bcd4b263ff7\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"6e655c38b13ca083e3d9e989b1625b72\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"634ed48d153c436fdac54422d6f25c97\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"c2e5e7d6d12f4d17eb3a8b116fea807d\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"ded8350e4fc8d592127a5611fea1cf52\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"731c4510de55994ec2d5feff88570b74\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"aa811a09d78454b81d891be16ef0849e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"4df620a4f972b4ee9cf2084f77b0e055\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"a148e99a59ca2aa67cfaa7374679c480\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"cd200294760e0b37cb9c6861bde9977d\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"acfc189c058ea58a50f0ea5f9ea37fd8\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"320e258ccf0957f18f6cd1e499885506\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"1ea33db8aa6d19e13642c3841ab90802\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"731c4510de55994ec2d5feff88570b74\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"ad54b43eb1cd46ad69032eb45abb3d02\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"5704e95859a77900b20e225fe02f36f6\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"ef0552ddce6b4dd91230c9114be2365b\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"3df58a93314f87b21efb8f9fcc709c65\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"cb5407bfa6e7779306f258615ea6497b\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"cf6e1f9a9c18266599165d163a1225a5\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"17061b897a6f00a4c5beb835abaf4c31\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"b72ea1e62e361734ccd709ddb6935e2a\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"7193eab9b177f514621b8479211f6ab4\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"9d576620b92feeb088717eeb41e27c5c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"2a69b79be262348ba283d4a0611c75cc\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"c380c5550e86a5b263f8dec7282803b5\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"851c7b377fc498df6b638300edfa3852\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACN,IAWHC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,YACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,qCAEb,CACDC,4BAA+B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../../tmp/423c57b5de63113815b79db32ca6b039/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.20.0/x64/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"e1fe7c45f3cfd24259f9e0bf9e384d71\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"a6b272e834a0a5032db20b0c99ec7ce6\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"82f8dd046bfa4d392a40949d24890062\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"0e4ce222957707e50bc19057beb6fe46\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"acea91d5b3b68fdec3f02c08a087aeb0\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"8b5b1cf07fc74454cf354717e9d18534\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/fonts/ArchitectsDaughter-Regular.ttf\",\n \"revision\": \"31c2153c0530e32553b31a49b3d70736\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"4f2c07c4585347249c95cd9158872fb2\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"06d77cbda9c3ebf49e244567f20e5dbc\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"3e32d7aa2657359fdd8dcf8bdb419fe5\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"c96db1790184cb35781f791e8d1dafd9\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"df9ba18d1f247c069258c13516f78a9d\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"e00ad51fc16b87c362d6eaf930ab1fa5\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"80d3c5ec6575b41d271eb6f7a6efe40b\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"1a25b12d0b8e53afec0a71e9f82d39c7\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"d089f12446d443ca01752a5115456fcc\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"8aa8d02147def4535563bc65632a3e6d\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"7dc22c622b238536ea550815d1364d52\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"4c58f3a1a4c99b1c4264593b6e05100b\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"7e198d0456c3075b4b305da188f09714\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"99382f1af0419f116f056874ba17f0d7\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"412bc4b87e630b697a40f247c579d398\"\n },\n {\n \"url\": \"math/es5/startup.js\",\n \"revision\": \"dc7130cdc866593293dbb5dde11ceb40\"\n },\n {\n \"url\": \"math/es5/core.js\",\n \"revision\": \"f71bc0bfb7d2ac8261747f97a5d47dd4\"\n },\n {\n \"url\": \"math/es5/output/svg.js\",\n \"revision\": \"4f55967d16197ebb01b86356d8ab179a\"\n },\n {\n \"url\": \"math/es5/input/tex.js\",\n \"revision\": \"5c4f470da2ccb1acf85041fcecd6fff6\"\n },\n {\n \"url\": \"math/es5/input/asciimath.js\",\n \"revision\": \"c2d4076dd8e26d509bfe3a378e71cfa7\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"731c4510de55994ec2d5feff88570b74\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"1fbc0ff1ab0631a95e0eec65eadf947f\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"76295b768e3443e2b3e81c76c8674955\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"cd021b810f00fcb60754a009339da093\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"d004918d24ce051628beb2ddbc274221\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"dac946476177b2066b4ea8d9837e9664\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"7957b4a052904394c2376099791deb76\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"f0624407e102c3fdeb3b2811153798c7\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"6232ada9ab2f58f9165fec9cfb1f8cb4\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"a615e99b2c6427e0b2764762e518e7be\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"14503792e4932953678d7389cc48e132\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"6cd7a9e39559ef9ec1421bcae62f12a4\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"15d5c773aa67d38e9fc955da76a05fbd\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"ce032655cfa41725f2232096c99f0784\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"67a5533475b88addfd890b00132a8533\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"ed063ed259647ad569231274af2ab224\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"c2eafd8b219c9a3374b6c9d93e6a25b5\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"cf87e966bc995fd4805a968cf5244584\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"8986b0e1dec19655c80b1c5ab2faa032\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"6250d60f8511b506866f2d36e67cc1f0\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"27d7cc90c01e37eeeacab0d7170b973d\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"084e02f4ed843df855635d4af2ef5434\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"a3702cc098d0fa75fe9af6d267882e8a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"f90bbba4cbabbfe9b8b8f0af33caf557\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"889365cb400b98a4a71798267ce05dd1\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"37a696446a15336029071bfc17265bcb\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"45059ae2a8eeb92fb79c93fd73e41a67\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"7c4477567bffcb2a34c7c17e610b8b32\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"85594b11f140a62ae5208dc8a6031537\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"9afaddadfc15116def46801c3fae3902\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"1fda55cf1749eb28aaa15bcd4b263ff7\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"6e655c38b13ca083e3d9e989b1625b72\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"634ed48d153c436fdac54422d6f25c97\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"c2e5e7d6d12f4d17eb3a8b116fea807d\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"ded8350e4fc8d592127a5611fea1cf52\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"731c4510de55994ec2d5feff88570b74\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"38bf9b81d536396f3dc60d63a5732419\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"4df620a4f972b4ee9cf2084f77b0e055\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"a148e99a59ca2aa67cfaa7374679c480\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"cd200294760e0b37cb9c6861bde9977d\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"acfc189c058ea58a50f0ea5f9ea37fd8\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"320e258ccf0957f18f6cd1e499885506\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"1ea33db8aa6d19e13642c3841ab90802\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"731c4510de55994ec2d5feff88570b74\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"ad54b43eb1cd46ad69032eb45abb3d02\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"5704e95859a77900b20e225fe02f36f6\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"ef0552ddce6b4dd91230c9114be2365b\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"3df58a93314f87b21efb8f9fcc709c65\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"cb5407bfa6e7779306f258615ea6497b\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"cf6e1f9a9c18266599165d163a1225a5\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"17061b897a6f00a4c5beb835abaf4c31\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"b72ea1e62e361734ccd709ddb6935e2a\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"7193eab9b177f514621b8479211f6ab4\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"9d576620b92feeb088717eeb41e27c5c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"2a69b79be262348ba283d4a0611c75cc\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"c380c5550e86a5b263f8dec7282803b5\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"851c7b377fc498df6b638300edfa3852\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACN,IAWHC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,YACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,qCAEb,CACDC,4BAA+B,CAAC"} \ No newline at end of file