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 [draw.io] <david@jgraph.com>2021-09-26 21:04:19 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-09-26 21:04:19 +0300
commitb4d4d4e5a83f499e36e50cb871c905cef7e10edb (patch)
treeb084b0ebd00a9967bf903d5c4ede4913e9cbe9e1
parent8ed77fcb4d0ab3e4d252e25d9f986b2b11c495f6 (diff)
15.3.4 releasev15.3.4
-rw-r--r--ChangeLog5
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/js/app.min.js64
-rw-r--r--src/main/webapp/js/diagramly/Editor.js27
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js8
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js14
-rw-r--r--src/main/webapp/js/grapheditor/Editor.js4
-rw-r--r--src/main/webapp/js/grapheditor/Format.js476
-rw-r--r--src/main/webapp/js/viewer-static.min.js516
-rw-r--r--src/main/webapp/js/viewer.min.js516
-rw-r--r--src/main/webapp/mxgraph/mxClient.js2
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
-rw-r--r--src/main/webapp/styles/grapheditor.css8
14 files changed, 842 insertions, 804 deletions
diff --git a/ChangeLog b/ChangeLog
index a07c4c23..6b00dd9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+26-SEP-2021: 15.3.4
+
+- Moves sketch option to preferences menu
+- Fixes mxSetting NPE
+
25-SEP-2021: 15.3.3
- Fixes update of zoom label
diff --git a/VERSION b/VERSION
index e618248e..3cad8b78 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-15.3.3 \ No newline at end of file
+15.3.4 \ 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 6e0d219f..940e7f61 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -234,7 +234,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"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");/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent)&&(urlParams.gapi="0");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};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:"15.3.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/"),
+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:"15.3.4",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),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]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -10528,7 +10528,7 @@ this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.colo
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 P=document.createElement("canvas"),S=new Image;S.onload=function(){try{P.getContext("2d").drawImage(S,0,0);var b=P.toDataURL("image/png");Editor.prototype.useCanvasForExport=
null!=b&&6<b.length}catch(I){}};S.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(K){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};b.afterDecode=function(b,d,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(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.3.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.3.4";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="1"==urlParams.dev?"/cache":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&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";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(b,c,d,e,g,k,m){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -10765,11 +10765,11 @@ return null}))}),l,e,z,k.size)}),mxUtils.bind(this,function(){this.handleError({
function(b){e(b,!0)},function(b){e(b,!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):e(!1,f)};EditorUi.prototype.parseFile=function(b,c,d){d=null!=d?d:b.name;var f=new FormData;f.append("format","xml");f.append("upfile",b,d);var e=new XMLHttpRequest;e.open("POST",
OPEN_URL);e.onreadystatechange=function(){c(e)};e.send(f);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(t){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,d,e,g,k,m){g=null!=g?g:this.maxImageSize;var f=Math.max(1,b.width),l=Math.max(1,b.height);if(e&&this.isResampleImageSize(null!=m?m:c.length,k))try{var n=Math.max(f/g,l/g);if(1<n){var p=Math.round(f/n),q=Math.round(l/
n),t=document.createElement("canvas");t.width=p;t.height=q;t.getContext("2d").drawImage(b,0,0,p,q);var u=t.toDataURL();if(u.length<c.length){var D=document.createElement("canvas");D.width=p;D.height=q;var E=D.toDataURL();u!==E&&(c=u,f=p,l=q)}}}catch(G){}d(c,f,l)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,d){try{var f=new Image;f.onload=function(){f.width=0<f.width?f.width:120;f.height=0<f.height?f.height:
-120;c(f)};null!=d&&(f.onerror=d);f.src=b}catch(q){if(null!=d)d(q);else throw q;}};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();this.doSetSketchMode(null!=mxSettings.settings.sketchMode?mxSettings.settings.sketchMode:"1"==urlParams.sketch&&"0"!=urlParams.rough);"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=
-mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(f,g.format,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+e+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(e),[d]);var n=c.model.getGeometry(d);
-null!=n&&(n=n.clone(),n.width=l,n.height=k,c.cellsResized([d],[n],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:f,format:g.format}))}finally{c.getModel().endUpdate()}},function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};c.cellEditor.editMermaidData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(f,
-g.config,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",e,[d]);var n=c.model.getGeometry(d);null!=n&&(n=n.clone(),n.width=Math.max(n.width,l),n.height=Math.max(n.height,k),c.cellsResized([d],[n],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:f,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};var d=c.cellEditor.startEditing;c.cellEditor.startEditing=
-function(f,e){try{var g=this.graph.getAttributeForCell(f,"plantUmlData");if(null!=g)this.editPlantUmlData(f,e,g);else if(g=this.graph.getAttributeForCell(f,"mermaidData"),null!=g)this.editMermaidData(f,e,g);else{var l=c.getCellStyle(f);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(f):d.apply(this,arguments)}}catch(H){b.handleError(H)}};c.getLinkTitle=function(c){return b.getLinkTitle(c)};c.customLinkClicked=function(c){var d=!1;try{b.handleCustomLink(c),d=!0}catch(J){b.handleError(J)}return d};
+120;c(f)};null!=d&&(f.onerror=d);f.src=b}catch(q){if(null!=d)d(q);else throw q;}};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"1"==urlParams.sketch&&"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&
+(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(f,g.format,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+e+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(e),
+[d]);var n=c.model.getGeometry(d);null!=n&&(n=n.clone(),n.width=l,n.height=k,c.cellsResized([d],[n],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:f,format:g.format}))}finally{c.getModel().endUpdate()}},function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};c.cellEditor.editMermaidData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&
+b.generateMermaidImage(f,g.config,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",e,[d]);var n=c.model.getGeometry(d);null!=n&&(n=n.clone(),n.width=Math.max(n.width,l),n.height=Math.max(n.height,k),c.cellsResized([d],[n],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:f,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};var d=c.cellEditor.startEditing;
+c.cellEditor.startEditing=function(f,e){try{var g=this.graph.getAttributeForCell(f,"plantUmlData");if(null!=g)this.editPlantUmlData(f,e,g);else if(g=this.graph.getAttributeForCell(f,"mermaidData"),null!=g)this.editMermaidData(f,e,g);else{var l=c.getCellStyle(f);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(f):d.apply(this,arguments)}}catch(H){b.handleError(H)}};c.getLinkTitle=function(c){return b.getLinkTitle(c)};c.customLinkClicked=function(c){var d=!1;try{b.handleCustomLink(c),d=!0}catch(J){b.handleError(J)}return d};
var e=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var c=e.apply(this,arguments);null!=c&&null!=c.src&&Graph.isPageLink(c.src)&&(c={originalSrc:c.src});return c};var g=c.setBackgroundImage;c.setBackgroundImage=function(c){null!=c&&null!=c.originalSrc&&(c=b.createImageForPageLink(c.originalSrc,b.currentPage,this));g.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,
function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(b,d){var f=null!=c.backgroundImage?c.backgroundImage.originalSrc:null;if(null!=f){var e=f.indexOf(",");if(0<e)for(var f=f.substring(e+1),e=d.getProperty("patches"),g=0;g<e.length;g++)if(null!=e[g][EditorUi.DIFF_UPDATE]&&null!=e[g][EditorUi.DIFF_UPDATE][f]){c.refreshBackgroundImage();break}}}));var m=c.getBackgroundImageObject;c.getBackgroundImageObject=function(b,c){var d=m.apply(this,arguments);
null==d||null==d.originalSrc||c||(d={src:d.originalSrc});return d};var u=this.clearDefaultStyle;this.clearDefaultStyle=function(){u.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 v=b.editor.getEditBlankUrl;
@@ -11908,31 +11908,31 @@ b.appendChild(c)}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("t
"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c));"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geMenuItem",c.style.marginLeft="6px",c.style.padding="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c));this.buttonContainer.appendChild(b);this.buttonContainer.style.top=
"6px"}};var q=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(b,c){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,b)){var d=mxUtils.getOffset(this.editorUi.picker);d.x+=this.editorUi.picker.offsetWidth+4;d.y+=b.offsetTop-c.height/2+16;return d}var e=q.apply(this,arguments),d=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);e.x+=d.x-16;e.y+=d.y;return e};var t=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=
function(b,c,d){var e=this.editorUi.editor.graph;b.smartSeparators=!0;t.apply(this,arguments);"1"==urlParams.sketch?e.isEnabled()&&(b.addSeparator(),1==e.getSelectionCount()&&this.addMenuItems(b,["-","lockUnlock"],null,d)):1==e.getSelectionCount()?(e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(b,e.isCellCollapsed(c)?["expand"]:["collapse"],null,d),this.addMenuItems(b,["collapsible","-","lockUnlock","enterGroup"],null,d),b.addSeparator(),this.addSubmenu("layout",b)):e.isSelectionEmpty()&&
-e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(b.addSeparator(),"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"]),(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"]),this.addMenuItems(b,["-","fullscreen"]))};
-var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var v=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);v.apply(this,arguments)};var x=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){x.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"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 A=Menus.prototype.init;Menus.prototype.init=function(){A.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("createShape").label=mxResources.get("shape")+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";
-c.actions.get("tags").label=mxResources.get("tags")+"...";c.actions.get("forkme").visible="1"!=urlParams.sketch;c.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=c.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){c.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=c.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){c.setSketchMode(!Editor.sketchMode)}));
-f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=new ParseDialog(c,"Insert from Text");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(c,"Insert from Text",
-"formatSql");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){e(c)},null,null,Editor.ctrlKey+"+Shift+K"));c.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(c)})).shortcut=c.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(c,
-mxResources.get("plantUml")+"...","plantUml");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(c,mxResources.get("mermaid")+"...","mermaid");c.showDialog(b.container,620,420,!0,!1);b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],
-c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();"1"!=urlParams.sketch&&(c.menus.addSubmenu("extras",b,d,mxResources.get("preferences")),b.addSeparator(d));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),
-d):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&c.menus.addMenuItems(b,["-","save"],d),("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&c.menus.addMenuItems(b,["saveAndExit"],d),b.addSeparator(d)):(c.menus.addMenuItems(b,["new"],d),c.menus.addSubmenu("openFrom",b,d),isLocalStorage&&this.addSubmenu("openRecent",b,d),"1"!=urlParams.sketch&&(b.addSeparator(d),null!=e&&e.constructor==DriveFile&&c.menus.addMenuItems(b,["share"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["synchronize"],d)),b.addSeparator(d),c.menus.addSubmenu("save",b,d));c.menus.addSubmenu("exportAs",b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,["import"],d):c.menus.addSubmenu("importFrom",b,d);"1"!=urlParams.sketch&&(c.menus.addMenuItems(b,["-","outline"],d),c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d));c.menus.addMenuItems(b,["-","findReplace","layers","tags"],d);"1"!=urlParams.sketch&&null!=
-e&&null!=c.fileNode&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));c.menus.addMenuItems(b,["-","pageSetup","pageScale"],d);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(b,["print"],d);"1"==urlParams.sketch&&(b.addSeparator(d),c.menus.addSubmenu("extras",b,d,mxResources.get("preferences")),e=c.getCurrentFile(),null!=e&&null!=c.fileNode&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||
-/(\.svg)$/i.test(e)||this.addMenuItems(b,["properties"],d)),b.addSeparator(d));b.addSeparator(d);c.menus.addSubmenu("help",b,d);"1"==urlParams.embed?c.menus.addMenuItems(b,["-","exit"],d):c.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null!=e&&e.constructor==DriveFile?c.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],d):(c.menus.addMenuItems(b,["save","saveAs","-","rename"],d),c.isOfflineApp()?navigator.onLine&&
-"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):c.menus.addMenuItems(b,["makeCopy"],d));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["-","synchronize"],d);c.menus.addMenuItems(b,["-","autosave"],d);null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["-","revisionHistory"],d)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){k.funct(b,
-d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(b,["publishLink"],d);b.addSeparator(d);c.menus.addSubmenu("embed",b,d)})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,d){c.menus.addInsertTableCellItem(b,d)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,e){m.funct(b,e);this.addMenuItems(b,["editDiagram"],e);"1"==urlParams.sketch&&(b.addSeparator(e),b.addItem(mxResources.get("csv")+"...",null,
-function(){c.showImportCsvDialog()},e,null,mxUtils.bind(d,d.isEnabled)),c.addInsertMenuItems(b,e,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",b,d);null!=l&&c.menus.addSubmenu("language",b,d);c.menus.addSubmenu("units",b,d);b.addSeparator(d);c.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand".split(" "),d);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-c.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],d);b.addSeparator(d);c.menus.addMenuItem(b,"configuration",d);!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(b,"plugins",d);b.addSeparator(d)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),d)})));mxUtils.bind(this,function(){var b=this.get("insert"),d=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?
-(c.menus.addMenuItems(b,["insertFreehand"],e),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(b,["insertTemplate"],e)):(d.apply(this,arguments),c.menus.addSubmenu("table",b,e),b.addSeparator(e));c.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,d,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(c,e,f);c.showDialog(b.container,620,420,!0,
-!1);b.init()}),d)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,
-mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var z=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(b,c,d){var e=n.menus.get(b),f=u.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),t);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top=
-"6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));n.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
-"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin=
-"0px");null!=n.statusContainer?q.insertBefore(k,n.statusContainer):q.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
+e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(this.addMenuItems(b,["-","fullscreen"]),(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"]))};var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=
+function(b,c,d){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var v=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);v.apply(this,arguments)};var x=EditorUi.prototype.setGraphEnabled;
+EditorUi.prototype.setGraphEnabled=function(b){x.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"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 A=Menus.prototype.init;Menus.prototype.init=function(){A.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("createShape").label=mxResources.get("shape")+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.get("tags").label=mxResources.get("tags")+"...";c.actions.get("forkme").visible="1"!=urlParams.sketch;
+c.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=c.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){c.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=c.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){c.setSketchMode(!Editor.sketchMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});c.actions.put("importCsv",new Action(mxResources.get("csv")+
+"...",function(){d.popupMenuHandler.hideMenu();c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=new ParseDialog(c,"Insert from Text");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("1"==
+urlParams.sketch?"moreShapes":"shapes")+"...",function(){e(c)},null,null,Editor.ctrlKey+"+Shift+K"));c.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(c)})).shortcut=c.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(c,mxResources.get("plantUml")+"...","plantUml");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("mermaid",
+new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(c,mxResources.get("mermaid")+"...","mermaid");c.showDialog(b.container,620,420,!0,!1);b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=
+function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();"1"!=urlParams.sketch&&(c.menus.addSubmenu("extras",b,d,mxResources.get("preferences")),b.addSeparator(d));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),d):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&c.menus.addMenuItems(b,["-","save"],d),("1"==
+urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&c.menus.addMenuItems(b,["saveAndExit"],d),b.addSeparator(d)):(c.menus.addMenuItems(b,["new"],d),c.menus.addSubmenu("openFrom",b,d),isLocalStorage&&this.addSubmenu("openRecent",b,d),"1"!=urlParams.sketch&&(b.addSeparator(d),null!=e&&e.constructor==DriveFile&&c.menus.addMenuItems(b,["share"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["synchronize"],d)),b.addSeparator(d),
+c.menus.addSubmenu("save",b,d));c.menus.addSubmenu("exportAs",b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,["import"],d):c.menus.addSubmenu("importFrom",b,d);"1"!=urlParams.sketch&&(c.menus.addMenuItems(b,["-","outline"],d),c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d));c.menus.addMenuItems(b,["-","findReplace","layers","tags"],d);"1"!=urlParams.sketch&&null!=e&&null!=c.fileNode&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||
+/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));c.menus.addMenuItems(b,["-","pageSetup","pageScale"],d);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(b,["print"],d);"1"==urlParams.sketch&&(b.addSeparator(d),c.menus.addSubmenu("extras",b,d,mxResources.get("preferences")),e=c.getCurrentFile(),null!=e&&null!=c.fileNode&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["properties"],d)),b.addSeparator(d));
+b.addSeparator(d);c.menus.addSubmenu("help",b,d);"1"==urlParams.embed?c.menus.addMenuItems(b,["-","exit"],d):c.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null!=e&&e.constructor==DriveFile?c.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],d):(c.menus.addMenuItems(b,["save","saveAs","-","rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,
+["upload"],d):c.menus.addMenuItems(b,["makeCopy"],d));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["-","synchronize"],d);c.menus.addMenuItems(b,["-","autosave"],d);null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["-","revisionHistory"],d)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){k.funct(b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(b,
+["publishLink"],d);b.addSeparator(d);c.menus.addSubmenu("embed",b,d)})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,d){c.menus.addInsertTableCellItem(b,d)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,e){m.funct(b,e);this.addMenuItems(b,["editDiagram"],e);"1"==urlParams.sketch&&(b.addSeparator(e),b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},e,null,mxUtils.bind(d,d.isEnabled)),c.addInsertMenuItems(b,
+e,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",b,d);null!=l&&c.menus.addSubmenu("language",b,d);c.menus.addSubmenu("units",b,d);b.addSeparator(d);c.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand".split(" "),d);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],d);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(b,
+["-","showStartScreen","search","scratchpad"],d);b.addSeparator(d);c.menus.addMenuItem(b,"configuration",d);!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(b,"plugins",d);b.addSeparator(d)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),d)})));mxUtils.bind(this,function(){var b=this.get("insert"),d=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(c.menus.addMenuItems(b,
+["insertFreehand"],e),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(b,["insertTemplate"],e)):(d.apply(this,arguments),c.menus.addSubmenu("table",b,e),b.addSeparator(e));c.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,d,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(c,e,f);c.showDialog(b.container,620,420,!0,!1);b.init()}),d)};this.put("insertLayout",
+new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,
+function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var z=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(b,c,d){var e=n.menus.get(b),f=u.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),t);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight=
+"6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));n.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",
+f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=
+n.statusContainer?q.insertBefore(k,n.statusContainer):q.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),p.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";
d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=n.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(d,n.statusContainer):q.appendChild(d);return d}function k(){for(var b=q.firstChild;null!=b;){var e=
b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=e}t=q.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>d||"1"==urlParams.sketch,k=null;b||(k=c("diagram"));"1"==urlParams.sketch?Y.style.left=58>O.offsetTop-O.offsetHeight/2?"70px":"10px":(e=b?c("diagram",null,Editor.drawLogoImage):null,null!=e&&(k=e),g([k,f(mxResources.get("shapes"),n.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index a0a68ee3..16a97bb8 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -4465,7 +4465,7 @@
btn.setAttribute('title', mxResources.get('copyStyle') + ' (' + this.editorUi.actions.get('copyStyle').shortcut + ')');
btn.style.marginBottom = '2px';
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginRight = '2px';
div.appendChild(btn);
@@ -4479,13 +4479,13 @@
btn.setAttribute('title', mxResources.get('pasteStyle') + ' (' + this.editorUi.actions.get('pasteStyle').shortcut + ')');
btn.style.marginBottom = '2px';
- btn.style.width = '100px';
+ btn.style.width = '104px';
div.appendChild(btn);
}
else
{
- btn.style.width = '202px';
+ btn.style.width = '210px';
}
mxUtils.br(div);
@@ -4741,7 +4741,9 @@
var td = document.createElement('td');
td.className = 'gePropRowCell';
- td.innerHTML = mxUtils.htmlEntities(mxResources.get(pDiplayName, null, pDiplayName));
+ var label = mxResources.get(pDiplayName, null, pDiplayName);
+ mxUtils.write(td, label);
+ td.setAttribute('title', label);
if (rightAlig)
{
@@ -4770,7 +4772,7 @@
if (op.val == pValue)
{
- td.innerHTML = mxUtils.htmlEntities(mxResources.get(op.dispName, null, op.dispName));
+ mxUtils.write(td, mxResources.get(op.dispName, null, op.dispName));
break;
}
}
@@ -4785,7 +4787,7 @@
var op = pEnumList[i];
var opElem = document.createElement('option');
opElem.value = mxUtils.htmlEntities(op.val);
- opElem.innerHTML = mxUtils.htmlEntities(mxResources.get(op.dispName, null, op.dispName));
+ mxUtils.write(opElem, mxResources.get(op.dispName, null, op.dispName));
select.appendChild(opElem);
}
@@ -4941,6 +4943,7 @@
th.className = 'gePropHeaderCell';
var collapseImg = document.createElement('img');
collapseImg.src = Sidebar.prototype.expandedImage;
+ collapseImg.style.verticalAlign = 'middle';
th.appendChild(collapseImg);
mxUtils.write(th, mxResources.get('property'));
hrow.style.cursor = 'pointer';
@@ -5391,7 +5394,7 @@
}));
btn.setAttribute('title', mxResources.get('editStyle') + ' (' + this.editorUi.actions.get('editStyle').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -5412,12 +5415,12 @@
if (btn == null)
{
- btn2.style.width = '202px';
+ btn2.style.width = '210px';
}
else
{
- btn.style.width = '100px';
- btn2.style.width = '100px';
+ btn.style.width = '104px';
+ btn2.style.width = '104px';
btn2.style.marginLeft = '2px';
}
@@ -5439,8 +5442,8 @@
}
else
{
- btn.style.width = '100px';
- btn2.style.width = '100px';
+ btn.style.width = '104px';
+ btn2.style.width = '104px';
btn2.style.marginLeft = '2px';
}
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index e32fc33b..6d2cbce9 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -8955,13 +8955,13 @@
{
mxStencilRegistry.allowEval = mxStencilRegistry.allowEval && !this.isOfflineApp();
- this.doSetSketchMode((mxSettings.settings.sketchMode != null) ?
- mxSettings.settings.sketchMode : urlParams['sketch'] == '1' &&
- urlParams['rough'] != '0');
-
// Must be set before UI is created in superclass
if (typeof window.mxSettings !== 'undefined')
{
+ this.doSetSketchMode((mxSettings.settings.sketchMode != null &&
+ urlParams['rough'] == null) ? mxSettings.settings.sketchMode :
+ urlParams['sketch'] == '1' && urlParams['rough'] != '0');
+
this.formatWidth = mxSettings.getFormatWidth();
}
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index 83b68583..c2716100 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -761,19 +761,12 @@ EditorUi.initMinimalTheme = function()
if (graph.isEnabled() && graph.isSelectionEmpty())
{
- menu.addSeparator();
-
- if (urlParams['sketch'] == '1')
- {
- this.addMenuItems(menu, ['toggleSketchMode']);
- }
+ this.addMenuItems(menu, ['-', 'fullscreen']);
if (Editor.isDarkMode() || (!mxClient.IS_IE && !mxClient.IS_IE11))
{
this.addMenuItems(menu, ['toggleDarkMode']);
}
-
- this.addMenuItems(menu, ['-', 'fullscreen']);
}
};
@@ -1256,6 +1249,11 @@ EditorUi.initMinimalTheme = function()
menu.addSeparator(parent);
ui.menus.addMenuItems(menu, ['scrollbars', 'tooltips', 'ruler', '-', 'copyConnect', 'collapseExpand'], parent);
+ if (urlParams['sketch'] == '1')
+ {
+ this.addMenuItems(menu, ['toggleSketchMode'], parent);
+ }
+
if (urlParams['embed'] != '1' && (isLocalStorage || mxClient.IS_CHROMEAPP))
{
ui.menus.addMenuItems(menu, ['-', 'showStartScreen', 'search', 'scratchpad'], parent);
diff --git a/src/main/webapp/js/grapheditor/Editor.js b/src/main/webapp/js/grapheditor/Editor.js
index 899a51fc..e4a69f4e 100644
--- a/src/main/webapp/js/grapheditor/Editor.js
+++ b/src/main/webapp/js/grapheditor/Editor.js
@@ -1673,7 +1673,9 @@ PageSetupDialog.addPageFormatPanel = function(div, namePostfix, pageFormat, page
var paperSizeSelect = document.createElement('select');
paperSizeSelect.style.marginBottom = '8px';
- paperSizeSelect.style.width = '202px';
+ paperSizeSelect.style.borderRadius = '4px';
+ paperSizeSelect.style.border = '1px solid rgb(160, 160, 160)';
+ paperSizeSelect.style.width = '206px';
var formatDiv = document.createElement('div');
formatDiv.style.marginLeft = '4px';
diff --git a/src/main/webapp/js/grapheditor/Format.js b/src/main/webapp/js/grapheditor/Format.js
index f61170eb..10cccdd2 100644
--- a/src/main/webapp/js/grapheditor/Format.js
+++ b/src/main/webapp/js/grapheditor/Format.js
@@ -825,7 +825,7 @@ BaseFormatPanel.prototype.createPanel = function()
{
var div = document.createElement('div');
div.className = 'geFormatSection';
- div.style.padding = '12px 0px 12px 18px';
+ div.style.padding = '12px 0px 12px 14px';
return div;
};
@@ -852,11 +852,11 @@ BaseFormatPanel.prototype.createTitle = function(title)
BaseFormatPanel.prototype.createStepper = function(input, update, step, height, disableFocus, defaultValue, isFloat)
{
step = (step != null) ? step : 1;
- height = (height != null) ? height : 8;
+ height = (height != null) ? height : 9;
if (mxClient.IS_MT || document.documentMode >= 8)
{
- height = height + 1;
+ //height = height + 1;
}
var stepper = document.createElement('div');
@@ -965,7 +965,7 @@ BaseFormatPanel.prototype.createStepper = function(input, update, step, height,
BaseFormatPanel.prototype.createOption = function(label, isCheckedFn, setCheckedFn, listener, fn)
{
var div = document.createElement('div');
- div.style.padding = '6px 0px 1px 0px';
+ div.style.padding = '3px 0px 3px 0px';
div.style.whiteSpace = 'nowrap';
div.style.overflow = 'hidden';
div.style.width = '200px';
@@ -973,10 +973,12 @@ BaseFormatPanel.prototype.createOption = function(label, isCheckedFn, setChecked
var cb = document.createElement('input');
cb.setAttribute('type', 'checkbox');
- cb.style.margin = '0px 6px 0px 0px';
+ cb.style.margin = '1px 6px 0px 0px';
+ cb.style.verticalAlign = 'top';
div.appendChild(cb);
var span = document.createElement('span');
+ span.style.verticalAlign = 'top';
mxUtils.write(span, label);
div.appendChild(span);
@@ -1125,7 +1127,7 @@ BaseFormatPanel.prototype.createColorOption = function(label, getColorFn, setCol
defaultColor, listener, callbackFn, hideCheckbox, defaultColorValue)
{
var div = document.createElement('div');
- div.style.padding = '6px 0px 1px 0px';
+ div.style.padding = '3px 0px 3px 0px';
div.style.whiteSpace = 'nowrap';
div.style.overflow = 'hidden';
div.style.width = '200px';
@@ -1133,7 +1135,8 @@ BaseFormatPanel.prototype.createColorOption = function(label, getColorFn, setCol
var cb = document.createElement('input');
cb.setAttribute('type', 'checkbox');
- cb.style.margin = '0px 6px 0px 0px';
+ cb.style.margin = '1px 6px 0px 0px';
+ cb.style.verticalAlign = 'top';
if (!hideCheckbox)
{
@@ -1141,9 +1144,10 @@ BaseFormatPanel.prototype.createColorOption = function(label, getColorFn, setCol
}
var span = document.createElement('span');
+ span.style.verticalAlign = 'top';
mxUtils.write(span, label);
div.appendChild(span);
-
+
var title = 'Shift+Click for Color Dropper';
var value = getColorFn();
var applying = false;
@@ -1248,8 +1252,8 @@ BaseFormatPanel.prototype.createColorOption = function(label, getColorFn, setCol
}));
btn.style.position = 'absolute';
- btn.style.marginTop = '-4px';
- btn.style.right = '20px';
+ btn.style.marginTop = '-3px';
+ btn.style.left = '178px';
btn.style.height = '22px';
btn.className = 'geColorBtn';
btn.style.display = (cb.checked || hideCheckbox) ? '' : 'none';
@@ -1368,8 +1372,8 @@ BaseFormatPanel.prototype.addArrow = function(elt, height)
var arrow = document.createElement('div');
arrow.style.display = 'inline-block';
- arrow.style.padding = '6px';
arrow.style.paddingRight = '4px';
+ arrow.style.padding = '6px';
var m = (10 - height);
@@ -1392,8 +1396,8 @@ BaseFormatPanel.prototype.addArrow = function(elt, height)
var img = arrow.getElementsByTagName('img')[0];
img.style.position = 'relative';
- img.style.left = '2px';
- img.style.top = '-4px';
+ img.style.left = '1px';
+ img.style.top = (mxClient.IS_FF) ? '0px' : '-4px';
mxUtils.setOpacity(arrow, 70);
var symbol = elt.getElementsByTagName('div')[0];
@@ -1433,6 +1437,11 @@ BaseFormatPanel.prototype.addUnitInput = function(container, unit, right, width,
input.style.marginTop = '-2px';
input.style.right = (right + 12) + 'px';
input.style.width = width + 'px';
+ input.style.height = '21px';
+ input.style.border = '1px solid rgb(160, 160, 160)';
+ input.style.borderRadius = '4px';
+ input.style.boxSizing = 'border-box';
+
container.appendChild(input);
var stepper = this.createStepper(input, update, step, null, disableFocus, null, isFloat);
@@ -1448,7 +1457,7 @@ BaseFormatPanel.prototype.addUnitInput = function(container, unit, right, width,
*/
BaseFormatPanel.prototype.createRelativeOption = function(label, key, width, handler, init)
{
- width = (width != null) ? width : 44;
+ width = (width != null) ? width : 52;
var graph = this.editorUi.editor.graph;
var div = this.createPanel();
@@ -1489,7 +1498,7 @@ BaseFormatPanel.prototype.createRelativeOption = function(label, key, width, han
mxEvent.consume(evt);
});
- var input = this.addUnitInput(div, '%', 20, width, update, 10, -14, handler != null);
+ var input = this.addUnitInput(div, '%', 16, width, update, 10, -15, handler != null);
if (key != null)
{
@@ -1674,7 +1683,7 @@ ArrangePanel.prototype.init = function()
span.style.width = '100%';
span.style.marginTop = '0px';
span.style.fontWeight = 'bold';
- span.style.padding = '10px 0 0 18px';
+ span.style.padding = '10px 0 0 14px';
mxUtils.write(span, mxResources.get('style'));
this.container.appendChild(span);
@@ -1867,7 +1876,7 @@ ArrangePanel.prototype.addLayerOps = function(div)
})
btn.setAttribute('title', mxResources.get('toFront') + ' (' + this.editorUi.actions.get('toFront').shortcut + ')');
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginRight = '2px';
div.appendChild(btn);
@@ -1877,7 +1886,7 @@ ArrangePanel.prototype.addLayerOps = function(div)
})
btn.setAttribute('title', mxResources.get('toBack') + ' (' + this.editorUi.actions.get('toBack').shortcut + ')');
- btn.style.width = '100px';
+ btn.style.width = '104px';
div.appendChild(btn);
if (graph.getSelectionCount() == 1)
@@ -1890,7 +1899,7 @@ ArrangePanel.prototype.addLayerOps = function(div)
})
btn.setAttribute('title', mxResources.get('bringForward'));
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginRight = '2px';
div.appendChild(btn);
@@ -1900,7 +1909,7 @@ ArrangePanel.prototype.addLayerOps = function(div)
})
btn.setAttribute('title', mxResources.get('sendBackward'));
- btn.style.width = '100px';
+ btn.style.width = '104px';
div.appendChild(btn);
}
@@ -1930,7 +1939,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
})
btn.setAttribute('title', mxResources.get('group') + ' (' + this.editorUi.actions.get('group').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
count++;
@@ -1945,7 +1954,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
btn.setAttribute('title', mxResources.get('ungroup') + ' (' +
this.editorUi.actions.get('ungroup').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
count++;
@@ -1966,7 +1975,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
btn.setAttribute('title', mxResources.get('copySize') + ' (' +
this.editorUi.actions.get('copySize').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -1985,9 +1994,9 @@ ArrangePanel.prototype.addGroupOps = function(div)
div.appendChild(btn2);
count++;
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginBottom = '2px';
- btn2.style.width = '100px';
+ btn2.style.width = '104px';
btn2.style.marginBottom = '2px';
}
}
@@ -2022,7 +2031,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
btn.setAttribute('title', mxResources.get('copyData') + ' (' +
this.editorUi.actions.get('copyData').shortcut + ')' +
' Shift+Click to Extract Data');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -2041,9 +2050,9 @@ ArrangePanel.prototype.addGroupOps = function(div)
div.appendChild(btn2);
count++;
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginBottom = '2px';
- btn2.style.width = '100px';
+ btn2.style.width = '104px';
btn2.style.marginBottom = '2px';
}
}
@@ -2062,7 +2071,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
})
btn.setAttribute('title', mxResources.get('removeFromGroup'));
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
count++;
@@ -2080,7 +2089,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
}));
btn.setAttribute('title', mxResources.get('clearWaypoints') + ' (' + this.editorUi.actions.get('clearWaypoints').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -2100,7 +2109,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
}));
btn.setAttribute('title', mxResources.get('editData') + ' (' + this.editorUi.actions.get('editData').shortcut + ')');
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
count++;
@@ -2111,7 +2120,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
}));
btn.setAttribute('title', mxResources.get('editLink') + ' (' + this.editorUi.actions.get('editLink').shortcut + ')');
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginLeft = '2px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -2157,7 +2166,7 @@ ArrangePanel.prototype.addAlign = function(div)
function() { graph.alignCells(mxConstants.ALIGN_BOTTOM); }, stylePanel);
this.styleButtons([left, center, right, top, middle, bottom]);
- right.style.marginRight = '6px';
+ right.style.marginRight = '8px';
div.appendChild(stylePanel);
return div;
@@ -2187,7 +2196,7 @@ ArrangePanel.prototype.addFlip = function(div)
})
btn.setAttribute('title', mxResources.get('horizontal'));
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginRight = '2px';
div.appendChild(btn);
@@ -2197,7 +2206,7 @@ ArrangePanel.prototype.addFlip = function(div)
})
btn.setAttribute('title', mxResources.get('vertical'));
- btn.style.width = '100px';
+ btn.style.width = '104px';
div.appendChild(btn);
return div;
@@ -2222,7 +2231,7 @@ ArrangePanel.prototype.addDistribute = function(div)
})
btn.setAttribute('title', mxResources.get('horizontal'));
- btn.style.width = '100px';
+ btn.style.width = '104px';
btn.style.marginRight = '2px';
div.appendChild(btn);
@@ -2232,7 +2241,7 @@ ArrangePanel.prototype.addDistribute = function(div)
})
btn.setAttribute('title', mxResources.get('vertical'));
- btn.style.width = '100px';
+ btn.style.width = '104px';
div.appendChild(btn);
return div;
@@ -2265,7 +2274,7 @@ ArrangePanel.prototype.addAngle = function(div)
mxUtils.write(span, mxResources.get('angle'));
div.appendChild(span);
- input = this.addUnitInput(div, '°', 20, 44, function()
+ input = this.addUnitInput(div, '°', 16, 52, function()
{
update.apply(this, arguments);
});
@@ -2297,7 +2306,7 @@ ArrangePanel.prototype.addAngle = function(div)
})
btn.setAttribute('title', label + ' (' + this.editorUi.actions.get('turn').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
div.appendChild(btn);
if (input != null)
@@ -2407,11 +2416,11 @@ ArrangePanel.prototype.addGeometry = function(container)
div.appendChild(span);
var widthUpdate, heightUpdate, leftUpdate, topUpdate;
- var width = this.addUnitInput(div, this.getUnit(), 84, 44, function()
+ var width = this.addUnitInput(div, this.getUnit(), 87, 52, function()
{
widthUpdate.apply(this, arguments);
}, this.getUnitStep(), null, null, this.isFloatUnit());
- var height = this.addUnitInput(div, this.getUnit(), 20, 44, function()
+ var height = this.addUnitInput(div, this.getUnit(), 16, 52, function()
{
heightUpdate.apply(this, arguments);
}, this.getUnitStep(), null, null, this.isFloatUnit());
@@ -2450,10 +2459,10 @@ ArrangePanel.prototype.addGeometry = function(container)
}
else
{
- this.addLabel(div, mxResources.get('width'), 84);
+ this.addLabel(div, mxResources.get('width'), 87);
}
- this.addLabel(div, mxResources.get('height'), 20);
+ this.addLabel(div, mxResources.get('height'), 16);
mxUtils.br(div);
var wrapper = document.createElement('div');
@@ -2543,19 +2552,19 @@ ArrangePanel.prototype.addGeometry = function(container)
mxUtils.write(span, mxResources.get('position'));
div2.appendChild(span);
- var left = this.addUnitInput(div2, this.getUnit(), 84, 44, function()
+ var left = this.addUnitInput(div2, this.getUnit(), 87, 52, function()
{
leftUpdate.apply(this, arguments);
}, this.getUnitStep(), null, null, this.isFloatUnit());
- var top = this.addUnitInput(div2, this.getUnit(), 20, 44, function()
+ var top = this.addUnitInput(div2, this.getUnit(), 16, 52, function()
{
topUpdate.apply(this, arguments);
}, this.getUnitStep(), null, null, this.isFloatUnit());
mxUtils.br(div2);
- this.addLabel(div2, mxResources.get('left'), 84);
- this.addLabel(div2, mxResources.get('top'), 20);
+ this.addLabel(div2, mxResources.get('left'), 87);
+ this.addLabel(div2, mxResources.get('top'), 16);
var listener = mxUtils.bind(this, function(sender, evt, force)
{
@@ -2663,7 +2672,7 @@ ArrangePanel.prototype.addGeometry = function(container)
}));
btn.setAttribute('title', mxResources.get('center'));
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.position = 'absolute';
mxUtils.br(div2);
mxUtils.br(div2);
@@ -2832,7 +2841,7 @@ ArrangePanel.prototype.addEdgeGeometry = function(container)
div.appendChild(span);
var widthUpdate, xtUpdate, ytUpdate, xsUpdate, ysUpdate;
- var width = this.addUnitInput(div, 'pt', 20, 44, function()
+ var width = this.addUnitInput(div, 'pt', 12, 44, function()
{
widthUpdate.apply(this, arguments);
});
@@ -2874,18 +2883,18 @@ ArrangePanel.prototype.addEdgeGeometry = function(container)
mxUtils.write(span, 'Start');
divs.appendChild(span);
- var xs = this.addUnitInput(divs, 'pt', 84, 44, function()
+ var xs = this.addUnitInput(divs, 'pt', 87, 52, function()
{
xsUpdate.apply(this, arguments);
});
- var ys = this.addUnitInput(divs, 'pt', 20, 44, function()
+ var ys = this.addUnitInput(divs, 'pt', 16, 52, function()
{
ysUpdate.apply(this, arguments);
});
mxUtils.br(divs);
- this.addLabel(divs, mxResources.get('left'), 84);
- this.addLabel(divs, mxResources.get('top'), 20);
+ this.addLabel(divs, mxResources.get('left'), 87);
+ this.addLabel(divs, mxResources.get('top'), 16);
container.appendChild(divs);
this.addKeyHandler(xs, listener);
this.addKeyHandler(ys, listener);
@@ -2901,18 +2910,18 @@ ArrangePanel.prototype.addEdgeGeometry = function(container)
mxUtils.write(span, 'End');
divt.appendChild(span);
- var xt = this.addUnitInput(divt, 'pt', 84, 44, function()
+ var xt = this.addUnitInput(divt, 'pt', 87, 52, function()
{
xtUpdate.apply(this, arguments);
});
- var yt = this.addUnitInput(divt, 'pt', 20, 44, function()
+ var yt = this.addUnitInput(divt, 'pt', 16, 52, function()
{
ytUpdate.apply(this, arguments);
});
mxUtils.br(divt);
- this.addLabel(divt, mxResources.get('left'), 84);
- this.addLabel(divt, mxResources.get('top'), 20);
+ this.addLabel(divt, mxResources.get('left'), 87);
+ this.addLabel(divt, mxResources.get('top'), 16);
container.appendChild(divt);
this.addKeyHandler(xt, listener);
this.addKeyHandler(yt, listener);
@@ -3025,7 +3034,7 @@ TextFormatPanel.prototype.addFont = function(container)
var ss = this.format.getSelectionState();
var title = this.createTitle(mxResources.get('font'));
- title.style.paddingLeft = '18px';
+ title.style.paddingLeft = '14px';
title.style.paddingTop = '10px';
title.style.paddingBottom = '6px';
container.appendChild(title);
@@ -3049,7 +3058,7 @@ TextFormatPanel.prototype.addFont = function(container)
cssMenu.style.overflow = 'hidden';
cssMenu.style.margin = '0px';
this.addArrow(cssMenu);
- cssMenu.style.width = '192px';
+ cssMenu.style.width = '200px';
cssMenu.style.height = '15px';
var arrow = cssMenu.getElementsByTagName('div')[0];
@@ -3073,7 +3082,7 @@ TextFormatPanel.prototype.addFont = function(container)
fontMenu.style.margin = '0px';
this.addArrow(fontMenu);
- fontMenu.style.width = '192px';
+ fontMenu.style.width = '200px';
fontMenu.style.height = '15px';
var stylePanel2 = stylePanel.cloneNode(false);
@@ -3187,7 +3196,7 @@ TextFormatPanel.prototype.addFont = function(container)
{
document.execCommand('superscript', false, null);
}, stylePanel3)]);
- sub.style.marginLeft = '9px';
+ sub.style.marginLeft = '10px';
var tmp = stylePanel3.cloneNode(false);
tmp.style.paddingTop = '4px';
@@ -3222,7 +3231,7 @@ TextFormatPanel.prototype.addFont = function(container)
graph.cellEditor.toggleViewMode();
}, tmp)];
this.styleButtons(btns);
- btns[btns.length - 2].style.marginLeft = '9px';
+ btns[btns.length - 2].style.marginLeft = '10px';
container.appendChild(tmp);
}
@@ -3244,8 +3253,10 @@ TextFormatPanel.prototype.addFont = function(container)
// Adds label position options
var positionSelect = document.createElement('select');
positionSelect.style.position = 'absolute';
- positionSelect.style.right = '20px';
+ positionSelect.style.right = '16px';
positionSelect.style.width = '97px';
+ positionSelect.style.border = '1px solid rgb(160, 160, 160)';
+ positionSelect.style.borderRadius = '4px';
positionSelect.style.marginTop = '-2px';
var directions = ['topLeft', 'top', 'topRight', 'left', 'center', 'right', 'bottomLeft', 'bottom', 'bottomRight'];
@@ -3284,8 +3295,10 @@ TextFormatPanel.prototype.addFont = function(container)
// handle multiple different styles for current selection
var dirSelect = document.createElement('select');
dirSelect.style.position = 'absolute';
- dirSelect.style.right = '20px';
+ dirSelect.style.border = '1px solid rgb(160, 160, 160)';
+ dirSelect.style.right = '16px';
dirSelect.style.width = '97px';
+ dirSelect.style.borderRadius = '4px';
dirSelect.style.marginTop = '-2px';
// NOTE: For automatic we use the value null since automatic
@@ -3343,16 +3356,17 @@ TextFormatPanel.prototype.addFont = function(container)
});
}
- // Font size
+ // Fontsize
var input = document.createElement('input');
+ input.style.position = 'absolute';
+ input.style.border = '1px solid rgb(160, 160, 160)';
input.style.textAlign = 'right';
input.style.marginTop = '4px';
-
- input.style.position = 'absolute';
- input.style.right = '32px';
-
- input.style.width = '40px';
- input.style.height = '17px';
+ input.style.left = '156px';
+ input.style.width = '52px';
+ input.style.borderRadius = '4px';
+ input.style.height = '23px';
+ input.style.boxSizing = 'border-box';
stylePanel2.appendChild(input);
// Workaround for font size 4 if no text is selected is update font size below
@@ -3493,7 +3507,7 @@ TextFormatPanel.prototype.addFont = function(container)
var stepper = this.createStepper(input, inputUpdate, 1, 10, true, Menus.prototype.defaultFontSize);
stepper.style.display = input.style.display;
stepper.style.marginTop = '4px';
- stepper.style.right = '20px';
+ stepper.style.left = '208px';
stylePanel2.appendChild(stepper);
@@ -3687,38 +3701,38 @@ TextFormatPanel.prototype.addFont = function(container)
spacingPanel.appendChild(span);
var topUpdate, globalUpdate, leftUpdate, bottomUpdate, rightUpdate;
- var topSpacing = this.addUnitInput(spacingPanel, 'pt', 91, 44, function()
+ var topSpacing = this.addUnitInput(spacingPanel, 'pt', 87, 52, function()
{
topUpdate.apply(this, arguments);
});
- var globalSpacing = this.addUnitInput(spacingPanel, 'pt', 20, 44, function()
+ var globalSpacing = this.addUnitInput(spacingPanel, 'pt', 16, 52, function()
{
globalUpdate.apply(this, arguments);
});
mxUtils.br(spacingPanel);
- this.addLabel(spacingPanel, mxResources.get('top'), 91);
- this.addLabel(spacingPanel, mxResources.get('global'), 20);
+ this.addLabel(spacingPanel, mxResources.get('top'), 87);
+ this.addLabel(spacingPanel, mxResources.get('global'), 16);
mxUtils.br(spacingPanel);
mxUtils.br(spacingPanel);
- var leftSpacing = this.addUnitInput(spacingPanel, 'pt', 162, 44, function()
+ var leftSpacing = this.addUnitInput(spacingPanel, 'pt', 158, 52, function()
{
leftUpdate.apply(this, arguments);
});
- var bottomSpacing = this.addUnitInput(spacingPanel, 'pt', 91, 44, function()
+ var bottomSpacing = this.addUnitInput(spacingPanel, 'pt', 87, 52, function()
{
bottomUpdate.apply(this, arguments);
});
- var rightSpacing = this.addUnitInput(spacingPanel, 'pt', 20, 44, function()
+ var rightSpacing = this.addUnitInput(spacingPanel, 'pt', 16, 52, function()
{
rightUpdate.apply(this, arguments);
});
mxUtils.br(spacingPanel);
- this.addLabel(spacingPanel, mxResources.get('left'), 162);
- this.addLabel(spacingPanel, mxResources.get('bottom'), 91);
- this.addLabel(spacingPanel, mxResources.get('right'), 20);
+ this.addLabel(spacingPanel, mxResources.get('left'), 158);
+ this.addLabel(spacingPanel, mxResources.get('bottom'), 87);
+ this.addLabel(spacingPanel, mxResources.get('right'), 16);
if (!graph.cellEditor.isContentEditing())
{
@@ -3912,7 +3926,7 @@ TextFormatPanel.prototype.addFont = function(container)
}
}), tablePanel)];
this.styleButtons(btns);
- btns[2].style.marginRight = '9px';
+ btns[2].style.marginRight = '10px';
var wrapper3 = this.createPanel();
wrapper3.style.paddingTop = '10px';
@@ -4037,7 +4051,7 @@ TextFormatPanel.prototype.addFont = function(container)
}
}, tablePanel2)];
this.styleButtons(btns);
- btns[2].style.marginRight = '9px';
+ btns[2].style.marginRight = '10px';
wrapper3.appendChild(tablePanel2);
container.appendChild(wrapper3);
@@ -4487,7 +4501,7 @@ StyleFormatPanel.prototype.init = function()
this.container.appendChild(this.addStroke(this.createPanel()));
this.container.appendChild(this.addLineJumps(this.createPanel()));
- var opacityPanel = this.createRelativeOption(mxResources.get('opacity'), mxConstants.STYLE_OPACITY, 41);
+ var opacityPanel = this.createRelativeOption(mxResources.get('opacity'), mxConstants.STYLE_OPACITY);
opacityPanel.style.paddingTop = '8px';
opacityPanel.style.paddingBottom = '8px';
this.container.appendChild(opacityPanel);
@@ -4653,7 +4667,7 @@ StyleFormatPanel.prototype.addEditOps = function(div)
}));
btn.setAttribute('title', mxResources.get('editStyle') + ' (' + this.editorUi.actions.get('editStyle').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -4671,12 +4685,12 @@ StyleFormatPanel.prototype.addEditOps = function(div)
if (btn == null)
{
- btn2.style.width = '202px';
+ btn2.style.width = '210px';
}
else
{
- btn.style.width = '100px';
- btn2.style.width = '100px';
+ btn.style.width = '104px';
+ btn2.style.width = '104px';
btn2.style.marginLeft = '2px';
}
@@ -4700,9 +4714,14 @@ StyleFormatPanel.prototype.addFill = function(container)
// Adds gradient direction option
var gradientSelect = document.createElement('select');
gradientSelect.style.position = 'absolute';
- gradientSelect.style.marginTop = '-2px';
- gradientSelect.style.right = '72px';
+ gradientSelect.style.left = '106px';
gradientSelect.style.width = '70px';
+ gradientSelect.style.height = '22px';
+ gradientSelect.style.padding = '0px';
+ gradientSelect.style.marginTop = '-3px';
+ gradientSelect.style.borderRadius = '4px';
+ gradientSelect.style.border = '1px solid rgb(160, 160, 160)';
+ gradientSelect.style.boxSizing = 'border-box';
var fillStyleSelect = gradientSelect.cloneNode(false);
@@ -4874,9 +4893,14 @@ StyleFormatPanel.prototype.addStroke = function(container)
// Adds gradient direction option
var styleSelect = document.createElement('select');
styleSelect.style.position = 'absolute';
- styleSelect.style.marginTop = '-2px';
- styleSelect.style.right = '72px';
+ styleSelect.style.height = '22px';
+ styleSelect.style.padding = '0px';
+ styleSelect.style.marginTop = '-3px';
+ styleSelect.style.boxSizing = 'border-box';
+ styleSelect.style.right = '68px';
styleSelect.style.width = '80px';
+ styleSelect.style.border = '1px solid rgb(160, 160, 160)';
+ styleSelect.style.borderRadius = '4px';
var styles = ['sharp', 'rounded', 'curved'];
@@ -4944,8 +4968,9 @@ StyleFormatPanel.prototype.addStroke = function(container)
stylePanel.style.fontWeight = 'normal';
stylePanel.style.whiteSpace = 'nowrap';
stylePanel.style.position = 'relative';
- stylePanel.style.paddingLeft = '16px'
+ stylePanel.style.paddingLeft = '0px';
stylePanel.style.marginBottom = '2px';
+ stylePanel.style.overflow = 'hidden';
stylePanel.style.marginTop = '2px';
stylePanel.className = 'geToolbarContainer';
@@ -4999,9 +5024,15 @@ StyleFormatPanel.prototype.addStroke = function(container)
// Stroke width
var input = document.createElement('input');
+ input.style.position = 'absolute';
input.style.textAlign = 'right';
- input.style.marginTop = (uiTheme == 'min') ? '0px' : '2px';
- input.style.width = '41px';
+ input.style.marginTop = (uiTheme == 'min' || urlParams['sketch'] == '1') ? '0px' : '2px';
+ input.style.width = '46px';
+ input.style.height = '21px';
+ input.style.left = '152px';
+ input.style.border = '1px solid rgb(160, 160, 160)';
+ input.style.borderRadius = '4px';
+ input.style.boxSizing = 'border-box';
input.setAttribute('title', mxResources.get('linewidth'));
stylePanel.appendChild(input);
@@ -5045,23 +5076,16 @@ StyleFormatPanel.prototype.addStroke = function(container)
var stepper = this.createStepper(input, update, 1, 9);
stepper.style.display = input.style.display;
- stepper.style.marginTop = (uiTheme == 'min') ? '0px' : '2px';
+ stepper.style.marginTop = (uiTheme == 'min' || urlParams['sketch'] == '1') ? '0px' : '2px';
+ stepper.style.left = '198px';
stylePanel.appendChild(stepper);
var altStepper = this.createStepper(altInput, altUpdate, 1, 9);
altStepper.style.display = altInput.style.display;
- altStepper.style.marginTop = (uiTheme == 'min') ? '0px' : '2px';
- altStylePanel.appendChild(altStepper);
-
- input.style.position = 'absolute';
- input.style.height = '15px';
- input.style.left = '141px';
- stepper.style.left = '190px';
-
+ altStepper.style.marginTop = (uiTheme == 'min' || urlParams['sketch'] == '1') ? '0px' : '2px';
altInput.style.position = 'absolute';
- altInput.style.left = '141px';
- altInput.style.height = '15px';
- altStepper.style.left = '190px';
+ altStepper.style.left = '198px';
+ altStylePanel.appendChild(altStepper);
mxEvent.addListener(input, 'blur', update);
mxEvent.addListener(input, 'change', update);
@@ -5189,8 +5213,13 @@ StyleFormatPanel.prototype.addStroke = function(container)
}
}));
- this.addArrow(edgeShape, 8);
- this.addArrow(edgeStyle);
+ var elt = this.addArrow(edgeShape, 8);
+ elt.nextSibling.style.position = 'relative';
+ elt.nextSibling.style.top = '-2px';
+ elt = this.addArrow(edgeStyle, 10);
+ elt.nextSibling.style.position = 'relative';
+ elt.nextSibling.style.top = '-3px';
+ edgeStyle.getElementsByTagName('img')[0].style.top = '-1px';
this.addArrow(lineStart);
this.addArrow(lineEnd);
@@ -5206,19 +5235,23 @@ StyleFormatPanel.prototype.addStroke = function(container)
solid.style.width = '85px';
solid.style.height = '1px';
solid.style.borderBottom = '1px solid ' + this.defaultStrokeColor;
- solid.style.marginBottom = '9px';
+ solid.style.marginBottom = '7px';
symbol.appendChild(solid);
var altSolid = document.createElement('div');
altSolid.style.width = '23px';
altSolid.style.height = '1px';
altSolid.style.borderBottom = '1px solid ' + this.defaultStrokeColor;
- altSolid.style.marginBottom = '9px';
+ altSolid.style.marginBottom = '7px';
altSymbol.appendChild(altSolid);
pattern.style.height = '15px';
+ pattern.style.marginLeft = '16px';
altPattern.style.height = '15px';
+ altPattern.style.marginLeft = '3px';
+ edgeShape.style.marginLeft = '10px';
edgeShape.style.height = '15px';
+ edgeStyle.style.marginLeft = '10px';
edgeStyle.style.height = '17px';
lineStart.style.marginLeft = '3px';
lineStart.style.height = '17px';
@@ -5230,13 +5263,12 @@ StyleFormatPanel.prototype.addStroke = function(container)
container.appendChild(stylePanel);
var arrowPanel = stylePanel.cloneNode(false);
- arrowPanel.style.paddingBottom = '6px';
- arrowPanel.style.paddingTop = '4px';
+ arrowPanel.style.padding = '5px 4px 6px 0px';
arrowPanel.style.fontWeight = 'normal';
var span = document.createElement('div');
span.style.position = 'absolute';
- span.style.marginLeft = '3px';
+ span.style.marginLeft = '0px';
span.style.marginBottom = '12px';
span.style.marginTop = '2px';
span.style.fontWeight = 'normal';
@@ -5246,11 +5278,11 @@ StyleFormatPanel.prototype.addStroke = function(container)
arrowPanel.appendChild(span);
var endSpacingUpdate, endSizeUpdate;
- var endSpacing = this.addUnitInput(arrowPanel, 'pt', 74, 33, function()
+ var endSpacing = this.addUnitInput(arrowPanel, 'pt', 76, 42, function()
{
endSpacingUpdate.apply(this, arguments);
});
- var endSize = this.addUnitInput(arrowPanel, 'pt', 20, 33, function()
+ var endSize = this.addUnitInput(arrowPanel, 'pt', 16, 42, function()
{
endSizeUpdate.apply(this, arguments);
});
@@ -5266,18 +5298,18 @@ StyleFormatPanel.prototype.addStroke = function(container)
arrowPanel.appendChild(span);
var startSpacingUpdate, startSizeUpdate;
- var startSpacing = this.addUnitInput(arrowPanel, 'pt', 74, 33, function()
+ var startSpacing = this.addUnitInput(arrowPanel, 'pt', 76, 42, function()
{
startSpacingUpdate.apply(this, arguments);
});
- var startSize = this.addUnitInput(arrowPanel, 'pt', 20, 33, function()
+ var startSize = this.addUnitInput(arrowPanel, 'pt', 16, 42, function()
{
startSizeUpdate.apply(this, arguments);
});
mxUtils.br(arrowPanel);
- this.addLabel(arrowPanel, mxResources.get('spacing'), 74, 50);
- this.addLabel(arrowPanel, mxResources.get('size'), 20, 50);
+ this.addLabel(arrowPanel, mxResources.get('spacing'), 76, 52);
+ this.addLabel(arrowPanel, mxResources.get('size'), 16, 52);
mxUtils.br(arrowPanel);
var perimeterPanel = colorPanel.cloneNode(false);
@@ -5300,7 +5332,7 @@ StyleFormatPanel.prototype.addStroke = function(container)
perimeterPanel.appendChild(span);
var perimeterUpdate;
- var perimeterSpacing = this.addUnitInput(perimeterPanel, 'pt', 20, 41, function()
+ var perimeterSpacing = this.addUnitInput(perimeterPanel, 'pt', 16, 52, function()
{
perimeterUpdate.apply(this, arguments);
});
@@ -5313,6 +5345,8 @@ StyleFormatPanel.prototype.addStroke = function(container)
else if (ss.vertices.length == ss.cells.length)
{
container.appendChild(perimeterPanel);
+ stepper.style.left = '198px';
+ input.style.left = '152px';
}
var listener = mxUtils.bind(this, function(sender, evt, force)
@@ -5436,7 +5470,13 @@ StyleFormatPanel.prototype.addStroke = function(container)
altStylePanel.style.display = 'none';
stylePanel.style.display = '';
}
-
+
+ if (Graph.lineJumpsEnabled && ss.edges.length > 0 &&
+ ss.vertices.length == 0 && ss.lineJumps)
+ {
+ container.style.borderBottomStyle = 'none';
+ }
+
function updateArrow(marker, fill, elt, prefix)
{
var markerDiv = elt.getElementsByTagName('div')[0];
@@ -5444,18 +5484,25 @@ StyleFormatPanel.prototype.addStroke = function(container)
if (markerDiv != null)
{
markerDiv.className = ui.getCssClassForMarker(prefix, ss.style.shape, marker, fill);
-
+ markerDiv.nextSibling.style.marginLeft = '1px';
+ markerDiv.nextSibling.style.paddingRight = '5px';
+
if (markerDiv.className == 'geSprite geSprite-noarrow')
{
markerDiv.innerHTML = mxUtils.htmlEntities(mxResources.get('none'));
markerDiv.style.backgroundImage = 'none';
markerDiv.style.verticalAlign = 'top';
- markerDiv.style.marginTop = '5px';
+ markerDiv.style.marginTop = '4px';
markerDiv.style.fontSize = '10px';
markerDiv.style.filter = 'none';
markerDiv.style.color = this.defaultStrokeColor;
markerDiv.nextSibling.style.marginTop = '0px';
}
+ else
+ {
+ markerDiv.nextSibling.style.position = 'relative';
+ markerDiv.nextSibling.style.top = '-2px';
+ }
}
return markerDiv;
@@ -5555,7 +5602,7 @@ StyleFormatPanel.prototype.addLineJumps = function(container)
if (Graph.lineJumpsEnabled && ss.edges.length > 0 &&
ss.vertices.length == 0 && ss.lineJumps)
{
- container.style.padding = '8px 0px 24px 18px';
+ container.style.padding = '2px 0px 24px 14px';
var ui = this.editorUi;
var editor = ui.editor;
@@ -5563,17 +5610,23 @@ StyleFormatPanel.prototype.addLineJumps = function(container)
var span = document.createElement('div');
span.style.position = 'absolute';
- span.style.fontWeight = 'bold';
- span.style.width = '80px';
+ span.style.maxWidth = '82px';
+ span.style.overflow = 'hidden';
+ span.style.textOverflow = 'ellipsis';
mxUtils.write(span, mxResources.get('lineJumps'));
container.appendChild(span);
var styleSelect = document.createElement('select');
styleSelect.style.position = 'absolute';
+ styleSelect.style.height = '21px';
+ styleSelect.style.padding = '0px';
styleSelect.style.marginTop = '-2px';
+ styleSelect.style.boxSizing = 'border-box';
styleSelect.style.right = '76px';
- styleSelect.style.width = '62px';
+ styleSelect.style.width = '54px';
+ styleSelect.style.border = '1px solid rgb(160, 160, 160)';
+ styleSelect.style.borderRadius = '4px';
var styles = ['none', 'arc', 'gap', 'sharp', 'line'];
@@ -5612,7 +5665,7 @@ StyleFormatPanel.prototype.addLineJumps = function(container)
var jumpSizeUpdate;
- var jumpSize = this.addUnitInput(container, 'pt', 22, 33, function()
+ var jumpSize = this.addUnitInput(container, 'pt', 16, 42, function()
{
jumpSizeUpdate.apply(this, arguments);
});
@@ -5656,8 +5709,8 @@ StyleFormatPanel.prototype.addEffects = function(div)
var graph = editor.graph;
var ss = this.format.getSelectionState();
- div.style.paddingTop = '0px';
- div.style.paddingBottom = '2px';
+ div.style.paddingTop = '4px';
+ div.style.paddingBottom = '0px';
var table = document.createElement('table');
@@ -5744,7 +5797,7 @@ StyleFormatPanel.prototype.addStyleOps = function(div)
}));
btn.setAttribute('title', mxResources.get('setAsDefaultStyle') + ' (' + this.editorUi.actions.get('setAsDefaultStyle').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
div.appendChild(btn);
return div;
@@ -6452,16 +6505,29 @@ DiagramFormatPanel.prototype.addView = function(div)
if (this.showBackgroundImageOption)
{
- var btn = mxUtils.button(mxResources.get('change') + '...', function(evt)
+ var label = bg.getElementsByTagName('span')[0];
+ label.style.display = 'inline-block';
+ label.style.textOverflow = 'ellipsis';
+ label.style.overflow = 'hidden';
+ label.style.maxWidth = '68px';
+
+ if (mxClient.IS_FF)
+ {
+ label.style.marginTop = '1px';
+ }
+
+ var btn = mxUtils.button(mxResources.get('change'), function(evt)
{
ui.showBackgroundImageDialog(null, ui.editor.graph.backgroundImage);
mxEvent.consume(evt);
})
btn.className = 'geColorBtn';
- btn.style.height = '19px';
- btn.style.left = '6px';
- btn.style.width = '60px';
+ btn.style.position = 'absolute';
+ btn.style.marginTop = '-3px';
+ btn.style.height = '22px';
+ btn.style.left = '118px';
+ btn.style.width = '56px';
bg.appendChild(btn);
}
@@ -6573,7 +6639,12 @@ DiagramFormatPanel.prototype.addGridOption = function(container)
var input = document.createElement('input');
input.style.position = 'absolute';
input.style.textAlign = 'right';
- input.style.width = '38px';
+ input.style.width = '48px';
+ input.style.marginTop = '-2px';
+ input.style.height = '21px';
+ input.style.border = '1px solid rgb(160, 160, 160)';
+ input.style.borderRadius = '4px';
+ input.style.boxSizing = 'border-box';
input.value = this.inUnit(graph.getGridSize()) + ' ' + this.getUnit();
var stepper = this.createStepper(input, update, this.getUnitStep(), null, null, null, this.isFloatUnit());
@@ -6612,104 +6683,57 @@ DiagramFormatPanel.prototype.addGridOption = function(container)
mxEvent.addListener(input, 'blur', update);
mxEvent.addListener(input, 'change', update);
- if (mxClient.IS_SVG)
+ input.style.right = '78px';
+ stepper.style.marginTop = '-17px';
+ stepper.style.right = '66px';
+
+ var panel = this.createColorOption(mxResources.get('grid'), function()
{
- input.style.marginTop = '-2px';
- input.style.right = '84px';
- stepper.style.marginTop = (mxClient.IS_FF) ? '-16px' : '-18px';
- stepper.style.right = '72px';
-
- var panel = this.createColorOption(mxResources.get('grid'), function()
- {
- var color = graph.view.gridColor;
+ var color = graph.view.gridColor;
- return (graph.isGridEnabled()) ? color : null;
- }, function(color)
+ return (graph.isGridEnabled()) ? color : null;
+ }, function(color)
+ {
+ var enabled = graph.isGridEnabled();
+
+ if (color == mxConstants.NONE)
{
- var enabled = graph.isGridEnabled();
-
- if (color == mxConstants.NONE)
- {
- graph.setGridEnabled(false);
- }
- else
- {
- graph.setGridEnabled(true);
- ui.setGridColor(color);
- }
-
- input.style.display = (graph.isGridEnabled()) ? '' : 'none';
- stepper.style.display = input.style.display;
-
- if (enabled != graph.isGridEnabled())
- {
- ui.fireEvent(new mxEventObject('gridEnabledChanged'));
- }
- }, Editor.isDarkMode() ? graph.view.defaultDarkGridColor : graph.view.defaultGridColor,
+ graph.setGridEnabled(false);
+ }
+ else
{
- install: function(apply)
- {
- this.listener = function()
- {
- apply((graph.isGridEnabled()) ? graph.view.gridColor : null);
- };
-
- ui.addListener('gridColorChanged', this.listener);
- ui.addListener('gridEnabledChanged', this.listener);
- },
- destroy: function()
- {
- ui.removeListener(this.listener);
- }
- });
+ graph.setGridEnabled(true);
+ ui.setGridColor(color);
+ }
- panel.appendChild(input);
- panel.appendChild(stepper);
- container.appendChild(panel);
- }
- else
- {
- input.style.marginTop = '2px';
- input.style.right = '32px';
- stepper.style.marginTop = '2px';
- stepper.style.right = '20px';
-
- container.appendChild(input);
- container.appendChild(stepper);
+ input.style.display = (graph.isGridEnabled()) ? '' : 'none';
+ stepper.style.display = input.style.display;
- container.appendChild(this.createOption(mxResources.get('grid'), function()
+ if (enabled != graph.isGridEnabled())
{
- return graph.isGridEnabled();
- }, function(checked)
+ ui.fireEvent(new mxEventObject('gridEnabledChanged'));
+ }
+ }, Editor.isDarkMode() ? graph.view.defaultDarkGridColor : graph.view.defaultGridColor,
+ {
+ install: function(apply)
{
- graph.setGridEnabled(checked);
-
- if (graph.isGridEnabled())
+ this.listener = function()
{
- graph.view.gridColor = '#e0e0e0';
- }
+ apply((graph.isGridEnabled()) ? graph.view.gridColor : null);
+ };
- ui.fireEvent(new mxEventObject('gridEnabledChanged'));
+ ui.addListener('gridColorChanged', this.listener);
+ ui.addListener('gridEnabledChanged', this.listener);
},
+ destroy: function()
{
- install: function(apply)
- {
- this.listener = function()
- {
- input.style.display = (graph.isGridEnabled()) ? '' : 'none';
- stepper.style.display = input.style.display;
-
- apply(graph.isGridEnabled());
- };
-
- ui.addListener('gridEnabledChanged', this.listener);
- },
- destroy: function()
- {
- ui.removeListener(this.listener);
- }
- }));
- }
+ ui.removeListener(this.listener);
+ }
+ });
+
+ panel.appendChild(input);
+ panel.appendChild(stepper);
+ container.appendChild(panel);
};
/**
@@ -6785,7 +6809,7 @@ DiagramFormatPanel.prototype.addStyleOps = function(div)
}));
btn.setAttribute('title', mxResources.get('editData') + ' (' + this.editorUi.actions.get('editData').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
btn.style.marginBottom = '2px';
div.appendChild(btn);
@@ -6797,7 +6821,7 @@ DiagramFormatPanel.prototype.addStyleOps = function(div)
}));
btn.setAttribute('title', mxResources.get('clearDefaultStyle') + ' (' + this.editorUi.actions.get('clearDefaultStyle').shortcut + ')');
- btn.style.width = '202px';
+ btn.style.width = '210px';
div.appendChild(btn);
return div;
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index cc1f0a30..8512948a 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -200,7 +200,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"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");/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent)&&(urlParams.gapi="0");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};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:"15.3.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/"),
+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:"15.3.4",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),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]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2055,11 +2055,11 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,v=k,u=f?0:64,C=mxUtils.getDocumentSize();null!=window.innerHeight&&(C.height=window.innerHeight);var x=C.height,G=Math.max(1,Math.round((C.width-e-u)/2)),A=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;k=Math.min(k,x-u);0<b.dialogs.length&&(this.zIndex+=2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",
-this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));C=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=C.x+"px";this.bg.style.top=C.y+"px";G+=C.x;A+=C.y;g&&document.body.appendChild(this.bg);var E=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(G,A,e,k);G=g.x;A=g.y;E.style.width=e+"px";E.style.height=k+"px";E.style.left=G+"px";E.style.top=A+"px";E.style.zIndex=
-this.zIndex;E.appendChild(c);document.body.appendChild(E);!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=A+14+"px",n.style.left=G+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=
-n,!m)){var J=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){J=!0}),null,mxUtils.bind(this,function(d){J&&(b.hideDialog(!0),J=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();null!=f&&(q=e=f.w,v=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";G=Math.max(1,Math.round((f.width-e-u)/2));A=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-u):q;k=Math.min(v,x-u);f=this.getPosition(G,
-A,e,k);G=f.x;A=f.y;E.style.left=G+"px";E.style.top=A+"px";E.style.width=e+"px";E.style.height=k+"px";!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=A+14+"px",this.dialogImg.style.left=G+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=E;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,v=k,u=f?0:64,y=mxUtils.getDocumentSize();null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,G=Math.max(1,Math.round((y.width-e-u)/2)),C=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;k=Math.min(k,x-u);0<b.dialogs.length&&(this.zIndex+=2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",
+this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";G+=y.x;C+=y.y;g&&document.body.appendChild(this.bg);var E=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(G,C,e,k);G=g.x;C=g.y;E.style.width=e+"px";E.style.height=k+"px";E.style.left=G+"px";E.style.top=C+"px";E.style.zIndex=
+this.zIndex;E.appendChild(c);document.body.appendChild(E);!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=C+14+"px",n.style.left=G+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=
+n,!m)){var J=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){J=!0}),null,mxUtils.bind(this,function(d){J&&(b.hideDialog(!0),J=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();null!=f&&(q=e=f.w,v=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";G=Math.max(1,Math.round((f.width-e-u)/2));C=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-u):q;k=Math.min(v,x-u);f=this.getPosition(G,
+C,e,k);G=f.x;C=f.y;E.style.left=G+"px";E.style.top=C+"px";E.style.width=e+"px";E.style.height=k+"px";!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=C+14+"px",this.dialogImg.style.left=G+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=E;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":
IMAGE_PATH+"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2081,27 +2081,27 @@ var PageSetupDialog=function(b){function c(){null==m||m==mxConstants.NONE?(l.sty
mxUtils.write(n,mxResources.get("background")+":");g.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="22px";l.style.height="22px";l.style.cursor="pointer";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(l.style.position="relative",l.style.top="-6px");var m=k.background;c();mxEvent.addListener(l,
"click",function(d){b.pickColor(m||"none",function(b){m=b;c()});mxEvent.consume(d)});n.appendChild(l);mxUtils.write(n,mxResources.get("gridSize")+":");var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=k.getGridSize();n.appendChild(p);mxEvent.addListener(p,"change",function(){var b=parseInt(p.value);p.value=Math.max(1,isNaN(b)?k.getGridSize():b)});g.appendChild(n);d.appendChild(g);g=document.createElement("tr");
n=document.createElement("td");mxUtils.write(n,mxResources.get("image")+":");g.appendChild(n);n=document.createElement("td");var q=document.createElement("button");q.className="geBtn";q.style.margin="0px";mxUtils.write(q,mxResources.get("change")+"...");var v=document.createElement("img");v.setAttribute("valign","middle");v.style.verticalAlign="middle";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.maxWidth="100px";v.style.cursor="pointer";v.style.height=
-"60px";v.style.padding="4px";var u=k.backgroundImage,C=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(q,"click",C);mxEvent.addListener(v,"click",C);e();n.appendChild(v);n.appendChild(q);g.appendChild(n);d.appendChild(g);g=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});q.className="geBtn";
-b.editor.cancelFirst&&n.appendChild(q);C=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(p.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,u,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=u?u.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});C.className="geBtn gePrimaryBtn";
-n.appendChild(C);b.editor.cancelFirst||n.appendChild(q);g.appendChild(n);d.appendChild(g);t.appendChild(d);this.container=t};
-PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||p!=document.activeElement&&q!=document.activeElement){b=!1;for(c=0;c<u.length;c++)l=u[c],A?"custom"==l.key&&(d.value=l.key,A=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
+"60px";v.style.padding="4px";var u=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(q,"click",y);mxEvent.addListener(v,"click",y);e();n.appendChild(v);n.appendChild(q);g.appendChild(n);d.appendChild(g);g=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});q.className="geBtn";
+b.editor.cancelFirst&&n.appendChild(q);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(p.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,u,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=u?u.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
+n.appendChild(y);b.editor.cancelFirst||n.appendChild(q);g.appendChild(n);d.appendChild(g);t.appendChild(d);this.container=t};
+PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||p!=document.activeElement&&q!=document.activeElement){b=!1;for(c=0;c<u.length;c++)l=u[c],C?"custom"==l.key&&(d.value=l.key,C=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
e.height==l.format.height?(d.value=l.key,n.setAttribute("checked","checked"),n.defaultChecked=!0,n.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==l.format.height&&e.height==l.format.width&&(d.value=l.key,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(f.style.display="",m.style.display="none"):(p.value=e.width/100,q.value=e.height/100,n.setAttribute("checked","checked"),
d.value="custom",f.style.display="none",m.style.display="")}}c="format-"+c;var n=document.createElement("input");n.setAttribute("name",c);n.setAttribute("type","radio");n.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.width="202px";var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";
f.style.height="24px";n.style.marginRight="6px";f.appendChild(n);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
-p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),C=0;C<u.length;C++){var x=u[C];v[x.key]=x;var G=document.createElement("option");G.setAttribute("value",x.key);mxUtils.write(G,x.title);d.appendChild(G)}var A=!1;g();b.appendChild(d);mxUtils.br(b);
+p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),y=0;y<u.length;y++){var x=u[y];v[x.key]=x;var G=document.createElement("option");G.setAttribute("value",x.key);mxUtils.write(G,x.title);d.appendChild(G)}var C=!1;g();b.appendChild(d);mxUtils.br(b);
b.appendChild(f);b.appendChild(m);var E=e,J=function(b,c){var l=v[d.value];null!=l.format?(p.value=l.format.width/100,q.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(p.value);if(isNaN(l)||0>=l)p.value=e.width/100;l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(q.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,
-l.height,l.width));c&&A||l.width==E.width&&l.height==E.height||(E=l,null!=k&&k(E))};mxEvent.addListener(c,"click",function(b){n.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",J);mxEvent.addListener(p,"click",J);mxEvent.addListener(q,"blur",J);mxEvent.addListener(q,"click",J);mxEvent.addListener(t,"change",J);mxEvent.addListener(n,"change",J);mxEvent.addListener(d,"change",function(b){A="custom"==d.value;
+l.height,l.width));c&&C||l.width==E.width&&l.height==E.height||(E=l,null!=k&&k(E))};mxEvent.addListener(c,"click",function(b){n.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",J);mxEvent.addListener(p,"click",J);mxEvent.addListener(q,"blur",J);mxEvent.addListener(q,"click",J);mxEvent.addListener(t,"change",J);mxEvent.addListener(n,"change",J);mxEvent.addListener(d,"change",function(b){C="custom"==d.value;
J(b,!0)});J();return{set:function(b){e=b;g(null,null,!0)},get:function(){return E},widthInput:p,heightInput:q}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(b,c,e,k,g,n,t,d,f,l,m,p){f=null!=f?f:!0;var q,v,u=document.createElement("table"),C=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";q=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(g||mxResources.get("filename"))+":");q.appendChild(v);var x=document.createElement("input");
+var FilenameDialog=function(b,c,e,k,g,n,t,d,f,l,m,p){f=null!=f?f:!0;var q,v,u=document.createElement("table"),y=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";q=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(g||mxResources.get("filename"))+":");q.appendChild(v);var x=document.createElement("input");
x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=p?p+"px":"180px";var G=mxUtils.button(e,function(){if(null==n||n(x.value))f&&b.hideDialog(),k(x.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=x,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(x.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),G.click());b.stopPropagation();
-b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(x);q.appendChild(v);if(null!=g||null==t)C.appendChild(q),null!=m&&(v.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(q=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),q.appendChild(v),
-v=document.createElement("td"),v.style.whiteSpace="nowrap",q.appendChild(v),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),x.style.width=null!=p?p-40+"px":"190px",q.appendChild(v),C.appendChild(q)));null!=t&&(q=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),q.appendChild(v),C.appendChild(q));q=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
-null!=m?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&v.appendChild(m);null!=d&&(p=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),p.className="geBtn",v.appendChild(p));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(m);q.appendChild(v);C.appendChild(q);
-u.appendChild(C);this.container=u};FilenameDialog.filenameHelpLink=null;
+b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(x);q.appendChild(v);if(null!=g||null==t)y.appendChild(q),null!=m&&(v.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(q=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),q.appendChild(v),
+v=document.createElement("td"),v.style.whiteSpace="nowrap",q.appendChild(v),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),x.style.width=null!=p?p-40+"px":"190px",q.appendChild(v),y.appendChild(q)));null!=t&&(q=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),q.appendChild(v),y.appendChild(q));q=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
+null!=m?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&v.appendChild(m);null!=d&&(p=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),p.className="geBtn",v.appendChild(p));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(m);q.appendChild(v);y.appendChild(q);
+u.appendChild(y);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(b,c,e){var k=document.createElement("img");k.style.backgroundPosition="center bottom";k.style.backgroundRepeat="no-repeat";k.style.margin="2px 0 0 4px";k.style.verticalAlign="top";k.style.cursor="pointer";k.style.height="16px";k.style.width="16px";mxUtils.setOpacity(k,70);var g=function(){k.setAttribute("src",Editor.helpImage);k.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
e[b].ext.length-1)=="."+e[b].ext){k.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",g);mxEvent.addListener(c,"change",g);mxEvent.addListener(k,"click",function(c){var e=k.getAttribute("title");k.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
g();return k};
@@ -2115,8 +2115,8 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(b.container.className="geDiagramContainer",f.style.backgroundPosition=e,f.style.backgroundColor=d,f.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var f=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var g=e*d;c.push("M 0 "+g+" L "+f+" "+g+" M "+g+" 0 L "+g+
" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+b+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,d){b.apply(this,arguments);
if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+c,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+d,e))+"px";f.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(b,d,f){var c=this.view.scale,e=this.view.translate,g=this.pageFormat,k=c*this.pageScale,n=this.view.getBackgroundPageBounds();
-d=n.width;f=n.height;var u=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(f/u.height)-1:0,x=b?Math.ceil(d/u.width)-1:0,G=n.x+d,A=n.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
-Math.round(n.y+(f+1)*u.height)),new mxPoint(Math.round(G),Math.round(n.y+(f+1)*u.height))]:[new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(n.y)),new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(A))];null!=b[f]?(b[f].points=c,b[f].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
+d=n.width;f=n.height;var u=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(f/u.height)-1:0,x=b?Math.ceil(d/u.width)-1:0,G=n.x+d,C=n.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
+Math.round(n.y+(f+1)*u.height)),new mxPoint(Math.round(G),Math.round(n.y+(f+1)*u.height))]:[new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(n.y)),new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(C))];null!=b[f]?(b[f].points=c,b[f].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,f){for(var e=0;e<d.length;e++){if(this.graph.isTableCell(d[e])||this.graph.isTableRow(d[e]))return!1;if(this.graph.getModel().isVertex(d[e])){var g=this.graph.getCellGeometry(d[e]);if(null!=g&&g.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,f){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,f=0<b.height?b.y/this.scale-this.translate.y:0,c=this.graph.pageFormat,
e=this.graph.pageScale,g=c.width*e,c=c.height*e,e=Math.floor(Math.min(0,d)/g),k=Math.floor(Math.min(0,f)/c);return new mxRectangle(this.scale*(this.translate.x+e*g),this.scale*(this.translate.y+k*c),this.scale*(Math.ceil(Math.max(1,d+b.width/this.scale)/g)-e)*g,this.scale*(Math.ceil(Math.max(1,f+b.height/this.scale)/c)-k)*c)};var k=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){k.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
@@ -2128,16 +2128,16 @@ function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxE
this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var m=g[l],p=m.indexOf("=");if(0<=p){e=m.substring(0,p);var q=m.substring(p+1);null!=c[e]&&"none"==q&&(b.push(q),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged",
"keys",f,"values",b,"cells",[d.cell]))}}catch(ca){this.handleError(ca)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var d=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<d.length;c++)0>mxUtils.indexOf(n,d[c])&&n.push(d[c]);var f="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<l.length;c++)for(e=0;e<l[c].length;e++)n.push(l[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&n.push(t[c]);var m=function(b,d,f,c,e,g,m){c=null!=c?c:k.currentVertexStyle;e=null!=e?e:k.currentEdgeStyle;f=null!=f?f:k.getModel();
-if(m){m=[];for(var F=0;F<b.length;F++)m=m.concat(f.getDescendants(b[F]));b=m}f.beginUpdate();try{for(F=0;F<b.length;F++){var p=b[F],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var y=f.getStyle(p),u=null!=y?y.split(";"):[];q=n.slice();for(var v=0;v<u.length;v++){var D=u[v],x=D.indexOf("=");if(0<=x){var C=D.substring(0,x),N=mxUtils.indexOf(q,C);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var A=l[m];if(0<=mxUtils.indexOf(A,C))for(var B=0;B<A.length;B++){var E=mxUtils.indexOf(q,A[B]);0<=E&&q.splice(E,
-1)}}}}}var J=f.isEdge(p);m=J?e:c;for(var G=f.getStyle(p),v=0;v<q.length;v++){var C=q[v],O=m[C];null!=O&&("shape"!=C||J)&&(!J||g||0>mxUtils.indexOf(t,C))&&(G=mxUtils.setStyle(G,C,O))}Editor.simpleLabels&&(G=mxUtils.setStyle(mxUtils.setStyle(G,"html",null),"whiteSpace",null));f.setStyle(p,G)}}finally{f.endUpdate()}};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"))});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();
+if(m){m=[];for(var F=0;F<b.length;F++)m=m.concat(f.getDescendants(b[F]));b=m}f.beginUpdate();try{for(F=0;F<b.length;F++){var p=b[F],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var A=f.getStyle(p),u=null!=A?A.split(";"):[];q=n.slice();for(var v=0;v<u.length;v++){var D=u[v],x=D.indexOf("=");if(0<=x){var y=D.substring(0,x),N=mxUtils.indexOf(q,y);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var C=l[m];if(0<=mxUtils.indexOf(C,y))for(var B=0;B<C.length;B++){var E=mxUtils.indexOf(q,C[B]);0<=E&&q.splice(E,
+1)}}}}}var J=f.isEdge(p);m=J?e:c;for(var G=f.getStyle(p),v=0;v<q.length;v++){var y=q[v],O=m[y];null!=O&&("shape"!=y||J)&&(!J||g||0>mxUtils.indexOf(t,y))&&(G=mxUtils.setStyle(G,y,O))}Editor.simpleLabels&&(G=mxUtils.setStyle(mxUtils.setStyle(G,"html",null),"whiteSpace",null));f.setStyle(p,G)}}finally{f.endUpdate()}};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"))});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();
this.createUi();this.refresh();var p=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=p,this.menubarContainer.onmousedown=p,this.toolbarContainer.onselectstart=p,this.toolbarContainer.onmousedown=p,this.diagramContainer.onselectstart=p,this.diagramContainer.onmousedown=p,this.sidebarContainer.onselectstart=p,this.sidebarContainer.onmousedown=p,this.formatContainer.onselectstart=
p,this.formatContainer.onmousedown=p,this.footerContainer.onselectstart=p,this.footerContainer.onmousedown=p,null!=this.tabContainer&&(this.tabContainer.onselectstart=p));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return p(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",
c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var q=k.graphHandler.start;k.graphHandler.start=function(){null!=K.hoverIcons&&K.hoverIcons.reset();q.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=
mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=!1,u=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return v||u.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||
-27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var C=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return C.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&
+27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var y=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return y.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&
(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var x=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return x.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var G=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||
-G.apply(this,arguments)};var A=!1,E=null,J=null,L=null,H=mxUtils.bind(this,function(){if(null!=this.toolbar&&A!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==L)this.toolbar.createTextToolbar();else{for(var c=0;c<L.length;c++)this.toolbar.container.appendChild(L[c]);this.toolbar.fontMenu=
-E;this.toolbar.sizeMenu=J}A=k.cellEditor.isContentEditing();E=b;J=f;L=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);H();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,
+G.apply(this,arguments)};var C=!1,E=null,J=null,L=null,H=mxUtils.bind(this,function(){if(null!=this.toolbar&&C!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==L)this.toolbar.createTextToolbar();else{for(var c=0;c<L.length;c++)this.toolbar.container.appendChild(L[c]);this.toolbar.fontMenu=
+E;this.toolbar.sizeMenu=J}C=k.cellEditor.isContentEditing();E=b;J=f;L=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);H();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,
"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var M=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{M.apply(this,arguments),H()}catch(O){K.handleError(O)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(S){}var Q=k.fireMouseEvent;
k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();Q.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,
d){var f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=K.hoverIcons&&K.hoverIcons.update(k.view.getState(f[f.length-1]))},0));m(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,c){var e=c.getProperty("cells"),l=!1,g=!1;if(0<e.length)for(var m=0;m<e.length&&(l=k.getModel().isVertex(e[m])||l,!(g=k.getModel().isEdge(e[m])||g)||!l);m++);else g=l=!0;for(var e=c.getProperty("keys"),p=c.getProperty("values"),
@@ -2195,15 +2195,15 @@ function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor
mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(f.innerHTML="",mxUtils.write(f,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var p=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",d.style.display=
"",f.style.display="inline-block"):(l.style.display="none",d.style.display="none",f.style.display="none");m()});this.editor.addListener("resetGraphView",p);this.editor.addListener("pageSelected",m)}n(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
n(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var q=null,v=null,u=mxUtils.bind(this,function(b){null!=q&&(window.clearTimeout(q),q=null);null!=v&&(window.clearTimeout(v),v=null);q=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);q=null;v=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
-"none";v=null}),600)}),b||200)}),C=mxUtils.bind(this,function(b){null!=q&&(window.clearTimeout(q),q=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=n(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
+"none";v=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=q&&(window.clearTimeout(q),q=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=n(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var f=x.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=f.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
this.chromelessToolbar.offsetHeight+4+"px";mxClient.IS_IE||mxClient.IS_IE11?(this.layersDialog.style.backgroundColor="#ffffff",this.layersDialog.style.border="2px solid black",this.layersDialog.style.color="#000000"):(this.layersDialog.style.backgroundColor="#000000",this.layersDialog.style.color="#ffffff",mxUtils.setOpacity(this.layersDialog,80));f=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=f.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(d)}),
Editor.layersImage,mxResources.get("layers")),G=b.getModel();G.addListener(mxEvent.CHANGE,function(){x.style.display=1<G.getChildCount(G.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(n);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||n(mxUtils.bind(this,function(d){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):b.openLink(this.editor.editButtonLink,
-"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var A=this.lightboxToolbarActions[p];A.elem=n(A.fn,A.icon,A.tooltip)}null!=g.refreshBtn&&n(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&n(mxUtils.bind(this,
+"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var C=this.lightboxToolbarActions[p];C.elem=n(C.fn,C.icon,C.tooltip)}null!=g.refreshBtn&&n(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&n(mxUtils.bind(this,
function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&n(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
-"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||C(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
-mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?u():C(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?u():C(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||C(30)}));var E=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
-f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<E&&Math.abs(this.scrollTop-b.container.scrollTop)<E&&Math.abs(this.startX-f.getGraphX())<E&&Math.abs(this.startY-f.getGraphY())<E&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():C(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var J=
+"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
+mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?u():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?u():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var E=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
+f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<E&&Math.abs(this.scrollTop-b.container.scrollTop)<E&&Math.abs(this.startX-f.getGraphX())<E&&Math.abs(this.startY-f.getGraphY())<E&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var J=
b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}J.apply(this,arguments)};if(!b.isViewer()){var L=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?L.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var H=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var B=null,M=null,Q=null,S=null,N=null,O=function(d){null!=B&&window.clearTimeout(B);window.setTimeout(function(){if(!b.isMouseDown||S)B=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
@@ -2324,8 +2324,8 @@ this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPa
function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],f=this.graph.pageFormat,c=this.graph.pageScale,e=f.width*c,f=f.height*c,c=this.graph.view.translate,l=this.graph.view.scale,g=this.graph.getPageLayout(),m=0;m<g.width;m++)d.push(new mxRectangle(((g.x+m)*e+c.x)*l,(g.y*f+c.y)*l,e*l,f*l));for(m=1;m<g.height;m++)d.push(new mxRectangle((g.x*e+c.x)*l,((g.y+m)*f+c.y)*l,e*l,f*l));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),f=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||f.get(l)||(f.put(l,!0),c.push(l))}return c};var v=this.graphHandler.start;this.graphHandler.start=function(b,d,f,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
-v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var C=(new Date).getTime(),x=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(C=(new Date).getTime(),x=0):x=(new Date).getTime()-C};var A=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&A.apply(this,arguments)};var E=this.isToggleEvent;this.isToggleEvent=function(b){return E.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var J=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(b){return J.apply(this,
+v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var y=(new Date).getTime(),x=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var C=
+this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&C.apply(this,arguments)};var E=this.isToggleEvent;this.isToggleEvent=function(b){return E.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var J=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(b){return J.apply(this,
arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var L=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(L=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,
mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=L)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var H=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return H.apply(this,arguments);var f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
@@ -2395,8 +2395,8 @@ Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEve
Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var k=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,n=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
-/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),p=b[d+"FullYear"](),q=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),C=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
-12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:t(q%12||12),H:q,HH:t(q),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(n,""),o:(0<C?"-":"+")+t(100*Math.floor(Math.abs(C)/60)+Math.abs(C)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
+/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),p=b[d+"FullYear"](),q=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:t(q%12||12),H:q,HH:t(q),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(n,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var k=this.getModel(),g=k.getChildCount(k.root),n=0;n<g;n++)mxUtils.bind(this,function(g){function d(){k.isVisible(g)?(m.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(l,75)):(m.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(l,25))}var f=this.convertValueToString(g)||mxResources.get("background")||"Background",l=document.createElement("div");l.style.overflow=
"hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";l.style.cursor="pointer";l.setAttribute("title",mxResources.get(k.isVisible(g)?"hideIt":"show",[f]));var m=document.createElement("img");m.setAttribute("draggable","false");m.setAttribute("align","absmiddle");m.setAttribute("border","0");m.style.position="relative";m.style.width="16px";m.style.padding="0px 6px 0 4px";c&&(m.style.filter="invert(100%)",m.style.top="-2px");l.appendChild(m);mxUtils.write(l,f);e.appendChild(l);
@@ -2406,11 +2406,11 @@ null==t&&(t=f.hasAttribute(d)?null!=f.getAttribute(d)?f.getAttribute(d):"":null)
Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
Graph.prototype.connectVertex=function(b,c,e,k,g,n,t,d){n=n?n:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var f=this.isCloneConnectSource(b),l=f?b:this.getCompositeParent(b),m=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=e):c==
mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+e):(m.x=c==mxConstants.DIRECTION_WEST?m.x-e:m.x+(l.geometry.width+e),m.y+=l.geometry.height/2);var p=this.view.getState(this.model.getParent(b));e=this.view.scale;var q=this.view.translate,l=q.x*e,q=q.y*e;null!=p&&this.model.isVertex(p.cell)&&(l=p.x,q=p.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(m.x+=b.parent.geometry.x,m.y+=b.parent.geometry.y);n=n?null:(new mxRectangle(l+m.x*e,q+m.y*e)).grow(40*e);n=null!=n?
-this.getCells(0,0,0,0,null,null,n,null,!0):null;var p=this.view.getState(b),v=null,u=null;if(null!=n){n=n.reverse();for(var C=0;C<n.length;C++)if(!this.isCellLocked(n[C])&&!this.model.isEdge(n[C])&&n[C]!=b)if(!this.model.isAncestor(b,n[C])&&this.isContainer(n[C])&&(null==v||n[C]==this.model.getParent(b)))v=n[C];else if(null==u&&this.isCellConnectable(n[C])&&!this.model.isAncestor(n[C],b)&&!this.isSwimlane(n[C])){var x=this.view.getState(n[C]);null==p||null==x||mxUtils.intersects(p,x)||(u=n[C])}}var G=
-!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;G&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var A=[],E=u,u=v;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==u&&f){this.model.beginUpdate();try{if(null==E&&G){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);E=null!=e?e:this.duplicateCells([g],
+this.getCells(0,0,0,0,null,null,n,null,!0):null;var p=this.view.getState(b),v=null,u=null;if(null!=n){n=n.reverse();for(var y=0;y<n.length;y++)if(!this.isCellLocked(n[y])&&!this.model.isEdge(n[y])&&n[y]!=b)if(!this.model.isAncestor(b,n[y])&&this.isContainer(n[y])&&(null==v||n[y]==this.model.getParent(b)))v=n[y];else if(null==u&&this.isCellConnectable(n[y])&&!this.model.isAncestor(n[y],b)&&!this.isSwimlane(n[y])){var x=this.view.getState(n[y]);null==p||null==x||mxUtils.intersects(p,x)||(u=n[y])}}var G=
+!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;G&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var C=[],E=u,u=v;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==u&&f){this.model.beginUpdate();try{if(null==E&&G){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);E=null!=e?e:this.duplicateCells([g],
!1)[0];null!=e&&this.addCells([E],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(E);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=l.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-l.width/2:m.x+l.width/2),l.x=m.x-l.width/2,l.y=m.y-l.height/2);null!=v?(this.addCells([E],v,null,null,null,!0),u=null):G&&!f&&this.addCells([E],this.getDefaultParent(),null,null,null,!0)}var p=mxEvent.isControlDown(k)&&
mxEvent.isShiftDown(k)&&G||null==u&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,E,this.createCurrentEdgeStyle());if(null!=p&&this.connectionHandler.insertBeforeSource){var q=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=p.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==p.parent&&(q=e.parent.getIndex(e),this.model.add(e.parent,p,q))}null==u&&null!=E&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(q=b.parent.getIndex(b),this.model.add(b.parent,
-E,q));null!=p&&A.push(p);null==u&&null!=E&&A.push(E);null==E&&null!=p&&p.geometry.setTerminalPoint(m,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=d)d(A);else return A});if(null==t||null!=E||!G||null==u&&f)return g(E);t(l+m.x*e,q+m.y*e,g)};
+E,q));null!=p&&C.push(p);null==u&&null!=E&&C.push(E);null==E&&null!=p&&p.geometry.setTerminalPoint(m,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=d)d(C);else return C});if(null==t||null!=E||!G||null==u&&f)return g(E);t(l+m.x*e,q+m.y*e,g)};
Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,k;for(k in this.model.cells)if(e=this.model.cells[k],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(b.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([b])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&c.push(e);return c.join(" ")};
Graph.prototype.convertValueToString=function(b){var c=this.model.getValue(b);if(null!=c&&"object"==typeof c){var e=null;if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),k=b;null==e&&null!=k;)null!=k.value&&"object"==typeof k.value&&(e=k.hasAttribute(c)?null!=k.getAttribute(c)?k.getAttribute(c):"":null),k=this.model.getParent(k);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=c.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=c.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(b){return null!=b&&null!=b.text&&null!=b.text.node?b.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(b){return null!=b.value&&"object"==typeof b.value?(b=b.value.getAttribute("link"),null!=b&&"javascript:"===b.toLowerCase().substring(0,11)&&(b=b.substring(11)),b):null};
@@ -2479,7 +2479,7 @@ TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getC
TableLayout.prototype.layoutRow=function(b,c,e,k){var g=this.graph.getModel(),n=g.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var t=null,d=b.x,f=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var l=0;l<n.length;l++){var m=this.graph.getCellGeometry(n[l]);null!=m&&(m=m.clone(),m.y=b.y,m.height=e-b.y-b.height,null!=c?(m.x=c[l],m.width=c[l+1]-m.x,l==n.length-1&&l<c.length-2&&(m.width=k-m.x-b.x-b.width)):(m.x=d,d+=m.width,l==n.length-1?m.width=k-b.x-b.width-f:f+=m.width),m.alternateBounds=
new mxRectangle(0,0,m.width,m.height),g.setGeometry(n[l],m));null!=t&&null!=t.geo&&(1<t.colspan?(t.colspan--,t.geo.width+=m.width,g.setVisible(n[l],!1)):g.setVisible(n[l],!0));if(null==t||1>=t.colspan)t=this.graph.getCurrentCellStyle(n[l],!0),t={colspan:null!=t?parseInt(t.colspan||1):1,style:t,cell:n[l],geo:m}}return f};
TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),k=this.graph.getCellStyle(b),g="1"==mxUtils.getValue(k,"resizeLastRow","0"),n="1"==mxUtils.getValue(k,"resizeLast","0"),k="1"==mxUtils.getValue(k,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{var f=e.height-c.y-c.height,l=e.width-c.x-c.width,m=t.getChildCells(b,!0),p=this.getSize(m,!1);if(0<f&&0<l&&0<m.length&&0<p){if(g){var q=this.graph.getCellGeometry(m[m.length-
-1]);null!=q&&(q=q.clone(),q.height=f-p+q.height,t.setGeometry(m[m.length-1],q))}for(var v=n?null:this.getRowLayout(m[0],l),u=c.y,C=0;C<m.length;C++)q=this.graph.getCellGeometry(m[C]),null!=q&&(q=q.clone(),q.x=c.x,q.width=l,q.y=Math.round(u),u=g||k?u+q.height:u+q.height/p*f,q.height=Math.round(u)-q.y,t.setGeometry(m[C],q)),d=Math.max(d,this.layoutRow(m[C],v,q.height,l));k&&f<p&&(e=e.clone(),e.height=u+c.height,t.setGeometry(b,e));n&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+
+1]);null!=q&&(q=q.clone(),q.height=f-p+q.height,t.setGeometry(m[m.length-1],q))}for(var v=n?null:this.getRowLayout(m[0],l),u=c.y,y=0;y<m.length;y++)q=this.graph.getCellGeometry(m[y]),null!=q&&(q=q.clone(),q.x=c.x,q.width=l,q.y=Math.round(u),u=g||k?u+q.height:u+q.height/p*f,q.height=Math.round(u)-q.y,t.setGeometry(m[y],q)),d=Math.max(d,this.layoutRow(m[y],v,q.height,l));k&&f<p&&(e=e.clone(),e.height=u+c.height,t.setGeometry(b,e));n&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+
Graph.minTableColumnWidth,t.setGeometry(b,e))}}finally{t.endUpdate()}}};
(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var f=this.getState(b);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&!f.invalid&&this.updateLineJumps(f)&&this.graph.cellRenderer.redraw(f,!1,this.isRendering());f=c.apply(this,
arguments);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(f);return f};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var b=this.node.getElementsByTagName("path");if(1<b.length){"1"!=mxUtils.getValue(this.state.style,
@@ -2521,7 +2521,7 @@ Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null
mxConstants.NONE,[b]);var W=this.model.getTerminal(c,!1);if(null!=W){var u=this.getCurrentCellStyle(W);null!=u&&"1"==u.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,f){if(d||f)l.apply(this,arguments);
else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=g.length-1;else if(b&&null==c&&0<g.length||null!=e&&b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(b,d,f,c,e,g,l){l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),F=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=F&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var u=this.getCellGeometry(q);null!=u&&(u=u.clone(),u.height-=F.height,
-this.model.setGeometry(q,u))}u=this.getCellGeometry(e);null!=u&&(u=u.clone(),u.height+=F.height,this.model.setGeometry(e,u));var W=this.model.getChildCells(e,!0);if(0<W.length){b[p]=c?this.cloneCell(b[p]):b[p];var n=this.model.getChildCells(b[p],!0),v=this.model.getChildCells(W[0],!0),y=v.length-n.length;if(0<y)for(var D=0;D<y;D++){var x=this.cloneCell(n[n.length-1]);null!=x&&(x.value="",this.model.add(b[p],x))}else if(0>y)for(D=0;D>y;D--)this.model.remove(n[n.length+D-1]);n=this.model.getChildCells(b[p],
+this.model.setGeometry(q,u))}u=this.getCellGeometry(e);null!=u&&(u=u.clone(),u.height+=F.height,this.model.setGeometry(e,u));var W=this.model.getChildCells(e,!0);if(0<W.length){b[p]=c?this.cloneCell(b[p]):b[p];var n=this.model.getChildCells(b[p],!0),v=this.model.getChildCells(W[0],!0),A=v.length-n.length;if(0<A)for(var D=0;D<A;D++){var x=this.cloneCell(n[n.length-1]);null!=x&&(x.value="",this.model.add(b[p],x))}else if(0>A)for(D=0;D>A;D--)this.model.remove(n[n.length+D-1]);n=this.model.getChildCells(b[p],
!0);for(D=0;D<v.length;D++){var ta=this.getCellGeometry(v[D]),t=this.getCellGeometry(n[D]);null!=ta&&null!=t&&(t=t.clone(),t.width=ta.width,this.model.setGeometry(n[D],t))}}}}for(var sa=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),sa)}finally{this.model.endUpdate()}return sa};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,
l[m])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=p.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=null!=f?f:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var f=this.model.getChildCount(d),c=0;c<f;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=
@@ -2531,7 +2531,7 @@ this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=
this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||g||e)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var f=this.model.getParent(b);
null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,
!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);f.setGeometry(g,m);var F=this.view.getState(g),u=this.view.getState(l),n=this.view.getState(k);if(null!=F){var W=null!=u?this.getConnectionConstraint(F,u,!0):null,v=null!=n?this.getConnectionConstraint(F,n,!1):null;this.setConnectionConstraint(g,
-l,!0,v);this.setConnectionConstraint(g,k,!1,W);var y=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,y,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/
+l,!0,v);this.setConnectionConstraint(g,k,!1,W);var A=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,A,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/
2-m.height/2;m.y+=m.height/2-m.width/2;var D=m.width;m.width=m.height;m.height=D;f.setGeometry(g,m)}var x=this.view.getState(g);if(null!=x){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],I=mxUtils.getValue(x.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,I)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=
function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var q=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&
(d=this.model.getParent(d));var f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}q.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var f=this.view.getState(b[d]);null!=f&&null!=f.shape&&null!=f.shape.stencil&&
@@ -2563,11 +2563,11 @@ d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.removeChild(d[0])}break}
if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(f.length-1),c=e,g=1;g<f.length-1;g++){var p=this.view.getState(this.model.getParent(f[g].cell)),
q=this.getCellGeometry(f[g].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/2)-p.origin.y,this.getModel().setGeometry(f[g].cell,q))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});
return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,f,c,e,g,l,k,m,p,q,F,u,n){var v=null;if(null!=n)for(v=new mxDictionary,q=0;q<n.length;q++)v.put(n[q],!0);if(n=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;
-g=null!=g?g:!0;l=null!=l?l:!0;var y="page"==u?this.view.getBackgroundPageBounds():g&&null==v||c||"diagram"==u?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),D=this.view.scale;"diagram"==u&&null!=this.backgroundImage&&y.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*D,(this.view.translate.y+this.backgroundImage.y)*D,this.backgroundImage.width*D,this.backgroundImage.height*D));if(null==y)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),
-t=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==x.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/D;var I=Math.max(1,Math.ceil(y.width*b)+2*f)+(p?5:0),A=Math.max(1,Math.ceil(y.height*b)+2*f)+(p?5:0);t.setAttribute("version",
-"1.1");t.setAttribute("width",I+"px");t.setAttribute("height",A+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+I+" "+A);x.appendChild(t);var C=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");t.appendChild(C);var W=this.createSvgCanvas(C);W.foOffset=e?-.5:0;W.textOffset=e?-.5:0;W.imageOffset=e?-.5:0;W.translate(Math.floor(f/d-y.x/D),Math.floor(f/d-y.y/D));var Y=document.createElement("div"),B=W.getAlternateText;W.getAlternateText=function(b,d,f,c,e,
+g=null!=g?g:!0;l=null!=l?l:!0;var A="page"==u?this.view.getBackgroundPageBounds():g&&null==v||c||"diagram"==u?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),D=this.view.scale;"diagram"==u&&null!=this.backgroundImage&&A.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*D,(this.view.translate.y+this.backgroundImage.y)*D,this.backgroundImage.width*D,this.backgroundImage.height*D));if(null==A)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),
+t=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==x.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/D;var I=Math.max(1,Math.ceil(A.width*b)+2*f)+(p?5:0),y=Math.max(1,Math.ceil(A.height*b)+2*f)+(p?5:0);t.setAttribute("version",
+"1.1");t.setAttribute("width",I+"px");t.setAttribute("height",y+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+I+" "+y);x.appendChild(t);var C=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");t.appendChild(C);var W=this.createSvgCanvas(C);W.foOffset=e?-.5:0;W.textOffset=e?-.5:0;W.imageOffset=e?-.5:0;W.translate(Math.floor(f/d-A.x/D),Math.floor(f/d-A.y/D));var Y=document.createElement("div"),B=W.getAlternateText;W.getAlternateText=function(b,d,f,c,e,
g,l,k,m,p,q,z,oa){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?g=g.innerText:(Y.innerHTML=g,g=mxUtils.extractTextWithWhitespace(Y.childNodes));for(var Wa=Math.ceil(2*c/this.state.fontSize),ua=[],Sa=0,F=0;(0==Wa||Sa<Wa)&&F<g.length;){var Ta=g.charCodeAt(F);if(10==Ta||13==Ta){if(0<Sa)break}else ua.push(g.charAt(F)),255>Ta&&Sa++;F++}ua.length<g.length&&1<g.length-ua.length&&(g=mxUtils.trim(ua.join(""))+"...");return g}catch(gb){return B.apply(this,arguments)}else return B.apply(this,arguments)};
-var N=this.backgroundImage;if(null!=N){d=D/d;var ta=this.view.translate,ca=new mxRectangle((N.x+ta.x)*d,(N.y+ta.y)*d,N.width*d,N.height*d);mxUtils.intersects(y,ca)&&W.image(N.x+ta.x,N.y+ta.y,N.width,N.height,N.src,!0)}W.scale(b);W.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,ba=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=ba.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};
+var N=this.backgroundImage;if(null!=N){d=D/d;var ta=this.view.translate,ca=new mxRectangle((N.x+ta.x)*d,(N.y+ta.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,ca)&&W.image(N.x+ta.x,N.y+ta.y,N.width,N.height,N.src,!0)}W.scale(b);W.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,ba=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=ba.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};
k.drawCellState=function(b,d){for(var f=b.view.graph,c=null!=v?v.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==v||c)&&null!=e;)c=null!=v?v.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==v||c)&&E.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),W);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(W,t);return t}finally{n&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=
function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var f=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,
"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var g=b.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);f.appendChild(c);e.appendChild(g);f.appendChild(e);d.appendChild(f)}};Graph.prototype.updateSvgLinks=function(b,d,f){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=
@@ -2592,11 +2592,11 @@ d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.co
return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),f=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));f.insertNode(b);f.setStartAfter(b);f.setEndAfter(b);d.removeAllRanges();d.addRange(f)};mxCellEditor.prototype.alignText=function(b,d){var f=null!=d&&mxEvent.isShiftDown(d);if(f||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=
!0;this.graph.processElements(this.textarea,function(b){f||window.getSelection().containsNode(b,!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&b.rangeCount){for(var d=[],f=0,c=b.rangeCount;f<c;++f)d.push(b.getRangeAt(f));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
return null};mxCellEditor.prototype.restoreSelection=function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(la){}};var u=mxCellRenderer.prototype.postConfigureShape;mxCellRenderer.prototype.postConfigureShape=function(b){var d=Editor.isDarkMode()?"#ffffff":"#000000",f=b.view.graph.defaultPageBackgroundColor;this.resolveDefaultColor(b,"fill",b.shape,f);this.resolveDefaultColor(b,
-"stroke",b.shape,d);this.resolveDefaultColor(b,"laneFill",b.shape,f);this.resolveDefaultColor(b,"imageBackground",b.shape,f);this.resolveDefaultColor(b,"imageBorder",b.shape,d);this.resolveDefaultColor(b,"background",b.text,f);this.resolveDefaultColor(b,"color",b.text,d);u.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(b,d,f,c){null!=f&&"default"==f[d]&&(f[d]=c)};var C=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=
-b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));C.apply(this,arguments)};var x=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?x.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var G=mxCellEditor.prototype.startEditing;
+"stroke",b.shape,d);this.resolveDefaultColor(b,"laneFill",b.shape,f);this.resolveDefaultColor(b,"imageBackground",b.shape,f);this.resolveDefaultColor(b,"imageBorder",b.shape,d);this.resolveDefaultColor(b,"background",b.text,f);this.resolveDefaultColor(b,"color",b.text,d);u.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(b,d,f,c){null!=f&&"default"==f[d]&&(f[d]=c)};var y=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=
+b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));y.apply(this,arguments)};var x=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?x.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var G=mxCellEditor.prototype.startEditing;
mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);G.apply(this,arguments);var f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=
-mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var A=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
-b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}A.apply(this,arguments);
+mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var C=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
+b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}C.apply(this,arguments);
7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?f(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);
if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),f=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,
mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,
@@ -2629,9 +2629,9 @@ else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())
b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height=
"4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=
mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(f);this.graph.container.appendChild(f)}})(this.graph.view.getState(b.getChildAt(this.state.cell,d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();
-this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var y=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=
+this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var A=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=
this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=this.customHandles[c].shape.bounds,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/2){f=!0;break}}f&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+
-d):b=y.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=this.state.view.scale;var f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}d=mxUtils.getBoundingBox(this.bounds,
+d):b=A.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=this.state.view.scale;var f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}d=mxUtils.getBoundingBox(this.bounds,
null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var D=mxEdgeHandler.prototype.mouseMove;
mxEdgeHandler.prototype.mouseMove=function(b,d){D.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var Y=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(b,d){Y.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&
(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+
@@ -2678,9 +2678,9 @@ for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.display
this.cornerHandles[b].node.parentNode.removeChild(this.cornerHandles[b].node);this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};
var aa=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(aa.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var ja=mxEdgeHandler.prototype.reset;
mxEdgeHandler.prototype.reset=function(){ja.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var P=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){P.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function p(){mxActor.call(this)}function q(){mxCylinder.call(this)}
-function v(){mxCylinder.call(this)}function u(){mxActor.call(this)}function C(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function A(){mxActor.call(this)}function E(){mxActor.call(this)}function J(){mxActor.call(this)}function L(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,L.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+function v(){mxCylinder.call(this)}function u(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function C(){mxActor.call(this)}function E(){mxActor.call(this)}function J(){mxActor.call(this)}function L(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,L.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,L.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,L.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,L.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,L.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,L.prototype.arcTo)}function H(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function B(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function O(){mxCylinder.call(this)}function ia(){mxShape.call(this)}function F(){mxShape.call(this)}function y(){mxEllipse.call(this)}function D(){mxShape.call(this)}function Y(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function ba(){mxShape.call(this)}function ca(){mxShape.call(this)}function da(){mxShape.call(this)}
+function B(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function O(){mxCylinder.call(this)}function ia(){mxShape.call(this)}function F(){mxShape.call(this)}function A(){mxEllipse.call(this)}function D(){mxShape.call(this)}function Y(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function ba(){mxShape.call(this)}function ca(){mxShape.call(this)}function da(){mxShape.call(this)}
function ka(){mxShape.call(this)}function ma(){mxShape.call(this)}function ga(){mxCylinder.call(this)}function V(){mxCylinder.call(this)}function na(){mxRectangleShape.call(this)}function U(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function ra(){mxArrowConnector.call(this);this.spacing=0}function Z(){mxArrowConnector.call(this);this.spacing=0}function fa(){mxActor.call(this)}function ha(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}
function pa(){mxActor.call(this)}function aa(){mxActor.call(this)}function ja(){mxActor.call(this)}function P(){mxActor.call(this)}function W(){mxActor.call(this)}function ta(){mxActor.call(this)}function sa(){mxActor.call(this)}function la(){mxActor.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}function Fa(){mxRhombus.call(this)}function Ja(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function Ia(){mxEllipse.call(this)}
function za(){mxEllipse.call(this)}function wa(){mxActor.call(this)}function va(){mxActor.call(this)}function Ca(){mxActor.call(this)}function X(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ga(){mxConnector.call(this)}function Ua(b,d,f,c,e,g,l,k,m,p){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
@@ -2708,16 +2708,16 @@ mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,
parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=0);z=0;null!=f&&(z=10);b.begin();b.moveTo(z,d);b.arcTo(d,d,0,0,1,z+d,0);b.lineTo(c-d,0);b.arcTo(d,d,0,0,1,c,d);b.lineTo(c,e-d);b.arcTo(d,d,0,0,1,c-d,e);b.lineTo(z+d,e);b.arcTo(d,d,0,0,1,z,e-d);b.close();b.fillAndStroke();b.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(b.roundrect(c-40,e-20,
10,10,3,3),b.stroke(),b.roundrect(c-20,e-20,10,10,3,3),b.stroke(),b.begin(),b.moveTo(c-30,e-15),b.lineTo(c-20,e-15),b.stroke());"connPointRefEntry"==f?(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",
null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",v);mxUtils.extend(u,mxActor);u.prototype.size=30;u.prototype.isRoundable=function(){return!0};u.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,
-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(C,mxActor);C.prototype.size=.4;C.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};C.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,
-"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",C);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,
+d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};y.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,
+"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",y);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*b.height):null};x.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,0);b.lineTo(c,0);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};mxCellRenderer.registerShape("document",x);var $a=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(b,d,f,c){var e=
mxUtils.getValue(this.style,"size");return null!=e?c*Math.max(0,Math.min(1,e)):$a.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,b.height*d),0,0)}return null};m.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,
"lid",!0)||(d/=2);return new mxRectangle(0,Math.min(b.height*this.scale,2*d*this.scale),0,Math.max(0,.3*d*this.scale))}return null};q.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,
"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,
"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(G,mxActor);G.prototype.size=.2;G.prototype.fixedSize=20;G.prototype.isRoundable=function(){return!0};G.prototype.redrawPath=
-function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",G);mxUtils.extend(A,
-mxActor);A.prototype.size=.2;A.prototype.fixedSize=20;A.prototype.isRoundable=function(){return!0};A.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,
-0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",A);mxUtils.extend(E,mxActor);E.prototype.size=.5;E.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,
+function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",G);mxUtils.extend(C,
+mxActor);C.prototype.size=.2;C.prototype.fixedSize=20;C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,
+0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",C);mxUtils.extend(E,mxActor);E.prototype.size=.5;E.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,
e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",E);mxUtils.extend(J,mxActor);J.prototype.redrawPath=function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",J);L.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=
d};L.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};L.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};L.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};L.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,
arguments);this.lastX=g;this.lastY=l};L.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-
@@ -2740,7 +2740,7 @@ return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};N.prototy
k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],p=this.style["symbol"+g+"Height"],q=this.style["symbol"+g+"Spacing"]||0,oa=this.style["symbol"+g+"VSpacing"]||q,F=this.style["symbol"+g+"ArcSpacing"];null!=F&&(F*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=F,oa+=F);var F=d,ua=f,F=l==mxConstants.ALIGN_CENTER?F+(c-m)/2:l==mxConstants.ALIGN_RIGHT?F+(c-m-q):F+q,ua=k==mxConstants.ALIGN_MIDDLE?ua+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?ua+(e-p-oa):ua+oa;b.save();l=new z;
l.style=this.style;z.prototype.paintVertexShape.call(l,b,F,ua,m,p);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(O,mxCylinder);O.prototype.redrawPath=function(b,d,f,c,e,g){g?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",O);mxUtils.extend(ia,mxShape);ia.prototype.paintBackground=
function(b,d,f,c,e){b.translate(d,f);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",ia);mxUtils.extend(F,mxShape);F.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};F.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();
-b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",F);mxUtils.extend(y,mxEllipse);y.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",y);mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=
+b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",F);mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",A);mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=
function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",D);mxUtils.extend(Y,mxShape);Y.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};Y.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};Y.prototype.paintForeground=
function(b,d,f,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",Y);mxUtils.extend(I,mxRectangleShape);I.prototype.size=40;I.prototype.isHtmlAllowed=function(){return!1};I.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};I.prototype.paintBackground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,
parseFloat(mxUtils.getValue(this.style,"size",this.size)))),z=mxUtils.getValue(this.style,"participant");null==z||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,f,c,g):(z=this.state.view.graph.cellRenderer.getShape(z),null!=z&&z!=I&&(z=new z,z.apply(this.state),b.save(),z.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};I.prototype.paintForeground=
@@ -2752,7 +2752,7 @@ function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,argument
new mxPoint(b.getCenterX()+c,Math.min(b.y+b.height,Math.max(b.y,f.y)));f.y<b.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(b.x+b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",B.prototype.size))*d.view.scale))),d.style),
d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?G.prototype.fixedSize:G.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?
(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]):(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("parallelogramPerimeter",
-mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?A.prototype.fixedSize:A.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+
+mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?C.prototype.fixedSize:C.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+
e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):
m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(l,z+m),new mxPoint(l,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,
"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,p=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,b),new mxPoint(l,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,
@@ -2794,33 +2794,33 @@ type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
dispName:"Fold"}]}];X.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};X.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=g&&g.rectOutline?g.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),z=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),F=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),u=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),n=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),v=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),y=g&&g.bottom?g.bottom:
-mxUtils.getValue(this.style,"bottom",!0),D=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),z=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),F=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),u=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),n=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),v=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:
+mxUtils.getValue(this.style,"bottom",!0),D=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:
mxUtils.getValue(this.style,"fillColor","#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var Y=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),B=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),ua=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),oa=g&&g.opacity?g.opacity:
-mxUtils.getValue(this.style,"opacity","100"),ca=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(z);F&&""!=F&&b.setDashPattern(F);b.setStrokeWidth(Y);m=Math.min(.5*e,.5*c,m);k||(m=ca*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(u*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(n||v||y||D)&&"frame"!=p&&(b.begin(),n?g.moveNW(b,d,f,c,e,l,x,m,D):b.moveTo(0,0),n&&g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),v&&g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,
-c,e,l,I,m,y),y&&g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),D&&g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(B),z=k=oa,"none"==B&&(k=0),"none"==N&&(z=0),b.setGradient(B,N,0,0,c,e,ua,k,z),b.begin(),n?g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),D&&y&&g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),y&&v&&g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,
-d,f,c,e,l,t,m,q,n,v),v&&n&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),n&&D&&g.paintNWInner(b,d,f,c,e,l,x,m,q),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,x,t,I,A,m,n,v,y,D),b.stroke()));n||v||y||!D?n||v||!y||D?!n&&!v&&y&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,
-d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):n||!v||y||D?!n&&v&&!y&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==
-p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,
-l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&y&&!D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,
-d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&y&&D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,
-d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,
-d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n||v||y||D?n&&!v&&!y&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke()):
-(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke()):n&&!v&&y&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke(),b.begin(),
-g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):
-n&&!v&&y&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,
-m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):n&&v&&!y&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,
-v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,
-c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&!y&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke()):
-(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke()):n&&v&&y&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,
-D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,
-m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&y&&D&&("frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,
-n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,
-e,l,A,m,q,y,D),b.close()),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,
-e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke())):"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,
-e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&
-(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,
-d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,x,t,I,A,m,n,v,y,D);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&
+mxUtils.getValue(this.style,"opacity","100"),ca=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(z);F&&""!=F&&b.setDashPattern(F);b.setStrokeWidth(Y);m=Math.min(.5*e,.5*c,m);k||(m=ca*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(u*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(n||v||A||D)&&"frame"!=p&&(b.begin(),n?g.moveNW(b,d,f,c,e,l,x,m,D):b.moveTo(0,0),n&&g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),v&&g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,
+c,e,l,I,m,A),A&&g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),D&&g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(B),z=k=oa,"none"==B&&(k=0),"none"==N&&(z=0),b.setGradient(B,N,0,0,c,e,ua,k,z),b.begin(),n?g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),D&&A&&g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),A&&v&&g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,
+d,f,c,e,l,t,m,q,n,v),v&&n&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),n&&D&&g.paintNWInner(b,d,f,c,e,l,x,m,q),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,x,t,I,y,m,n,v,A,D),b.stroke()));n||v||A||!D?n||v||!A||D?!n&&!v&&A&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,
+d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):n||!v||A||D?!n&&v&&!A&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==
+p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,
+l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&A&&!D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,
+d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&A&&D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,
+d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,
+d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n||v||A||D?n&&!v&&!A&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke()):n&&!v&&A&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke(),b.begin(),
+g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):
+n&&!v&&A&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,
+m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):n&&v&&!A&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,
+v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,
+c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&!A&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke()):n&&v&&A&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,
+D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,
+m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&A&&D&&("frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,
+n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,
+e,l,y,m,q,A,D),b.close()),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,
+e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke())):"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,
+e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&
+(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,
+d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,x,t,I,y,m,n,v,A,D);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&
"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};X.prototype.moveSW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};X.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};X.prototype.paintTop=
function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};X.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};X.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};X.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};X.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,
@@ -2835,12 +2835,12 @@ e-m-k):b.moveTo(0,e-k)};X.prototype.lineSWInner=function(b,d,f,c,e,g,l,m,k,q){q?
g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};X.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
k,e)};X.prototype.moveNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};X.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==
l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};X.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,
-0)};X.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,F,n,y,u){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
-l&&"fold"==g)&&F&&u&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&F&&n&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&y&&n&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&y&&u&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(Ga,mxConnector);Ga.prototype.origPaintEdgeShape=Ga.prototype.paintEdgeShape;
+0)};X.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,F,n,A,u){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
+l&&"fold"==g)&&F&&u&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&F&&n&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&A&&n&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&A&&u&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(Ga,mxConnector);Ga.prototype.origPaintEdgeShape=Ga.prototype.paintEdgeShape;
Ga.prototype.paintEdgeShape=function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;Ga.prototype.origPaintEdgeShape.apply(this,[b,c,f]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,g),Ga.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",Ga);"undefined"!==typeof StyleFormatPanel&&function(){var b=
StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.stroke()}});mxMarker.addMarker("box",
-function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1),n=c.x+p/2,y=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(n-p/2-F/2,y-F/2+p/2);b.lineTo(n-p/2+F/2,y-F/2-p/2);b.lineTo(n+F/2-3*p/2,y-3*F/2-p/2);b.lineTo(n-F/2-3*p/2,y-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-
-F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),F=Ua.apply(this,arguments),n=e*(l+2*k),y=g*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*n+e*k,p.y-2*y+g*k);b.moveTo(p.x-n-y+g*k,p.y-y+n-e*k);b.lineTo(p.x+y-n-g*k,p.y-y-n+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),F=g*(l+
+function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1),n=c.x+p/2,A=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(n-p/2-F/2,A-F/2+p/2);b.lineTo(n-p/2+F/2,A-F/2-p/2);b.lineTo(n+F/2-3*p/2,A-3*F/2-p/2);b.lineTo(n-F/2-3*p/2,A-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-
+F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),F=Ua.apply(this,arguments),n=e*(l+2*k),A=g*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*n+e*k,p.y-2*A+g*k);b.moveTo(p.x-n-A+g*k,p.y-A+n-e*k);b.lineTo(p.x+A-n-g*k,p.y-A-n+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),F=g*(l+
k+1),n=c.clone();c.x-=q;c.y-=F;return function(){b.begin();b.moveTo(n.x-F,n.y+q);b.quadTo(c.x-F,c.y+q,c.x,c.y);b.quadTo(c.x+F,c.y-q,n.x+F,n.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var p=c.clone();p.x-=d;p.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-g/2,p.y-g+e/2):b.lineTo(p.x+g/2-e,p.y-g-e/2);b.lineTo(p.x-e,p.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
function(b){b=null!=b?b:2;return function(d,f,c,e,g,l,m,k,p,q){g*=m+p;l*=m+p;var F=e.clone();return function(){d.begin();d.moveTo(F.x,F.y);k?d.lineTo(F.x-g-l/b,F.y-l+g/b):d.lineTo(F.x+l/b-g,F.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return La(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=
Math.round(2*d)/b.view.scale-f})},La=function(b,d,f,c,e){return ea(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,p=Math.sqrt(g*g+k*k),m=c.call(this,p,g/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,F=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
@@ -2878,14 +2878,14 @@ mxUtils.getValue(this.state.style,"jettyHeight",ga.prototype.jettyHeight)));retu
"dy",qa.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ea(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",pa.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",pa.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,
d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Da(1),doubleArrow:Da(.5),folder:function(b){return[ea(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",q.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",q.prototype.tabHeight)));mxUtils.getValue(this.state.style,
"tabPosition",q.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",q.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",x.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ea(b,
+"size",x.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ea(b,
["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Za(l.prototype.size),cylinder3:Za(m.prototype.size),offPageConnector:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",la.prototype.size))));
return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,
["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Ma(M.prototype.size,!0,null,!0,M.prototype.fixedSize),hexagon:Ma(Q.prototype.size,!0,.5,!0,Q.prototype.fixedSize),curlyBracket:Ma(E.prototype.size,!1),display:Ma(Ca.prototype.size,!1),cube:Ra(1,
-c.prototype.size,!1),card:Ra(.5,u.prototype.size,!0),loopLimit:Ra(.5,sa.prototype.size,!0),trapezoid:Va(.5,A.prototype.size,A.prototype.fixedSize),parallelogram:Va(1,G.prototype.size,G.prototype.fixedSize)};Graph.createHandle=ea;Graph.handleFactory=Na;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&
+c.prototype.size,!1),card:Ra(.5,u.prototype.size,!0),loopLimit:Ra(.5,sa.prototype.size,!0),trapezoid:Va(.5,C.prototype.size,C.prototype.fixedSize),parallelogram:Va(1,G.prototype.size,G.prototype.fixedSize)};Graph.createHandle=ea;Graph.handleFactory=Na;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&
null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Na[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Na[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);
b=Na[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Da=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Da),Math.sin(Da)),Da=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Da),Math.sin(Da));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=g.transformControlPoint(b,c));null==
-m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),f.getCenterY()));var k=Oa.x,p=Oa.y,q=Pa.x,F=Pa.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=y.x;var c=d-y.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);n?(f&&(y=new mxPoint(y.x+k*d,y.y+p*d),e.push(y)),y=new mxPoint(y.x+q*b,y.y+F*b)):(f&&(y=new mxPoint(y.x+q*b,y.y+F*b),e.push(y)),y=new mxPoint(y.x+k*d,y.y+p*d));e.push(y)};var y=m;null==
+m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),f.getCenterY()));var k=Oa.x,p=Oa.y,q=Pa.x,F=Pa.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=A.x;var c=d-A.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);n?(f&&(A=new mxPoint(A.x+k*d,A.y+p*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+F*b)):(f&&(A=new mxPoint(A.x+q*b,A.y+F*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+p*d));e.push(A)};var A=m;null==
c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return fb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=
function(b,d,f){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*f);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -2915,13 +2915,13 @@ xa.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraint
.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];V.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
-.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];C.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
+.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];G.prototype.constraints=mxRectangleShape.prototype.constraints;A.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];G.prototype.constraints=mxRectangleShape.prototype.constraints;C.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;pa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(d+c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -3006,7 +3006,7 @@ DrawioFile.prototype.updateFile=function(b,c,e,k){null!=e&&e()||(this.ui.getCurr
DrawioFile.prototype.mergeFile=function(b,c,e,k){var g=!0;try{this.stats.fileMerged++;var n=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(n,this.ui.pages):null;var d=[this.ui.diffPages(null!=k?k:n,this.shadowPages)];if(!this.ignorePatches(d)){var f=this.ui.patchPages(n,
d[0]);k={};var l=this.ui.getHashValueForPages(f,k),n={},m=this.ui.getHashValueForPages(this.shadowPages,n);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",m==l,l);if(null!=l&&l!=m){var p=this.compressReportData(this.getAnonymizedXmlForPages(t)),q=this.compressReportData(this.getAnonymizedXmlForPages(f)),v=this.ui.hashValue(b.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
"\nChecksum: "+l+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(n)+"\nFrom: "+v+"\nTo: "+u+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+q,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(G){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=e&&e(G);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,G);else{var C=this.getCurrentUser(),x=null!=C?C.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,G)}}catch(A){}}};
+null!=e&&e(G);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,G);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,G)}}catch(C){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var k=0;k<b.length;k++){var g=c.encode(new mxGraphModel(b[k].root));"1"!=urlParams.dev&&(g=this.ui.anonymizeNode(g,!0));g.setAttribute("id",b[k].getId());b[k].viewState&&this.ui.editor.graph.saveViewState(b[k].viewState,g,!0);e.appendChild(g)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,c,e,k,g){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!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var n=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null!=b?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement)),
@@ -3181,10 +3181,10 @@ k||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==k||/(\.w
null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[g].substring(0,l)),k)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;b()})):b()};Editor.prototype.embedExtFonts=function(b){var d=this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,
b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),
c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,
-"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,v,x,t,A,C){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var y=m?null:n.background;
-y==mxConstants.NONE&&(y=null);null==y&&(y=f);null==y&&0==m&&(y=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,l,null,null,null,p,null,t,A,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(f,0,0);b(m,c)},0):(v.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));
-k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var v=m.getContext("2d");null!=y&&(v.beginPath(),v.rect(0,0,p,q),v.fillStyle=y,v.fill());1!=k&&v.scale(k,k);if(x){var t=n.view,A=t.scale;t.scale=1;var F=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var F="data:image/svg+xml;base64,"+F,D=n.gridSize*t.gridSteps*k,C=n.getGraphBounds(),
-B=t.translate.x*A,N=t.translate.y*A,I=B+(C.x-B)/A-u,E=N+(C.y-N)/A-u,G=new Image;G.onload=function(){try{for(var b=-Math.round(D-mxUtils.mod((B-I)*k,D)),d=-Math.round(D-mxUtils.mod((N-E)*k,D));b<p;b+=D)for(var c=d;c<q;c+=D)v.drawImage(G,b/k,c/k);l()}catch(X){null!=e&&e(X)}};G.onerror=function(b){null!=e&&e(b)};G.src=F}else l()}catch(wa){null!=e&&e(wa)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=
+"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,v,x,t,y,C){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var A=m?null:n.background;
+A==mxConstants.NONE&&(A=null);null==A&&(A=f);null==A&&0==m&&(A=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,l,null,null,null,p,null,t,y,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(f,0,0);b(m,c)},0):(v.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));
+k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var v=m.getContext("2d");null!=A&&(v.beginPath(),v.rect(0,0,p,q),v.fillStyle=A,v.fill());1!=k&&v.scale(k,k);if(x){var t=n.view,F=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=F;var y="data:image/svg+xml;base64,"+y,C=n.gridSize*t.gridSteps*k,D=n.getGraphBounds(),
+B=t.translate.x*F,N=t.translate.y*F,I=B+(D.x-B)/F-u,E=N+(D.y-N)/F-u,G=new Image;G.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((B-I)*k,C)),d=-Math.round(C-mxUtils.mod((N-E)*k,C));b<p;b+=C)for(var c=d;c<q;c+=C)v.drawImage(G,b/k,c/k);l()}catch(X){null!=e&&e(X)}};G.onerror=function(b){null!=e&&e(b)};G.src=y}else l()}catch(wa){null!=e&&e(wa)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=
this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(aa){null!=e&&e(aa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ja){null!=e&&e(ja)}}))}catch(aa){null!=e&&e(aa)}}),c,q)}catch(qa){null!=e&&e(qa)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var n=g,t=0;8>t;t++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[g]=n;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;e++)b=
Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,m)}function l(b){b=g(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,m);do{var p=l(b);if("IDAT"==g(b,4)){e=b.substring(0,m-8);"pHYs"==d&&"dpi"==c?(c=Math.round(f/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=k(c.length)+
@@ -3226,16 +3226,16 @@ if(p.length>d)p=p.slice(0,d);else for(var u=p.length;u<d;u++)p.push(m);p=p.join(
c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":
d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,k){null!=d&&(d=d.split(","),u.push({name:b,values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var n={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,
countProperty:g},q=p(b,"",n,0==q%2,k);f(b,e,n);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(b,d,c,f,e,g,l){if(0<e){var k=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=f?f:"";u.push({name:b,values:k,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";
-e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,x=p.type,t=document.createElement("tr");t.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);n=!1;null!=p.index&&(t.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var A=document.createElement("td");A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(v,
-null,v));n&&(A.style.textAlign="right");t.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==x)A.appendChild(g(d,c,p));else if("bool"==x||"boolean"==x)A.appendChild(m(d,c,p));else if("enum"==x){var y=p.enumList;for(u=0;u<y.length;u++)if(v=y[u],v.val==c){A.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(A,g);for(var l=0;l<y.length;l++){var k=
-y[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);m.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,p)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?A.appendChild(l(d,c,p.subType,p.subDefVal,p.countProperty,t,u)):"staticArr"==x?A.appendChild(k(d,c,p.subType,p.subDefVal,p.size,
-t,u)):"readOnly"==x?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",A.appendChild(u)):(A.innerHTML=c,mxEvent.addListener(A,"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):
-b)+"");f(d,b,p)}var l=document.createElement("input");e(A,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||p.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=p.min&&(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",p,p.index);mxEvent.consume(b)})),
-u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",A.appendChild(u));t.appendChild(A);return t}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var A=document.createElement("img");
-A.src=Sidebar.prototype.expandedImage;t.appendChild(A);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var y=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(xa){}}else A.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=
-c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);v.appendChild(x);var F=!1,C=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&v.appendChild(p("id",mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=
-d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var D=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)C=!C;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var N=x.dependentProps,E=[],G=[],t=0;t<N.length;t++){var Q=c.style[N[t]];G.push(d[N[t]].subDefVal);E.push(null!=Q?Q.split(","):[])}x.dependentPropsDefVal=G;x.dependentPropsVals=
-E}v.appendChild(p(B,D,x,F,C));F=!F}}for(t=0;t<u.length;t++)for(x=u[t],d=x.parentRow,c=0;c<x.values.length;c++)B=p(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(v);y();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,
+e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,x=p.type,t=document.createElement("tr");t.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);n=!1;null!=p.index&&(t.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var y=document.createElement("td");y.className="gePropRowCell";y.innerHTML=mxUtils.htmlEntities(mxResources.get(v,
+null,v));n&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,p));else if("bool"==x||"boolean"==x)y.appendChild(m(d,c,p));else if("enum"==x){var A=p.enumList;for(u=0;u<A.length;u++)if(v=A[u],v.val==c){y.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<A.length;l++){var k=
+A[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);m.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,p)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,p.subType,p.subDefVal,p.countProperty,t,u)):"staticArr"==x?y.appendChild(k(d,c,p.subType,p.subDefVal,p.size,
+t,u)):"readOnly"==x?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",y.appendChild(u)):(y.innerHTML=c,mxEvent.addListener(y,"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):
+b)+"");f(d,b,p)}var l=document.createElement("input");e(y,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||p.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=p.min&&(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",p,p.index);mxEvent.consume(b)})),
+u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",y.appendChild(u));t.appendChild(y);return t}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var y=document.createElement("img");
+y.src=Sidebar.prototype.expandedImage;t.appendChild(y);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var A=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(xa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=
+c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;A()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);v.appendChild(x);var C=!1,F=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&v.appendChild(p("id",mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=
+d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var D=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)F=!F;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var N=x.dependentProps,E=[],G=[],t=0;t<N.length;t++){var Q=c.style[N[t]];G.push(d[N[t]].subDefVal);E.push(null!=Q?Q.split(","):[])}x.dependentPropsDefVal=G;x.dependentPropsVals=
+E}v.appendChild(p(B,D,x,C,F));C=!C}}for(t=0;t<u.length;t++)for(x=u[t],d=x.parentRow,c=0;c<x.values.length;c++)B=p(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(v);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,
"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var g="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),l=document.createElement("div");
l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";for(var k=[],m=0;m<this.defaultColorSchemes.length;m++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(m);
k.push(p);l.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=b;n(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),n=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){f.getModel().beginUpdate();try{for(var e=this.format.getSelectionState().cells,l=
@@ -3254,12 +3254,12 @@ b.appendChild(d));return b}}Graph.customFontElements={};Graph.recentCustomFonts=
mxUtils.write(c,'@font-face {\nfont-family: "'+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var f=b.toLowerCase();if("helvetica"!=f&&"arial"!=b&&"sans-serif"!=f){var e=Graph.customFontElements[f];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[f]=e,Graph.recentCustomFonts[f]=
e,d=document.getElementsByTagName("head")[0],null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var f="FONT"==b[d].nodeName?
b[d].getAttribute("face"):b[d].style.fontFamily;null!=f&&Graph.addFont(f,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible=
-"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;var C=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}C.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,
+"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,
"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var f=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d){if("rack"==d.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=
null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}if("undefined"!==typeof mxTableLayout&&"tableLayout"==d.childLayout)return c=new mxTableLayout(this.graph),c.rows=d.tableRows||2,c.columns=d.tableColumns||
2,c.colPercentages=d.colPercentages,c.rowPercentages=d.rowPercentages,c.equalColumns="1"==mxUtils.getValue(d,"equalColumns",c.colPercentages?"0":"1"),c.equalRows="1"==mxUtils.getValue(d,"equalRows",c.rowPercentages?"0":"1"),c.resizeParent="1"==mxUtils.getValue(d,"resizeParent","1"),c.border=d.tableBorder||c.border,c.marginLeft=d.marginLeft||0,c.marginRight=d.marginRight||0,c.marginTop=d.marginTop||0,c.marginBottom=d.marginBottom||0,c.autoAddCol="1"==mxUtils.getValue(d,"autoAddCol","0"),c.autoAddRow=
"1"==mxUtils.getValue(d,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=d.colWidths||"100",c.rowHeights=d.rowHeights||"50",c}return f.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b){return Graph.processFontStyle(x.apply(this,arguments))};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,k,m,p,q){G.apply(this,arguments);Graph.processFontAttributes(q)};
-var A=mxText.prototype.redraw;mxText.prototype.redraw=function(){A.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function f(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();f();l.refresh()}function g(b,c){p.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding",
+var C=mxText.prototype.redraw;mxText.prototype.redraw=function(){C.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function f(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();f();l.refresh()}function g(b,c){p.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding",
"2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var g=0>mxUtils.indexOf(l.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var n=document.createElement("img");n.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);n.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(n,
g?75:25);n.style.verticalAlign="middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";q.appendChild(n);mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),f(),l.refresh());mxEvent.consume(d)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow=
"ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,
@@ -3272,8 +3272,8 @@ u);l.model.addListener(mxEvent.CHANGE,u);l.addListener(mxEvent.REFRESH,u);var v=
Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var E=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return E.apply(this,
arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(D){null!=window.console&&console.log("Error in vars URL parameter: "+D)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):
{}};var J=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=J.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var L=Graph.prototype.getSvg;Graph.prototype.getSvg=
-function(b,d,c,f,e,g,l,k,m,p,q,n,u,v){var x=null,t=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=L.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var y=A.ownerDocument,B=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"style"):y.createElement("style");
-null!=y.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var F="",N="",E=0;E<C.length;E++){var D=C[E].name,G=C[E].url;Graph.isCssFontUrl(G)?F+="@import url("+G+");\n":N+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+G+'");\n}\n'}B.appendChild(y.createTextNode(F+N));A.getElementsByTagName("defs")[0].appendChild(B)}null!=x&&(this.defaultPageBackgroundColor=t,this.stylesheet=x,this.refresh());return A};var H=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=
+function(b,d,c,f,e,g,l,k,m,p,q,n,u,v){var x=null,t=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var y=L.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var A=y.ownerDocument,B=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");
+null!=A.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var F="",N="",E=0;E<C.length;E++){var D=C[E].name,G=C[E].url;Graph.isCssFontUrl(G)?F+="@import url("+G+");\n":N+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+G+'");\n}\n'}B.appendChild(A.createTextNode(F+N));y.getElementsByTagName("defs")[0].appendChild(B)}null!=x&&(this.defaultPageBackgroundColor=t,this.stylesheet=x,this.refresh());return y};var H=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=
function(){var b=H.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=
f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||
this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};
@@ -3312,35 +3312,35 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+
"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var S=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,f,e,g,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
mxStencilRegistry.getStencil(q)}return S.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,p=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,
-d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=K.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(M.value),N=parseInt(O.value),t=Math.min(x.height*N/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(A.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,A.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):
+d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=K.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(M.value),N=parseInt(O.value),t=Math.min(x.height*N/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):
B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
-if("undefined"!==typeof MathJax){var y=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=y.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+if("undefined"!==typeof MathJax){var A=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=A.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,B=g[u].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),
c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=p,d.view.scale=q);return c}var f=parseInt(H.value)/100;isNaN(f)&&(f=1,H.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,p=!q.checked,
-n=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,C.checked,M.value,O.value,parseInt(A.value)/100,parseInt(H.value)/100,K.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,E=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
-(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,E=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=k;l.mathEnabled=x;var y=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:y.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}n=
+n=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,C.checked,M.value,O.value,parseInt(y.value)/100,parseInt(H.value)/100,K.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,E=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
+(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,E=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=k;l.mathEnabled=x;var A=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:A.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}n=
c(l,n,t!=p);l!=e&&l.container.parentNode.removeChild(l.container)}}else n=c(e);null==n?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(n.mathEnabled&&(p=n.wnd.document,d&&(n.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),n.closeDocument(),!n.mathEnabled&&d&&PrintDialog.printPreview(n));null!=g&&(e.stylesheet=g,e.refresh())}}var e=b.editor.graph,g=document.createElement("div"),l=document.createElement("h3");
l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));g.appendChild(l);var k=1,m=1,p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");p.appendChild(q);l=document.createElement("span");
mxUtils.write(l,mxResources.get("printAllPages"));p.appendChild(l);mxUtils.br(p);var n=q.cloneNode(!0);q.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);l=document.createElement("span");
mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+1;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(p),
-n.checked=!0):n.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";x.appendChild(A);
-mxEvent.addListener(A,"focus",function(){t.checked=!0});g.appendChild(x);var p=p.cloneNode(!1),C=t.cloneNode(!0);C.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(C);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),E=N.cloneNode(!0),y=document.createElement("td"),
-G=y.cloneNode(!0),Q=y.cloneNode(!0),J=y.cloneNode(!0),F=y.cloneNode(!0),S=y.cloneNode(!0);y.style.textAlign="right";J.style.textAlign="right";mxUtils.write(y,mxResources.get("fitTo"));var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","1");M.setAttribute("min","1");M.setAttribute("type","number");M.style.width="40px";G.appendChild(M);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));Q.appendChild(l);mxUtils.write(J,
-mxResources.get("fitToBy"));var O=M.cloneNode(!0);F.appendChild(O);mxEvent.addListener(M,"focus",function(){C.checked=!0});mxEvent.addListener(O,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));S.appendChild(l);N.appendChild(y);N.appendChild(G);N.appendChild(Q);E.appendChild(J);E.appendChild(F);E.appendChild(S);B.appendChild(N);B.appendChild(E);x.appendChild(B);p.appendChild(x);g.appendChild(p);p=document.createElement("div");l=
+n.checked=!0):n.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var y=document.createElement("input");y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);
+mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var p=p.cloneNode(!1),C=t.cloneNode(!0);C.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(C);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),E=N.cloneNode(!0),A=document.createElement("td"),
+G=A.cloneNode(!0),Q=A.cloneNode(!0),F=A.cloneNode(!0),J=A.cloneNode(!0),S=A.cloneNode(!0);A.style.textAlign="right";F.style.textAlign="right";mxUtils.write(A,mxResources.get("fitTo"));var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","1");M.setAttribute("min","1");M.setAttribute("type","number");M.style.width="40px";G.appendChild(M);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));Q.appendChild(l);mxUtils.write(F,
+mxResources.get("fitToBy"));var O=M.cloneNode(!0);J.appendChild(O);mxEvent.addListener(M,"focus",function(){C.checked=!0});mxEvent.addListener(O,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));S.appendChild(l);N.appendChild(A);N.appendChild(G);N.appendChild(Q);E.appendChild(F);E.appendChild(J);E.appendChild(S);B.appendChild(N);B.appendChild(E);x.appendChild(B);p.appendChild(x);g.appendChild(p);p=document.createElement("div");l=
document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";
H.setAttribute("value","100 %");H.style.width="60px";p.appendChild(H);g.appendChild(p);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";b.editor.cancelFirst&&l.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);g.appendChild(l);this.container=g};var N=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else N.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 O=document.createElement("canvas"),ia=new Image;ia.onload=function(){try{O.getContext("2d").drawImage(ia,0,0);var b=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(y){}};ia.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(F){}})();
+null!=b&&6<b.length}catch(A){}};ia.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(F){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.3.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.3.4";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="1"==urlParams.dev?"/cache":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&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";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(b,c,e,g,k,q,n){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
"SEVERE";if(EditorUi.enableLogging&&"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";k=null!=k?k:Error(b);(new Image).src=d+"/log?severity="+q+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+
-encodeURIComponent(e)+(null!=g?":colno:"+encodeURIComponent(g):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(C){}try{n||null==window.console||console.error(q,b,c,e,g,k)}catch(C){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):
+encodeURIComponent(e)+(null!=g?":colno:"+encodeURIComponent(g):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(y){}try{n||null==window.console||console.error(q,b,c,e,g,k)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):
"")}catch(l){}};EditorUi.sendReport=function(b,c){if("1"==urlParams.dev)EditorUi.debug("sendReport",b);else if(EditorUi.enableLogging)try{c=null!=c?c:5E4,b.length>c&&(b=b.substring(0,c)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(b))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var b=[(new Date).toISOString()],c=0;c<arguments.length;c++)null!=
arguments[c]&&b.push(arguments[c]);console.log.apply(console,b)}}catch(l){}};EditorUi.parsePng=function(b,c,e){function d(b,d){var c=g;g+=d;return b.substring(c,g)}function f(b){b=d(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var g=0;if(d(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(d(b,4),"IHDR"!=d(b,4))null!=e&&e();else{d(b,17);do{e=f(b);var l=d(b,4);if(null!=c&&c(g-8,l,e))break;value=d(b,e);d(b,4);if("IEND"==
l)break}while(e)}};EditorUi.removeChildNodes=function(b){for(;null!=b.firstChild;)b.removeChild(b.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;";
@@ -3383,18 +3383,18 @@ return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,
mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),
null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),n=k.getChildren(k.root),e=0;e<n.length;e++){var u=n[e];k.setVisible(u,b[u.id]||!1)}}catch(C){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,q,n,u,t,x,G,A){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),n=k.getChildren(k.root),e=0;e<n.length;e++){var u=n[e];k.setVisible(u,b[u.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,q,n,u,t,x,G,C){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();
var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&G?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,
-c){try{var f=this.editor.graph.pageVisible;null!=q&&(this.editor.graph.pageVisible=q);var e=this.createDownloadRequest(d,b,g,c,n,k,u,t,x,G,A);this.editor.graph.pageVisible=f;return e}catch(ia){this.handleError(ia)}}));else{var m=null,p=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;
-if(n||v==mxConstants.NONE)v=null;var C=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(C);this.editor.convertImages(C,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();p(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();p(b)}),g)}}catch(Q){this.handleError(Q)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,q,n,u,t,
+c){try{var f=this.editor.graph.pageVisible;null!=q&&(this.editor.graph.pageVisible=q);var e=this.createDownloadRequest(d,b,g,c,n,k,u,t,x,G,C);this.editor.graph.pageVisible=f;return e}catch(ia){this.handleError(ia)}}));else{var m=null,p=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;
+if(n||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();p(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();p(b)}),g)}}catch(Q){this.handleError(Q)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,q,n,u,t,
x,G){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==q?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=G?m="&from="+G.from+"&to="+G.to:0==q&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&null!=this.currentPage))for(q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){l="&from="+q;break}q=
d.background;"png"!=c&&"pdf"!=c||!k?k||null!=q&&q!=mxConstants.NONE||(q="#ffffff"):q=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+g+"&embedXml="+x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+
(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.getHash=function(){return d};this.fileLoaded(f);"csv"==
b.format&&this.importCsv(e,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var g=null!=b.interval?parseInt(b.interval):6E4,l=null,k=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+
" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,g)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){f(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.warningImage,
b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var g=this.editor.graph,k=g.getModel();k.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var u=k.getCell(b.getAttribute("id"));if(null!=u){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;
-if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(u,x);else for(var G=x.attributes,A=0;A<G.length;A++)g.setAttributeForCell(u,G[A].nodeName,0<G[A].nodeValue.length?G[A].nodeValue:null)}}catch(Q){null!=window.console&&console.log("Error in value for "+u.id+": "+Q)}try{var E=b.getAttribute("style");null!=E&&g.model.setStyle(u,E)}catch(Q){null!=window.console&&console.log("Error in style for "+u.id+": "+Q)}try{var J=b.getAttribute("icon");if(null!=J){var L=0<J.length?JSON.parse(J):null;null!=
+if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(u,x);else for(var G=x.attributes,C=0;C<G.length;C++)g.setAttributeForCell(u,G[C].nodeName,0<G[C].nodeValue.length?G[C].nodeValue:null)}}catch(Q){null!=window.console&&console.log("Error in value for "+u.id+": "+Q)}try{var E=b.getAttribute("style");null!=E&&g.model.setStyle(u,E)}catch(Q){null!=window.console&&console.log("Error in style for "+u.id+": "+Q)}try{var J=b.getAttribute("icon");if(null!=J){var L=0<J.length?JSON.parse(J):null;null!=
L&&L.append||g.removeCellOverlays(u);null!=L&&g.addCellOverlay(u,d(L))}}catch(Q){null!=window.console&&console.log("Error in icon for "+u.id+": "+Q)}try{var H=b.getAttribute("geometry");if(null!=H){var H=JSON.parse(H),K=g.getCellGeometry(u);if(null!=K){K=K.clone();for(key in H){var B=parseFloat(H[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=B:"dh"==key?K.height+=B:K[key]=parseFloat(H[key])}g.model.setGeometry(u,K)}}}catch(Q){null!=window.console&&console.log("Error in icon for "+u.id+
": "+Q)}}}else if("model"==b.nodeName){for(var M=b.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(b.firstChild)).decode(M,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
1);b=b.nextSibling}}finally{k.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,n=g.getDate(),t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+n+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};
@@ -3413,10 +3413,10 @@ function(b){var d=this.sidebar.container;if(null==b){var c=this.sidebar.palettes
e,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,g){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var f=null,l=mxUtils.bind(this,
function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;g=m.getAttribute("title");null!=g&&0<
g.length&&".scratchpad"!=b.title&&m.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";m.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.top=
-"2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var A=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=A?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
+"2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var C=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=C?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
if(b.isEditable()){var E=this.editor.graph,J=null,L=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),H=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=J&&null!=J.parentNode&&J.parentNode.removeChild(J),J=t.cloneNode(!1),J.setAttribute("src",Editor.spinImage),J.setAttribute("title",mxResources.get("saving")),J.style.cursor="default",J.style.marginRight="2px",J.style.marginTop="-2px",n.insertBefore(J,n.firstChild),m.style.paddingRight=
-18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=J&&null!=J.parentNode&&(J.parentNode.removeChild(J),m.style.paddingRight=18*n.childNodes.length+"px")})):null==A&&(A=t.cloneNode(!1),A.setAttribute("src",Editor.saveImage),A.setAttribute("title",mxResources.get("save")),n.insertBefore(A,n.firstChild),mxEvent.addListener(A,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
-A||b.isModified()||(m.style.paddingRight=18*n.childNodes.length+"px",A.parentNode.removeChild(A),A=null)});mxEvent.consume(d)})),m.style.paddingRight=18*n.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=E.cloneCells(mxUtils.sortCells(E.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=E.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
+18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=J&&null!=J.parentNode&&(J.parentNode.removeChild(J),m.style.paddingRight=18*n.childNodes.length+"px")})):null==C&&(C=t.cloneNode(!1),C.setAttribute("src",Editor.saveImage),C.setAttribute("title",mxResources.get("save")),n.insertBefore(C,n.firstChild),mxEvent.addListener(C,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
+C||b.isModified()||(m.style.paddingRight=18*n.childNodes.length+"px",C.parentNode.removeChild(C),C=null)});mxEvent.consume(d)})),m.style.paddingRight=18*n.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=E.cloneCells(mxUtils.sortCells(E.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=E.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);H(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),B=mxUtils.bind(this,function(b){if(E.isSelectionEmpty())E.getRubberband().isActive()?(E.getRubberband().execute(b),E.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=E.getSelectionCells(),c=E.view.getBounds(d),e=E.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=E.view.translate.x;
c.y-=E.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler.first&&(E.graphHandler.suspend(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",E.panningManager.stop(),E.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler&&
(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,E.panningManager.stop(),E.graphHandler.reset(),E.isMouseDown=!1,E.autoScroll=!0,B(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){E.isMouseDown&&null!=E.graphHandler.first&&(E.graphHandler.resume(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",E.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,
@@ -3452,7 +3452,7 @@ b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(t
9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(b,c){var d=new TextareaDialog(this,b,c,null,null,mxResources.get("close"));d.textarea.style.width="600px";d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,g,k,q){"text/xml"!=e||/(\.drawio)$/i.test(c)||
/(\.xml)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=q?q:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=g?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank","_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+
":",b):this.openInNewWindow(b,e,g);else{var d=document.createElement("a");q=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);q=65==(f?parseInt(f[2],10):!1)?!1:q}if(q||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));q?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);
-try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(C){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,q){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=q?"&base64="+q:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=
+try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,q){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=q?"&base64="+q:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=
c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var n=1024*k,t=Math.min(n+1024,e),x=Array(t-n),G=0;n<t;++G,++n)x[G]=d[n].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,q,n,u){q=null!=q?q:!1;n=null!=n?n:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(q);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==
c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,u):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,
d,e,g,c,f)}catch(L){this.handleError(L)}}))}catch(J){this.handleError(J)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,q,n,null,1<k,d,b,e,g);q=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,400,q,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+
@@ -3470,9 +3470,9 @@ null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.max
function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=
function(b,c,e,g,k,q,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){q=null!=q?q:"pdf"==c?"application/pdf":
"image/"+c;if(null!=g)try{this.exportFile(g,b,q,!0,d,e)}catch(J){this.handleError(J)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,q,!0,d,e)}catch(J){this.handleError(J)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),
-mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,f,g,q,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,380,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,q){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,C,x,G,A){if(this.spinner.spin(document.body,
-mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,G,A);g&&this.editor.graph.addSvgShadow(l);var m=this.getBaseFilename()+(k?".drawio":"")+".svg",p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",
-this.getFileData(!0,null,null,null,e,C,null,null,null,!1));var d=Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",d,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.editor.addFontCss(l);this.editor.graph.mathEnabled&&this.editor.addMathCss(l);q?(null==this.thumbImageCache&&
+mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,f,g,q,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,380,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,q){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,y,x,G,C){if(this.spinner.spin(document.body,
+mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,G,C);g&&this.editor.graph.addSvgShadow(l);var m=this.getBaseFilename()+(k?".drawio":"")+".svg",p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",
+this.getFileData(!0,null,null,null,e,y,null,null,null,!1));var d=Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",d,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.editor.addFontCss(l);this.editor.graph.mathEnabled&&this.editor.addMathCss(l);q?(null==this.thumbImageCache&&
(this.thumbImageCache={}),this.editor.convertImages(l,p,this.thumbImageCache)):p(l)}catch(B){this.handleError(B)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,q,n){return this.addCheckbox(b,e,g,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,q,n,t){q=null!=q?q:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked",
"checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");
g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");g.appendChild(e);b.appendChild(g);mxEvent.addListener(g,"change",mxUtils.bind(this,function(){if("custom"==g.value){var b=new FilenameDialog(this,f,mxResources.get("ok"),
@@ -3481,15 +3481,15 @@ function(b,c){function d(){k.innerHTML='<div style="width:100%;height:100%;box-s
f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+
")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var g="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(g||"none",function(b){g=b;d()});mxEvent.consume(b)}));d();k.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";b.appendChild(k);
mxUtils.br(b);return{getColor:function(){return g},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,g,k,q,n){n=null!=n?n:[];g&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=b&&n.push("target="+b),null!=c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&n.push("edit="+encodeURIComponent(k)),q&&n.push("layers=1"),this.editor.graph.foldingEnabled&&
-n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,g,k,q,n,t,C,x){C=this.createUrlParameters(b,c,e,g,k,q,C);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
-(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&C.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(C.push("open="+e.substring(1)),e="");return(g&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<C.length?"?"+C.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,q,n,t,C,x,G,A){this.getBasenames();
-var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");C&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,
-null,null,null,null,!n);c='<div class="mxgraph" style="'+(q?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";A(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+
+n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,g,k,q,n,t,y,x){y=this.createUrlParameters(b,c,e,g,k,q,y);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
+(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&y.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(y.push("open="+e.substring(1)),e="");return(g&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<y.length?"?"+y.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,q,n,t,y,x,G,C){this.getBasenames();
+var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");y&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,
+null,null,null,null,!n);c='<div class="mxgraph" style="'+(q?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";C(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+
"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");
k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");l.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(m);mxUtils.br(l);l.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));l.appendChild(m);var n=this.getCurrentFile();
-null==e&&null!=n&&n.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),A=this.addCheckbox(d,mxResources.get("zoom"),
+null==e&&null!=n&&n.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),C=this.addCheckbox(d,mxResources.get("zoom"),
!0,null,!0);mxUtils.write(d,":");var E=document.createElement("input");E.setAttribute("type","text");E.style.marginRight="16px";E.style.width="60px";E.style.marginLeft="4px";E.style.marginRight="12px";E.value="100%";d.appendChild(E);var J=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(d,mxResources.get("allPages"),l,!l),H=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,
-mxResources.get("lightbox"),!0),M=this.addEditButton(d,B),Q=M.getEditInput();Q.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?Q.removeAttribute("disabled"):Q.setAttribute("disabled","disabled");Q.checked&&B.checked?M.getEditSelect().removeAttribute("disabled"):M.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,A.checked,E.value,t.getTarget(),t.getColor(),J.checked,L.checked,H.checked,K.checked,
+mxResources.get("lightbox"),!0),M=this.addEditButton(d,B),Q=M.getEditInput();Q.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?Q.removeAttribute("disabled"):Q.setAttribute("disabled","disabled");Q.checked&&B.checked?M.getEditSelect().removeAttribute("disabled"):M.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,C.checked,E.value,t.getTarget(),t.getColor(),J.checked,L.checked,H.checked,K.checked,
B.checked,M.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,q){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=l&&l.constructor==
window.DriveFile&&!c){b=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));
p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);d.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,
@@ -3500,14 +3500,14 @@ B.checked&&H.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSele
!1,null)):J.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(k?"10":"4")+"px";d.appendChild(f);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";
l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),
Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/100||1,d=parseInt(m.value)||0;e(!p.checked,null!=n?n.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,
-e,g,k,q,n,t,C){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,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=
+e,g,k,q,n,t,y){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,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%";d.appendChild(p);mxUtils.write(d,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";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft=
-"24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var B=document.createElement("select");B.style.marginTop="16px";B.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(b[m]));M.setAttribute("value",b[m]);B.appendChild(M)}C?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,
-"change",function(){"selectionOnly"==B.value&&(v.checked=!0)})):q&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?C&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,
+"24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var B=document.createElement("select");B.style.marginTop="16px";B.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(b[m]));M.setAttribute("value",b[m]);B.appendChild(M)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,
+"change",function(){"selectionOnly"==B.value&&(v.checked=!0)})):q&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,
"change",function(){B.value=v.checked?"selectionOnly":"diagram"}));var Q=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),S=null;Editor.isDarkMode()&&(S=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");
-c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),l+=30);var ia=null;if("png"==t||"jpeg"==t)ia=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var F=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);F.style.marginBottom="16px";var y=document.createElement("select");y.style.maxWidth="260px";y.style.marginLeft="8px";y.style.marginRight="10px";y.className="geBtn";c=document.createElement("option");
-c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));y.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));y.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));y.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(y),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,Q.checked,!v.checked,N.checked,F.checked,O.checked,u.value,K.checked,!1,y.value,null!=ia?ia.checked:null,null!=S?S.checked:null,B.value)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");
+c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),l+=30);var ia=null;if("png"==t||"jpeg"==t)ia=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var F=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);F.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");
+c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
+mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,Q.checked,!v.checked,N.checked,F.checked,O.checked,u.value,K.checked,!1,A.value,null!=ia?ia.checked:null,null!=S?S.checked:null,B.value)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");
d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),E=this.addEditButton(d,t),J=E.getEditInput(),L=1<f.model.getChildCount(f.model.getRoot()),
H=this.addCheckbox(d,mxResources.get("layers"),L,!L);H.style.marginLeft=J.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(L&&H.removeAttribute("disabled"),J.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&t.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
function(){b(m.checked,p.checked,n.checked,t.checked,E.getLink(),H.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,q,n,t){function d(d){var c=" ",m="";g&&(c=" 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('"+
@@ -3522,24 +3522,24 @@ b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.l
b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,g,k){try{var d=this.editor.graph,f=null!=d.themes&&"darkTheme"==d.defaultThemeName,l=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
!0),d),l=e;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var p=this.pages[0];this.currentPage==p?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=p.viewState&&null!=p.viewState&&d.setBackgroundImage(p.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:m.apply(this,
arguments)};document.body.appendChild(d.container);d.model.setRoot(p.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(E){null!=c&&c(E)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
-c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,q,n,t,C,x,G,A,E){t=null!=t?t:!0;n=null!=C?C:c.background;n==mxConstants.NONE&&(n=null);q=c.getSvg(n,x,G,null,null,q,null,null,null,c.shadowVisible||A,null,E,"diagram");(c.shadowVisible||A)&&c.addSvgShadow(q);null!=b&&q.setAttribute("content",b);null!=e&&q.setAttribute("resource",e);var d=(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+
+c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,q,n,t,y,x,G,C,E){t=null!=t?t:!0;n=null!=y?y:c.background;n==mxConstants.NONE&&(n=null);q=c.getSvg(n,x,G,null,null,q,null,null,null,c.shadowVisible||C,null,E,"diagram");(c.shadowVisible||C)&&c.addSvgShadow(q);null!=b&&q.setAttribute("content",b);null!=e&&q.setAttribute("resource",e);var d=(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+
Graph.svgDoctype+"\n")+mxUtils.getXml(q);if(null!=k)this.embedFonts(q,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){k(d)})):k(d)}));else return d};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(m){c(b)}}))}catch(l){c(b)}}))};
-EditorUi.prototype.exportImage=function(b,c,e,g,k,n,t,u,C,x,G,A,E){C=null!=C?C:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,k?this.getFileData(!0,null,null,null,e,u):null,C,null==this.pages||0==this.pages.length,G)}catch(H){this.handleError(H)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,g,null,null,n,t,x,A,E)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,t){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=this.editor.graph;if(null!=b&&0<b.length){f.model.beginUpdate();try{var l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,
+EditorUi.prototype.exportImage=function(b,c,e,g,k,n,t,u,y,x,G,C,E){y=null!=y?y:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,k?this.getFileData(!0,null,null,null,e,u):null,y,null==this.pages||0==this.pages.length,G)}catch(H){this.handleError(H)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,g,null,null,n,t,x,C,E)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,t){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=this.editor.graph;if(null!=b&&0<b.length){f.model.beginUpdate();try{var l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,
null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!n){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(b[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var q=p[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,q))}}else if(0<
p.length){n=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),g=!1,v=1);for(;v<p.length;v++){var L=p[v].getAttribute("id");p[v].removeAttribute("id");var H=this.updatePageRoot(new DiagramPage(p[v]));b[L]=p[v].getAttribute("id");var K=this.pages.length;null==H.getName()&&H.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,H,H,K,!0));n.push(H)}this.updatePageLinks(b,
n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);t&&this.insertHandler(d,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(B){if(k)throw B;this.handleError(B)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,
c){var d=document.createElement("div"),e=this.editor.graph,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var g=d.getElementsByTagName("a"),k=!1,n=0;n<g.length;n++)f=g[n].getAttribute("href"),null!=f&&(g[n].setAttribute("href",this.updatePageLink(b,f)),k=!0);k&&e.labelChanged(c,d.innerHTML)}for(n=0;n<e.model.getChildCount(c);n++)this.updatePageLinksForCell(b,e.model.getChildAt(c,n))};EditorUi.prototype.updatePageLink=
function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open="data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c="data:action/json,"+JSON.stringify(e)}}catch(u){}return c};
EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(g);try{var f="UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=
-m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(A){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
+m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(C){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
null!=k&&p.setRequestHeader("x-convert-custom",k);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(L){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,c,e,g)}catch(J){e(J)}else try{""==p.responseType||"text"==p.responseType?e({message:p.responseText}):(d=new FileReader,d.onload=
-function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(J){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(A){e(A)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});
+function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(J){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(C){e(C)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});
var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(p){e(p)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||
this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=function(b,c,e){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",
action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(p){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(p){null!=window.console&&console.error(p),e(p)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,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",d)})})})}):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generateMermaidImage=function(b,c,e,g){var d=this,f=function(){try{this.loadingMermaid=!1,c=null!=c?c:EditorUi.defaultMermaidConfig,c.securityLevel="strict",c.startOnLoad=!1,mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=
-b.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(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(A){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(A){g(A)}})}catch(v){g(v)}};
+b.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(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(C){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(C){g(C)}})}catch(v){g(v)}};
"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,c,e,g){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+
b);b-=26;return 0==b?"-":1==b?"_":"?"}var l=new XMLHttpRequest;l.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(l.responseType="blob");l.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==
c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,f=c.height;if(0==b&&0==f){var l=d.result,k=l.indexOf(","),m=decodeURIComponent(escape(atob(l.substring(k+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),f=parseFloat(p[0].getAttribute("height")))}e(d.result,b,f)}catch(B){g(B)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=
@@ -3556,34 +3556,34 @@ b.substring(0,26)||'{"Properties":'==b.substring(0,14))};EditorUi.prototype.impo
function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,g=f.close;this.dialog.close=mxUtils.bind(this,
function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(b,c,e){var d=this,f=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(f){if(0==Object.keys(f.files).length)e();else{var g=0,l,k=!1;f.forEach(function(b,d){var f=d.name.toLowerCase();"diagram/diagram.xml"==f?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?
c(b):e()})):0==f.indexOf("versions/")&&(f=parseInt(f.substr(9)),f>g&&(g=f,l=d))});0<g?l.async("string").then(function(f){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(f,b.name)?d.parseFile(new Blob([f],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,t,u,C,x,G,A){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,t)):d=this.importXml(b,e,g,x,null,null!=A?mxEvent.isControlDown(A):null);null!=u&&u(d)});"image"==c.substring(0,5)?(C=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,
-null,null!=A?mxEvent.isControlDown(A):null),C=!0)),C||(c=this.editor.graph,G=b.indexOf(";"),0<G&&(b=b.substring(0,G)+b.substring(b.indexOf(",",G+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=C&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?
-(d=!0,this.importVisio(C,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,t)?(d=!0,this.parseFile(null!=C?C:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=u&&u(null))}),t)):0==b.indexOf("PK")&&null!=C?(d=!0,this.importZipFile(C,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);u(f)}))):/(\.v(sd|dx))($|\?)/i.test(t)||/(\.vs(s|x))($|\?)/i.test(t)||
-(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=A?mxEvent.isControlDown(A):null));d||null==u||u(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,t,u,C,x,G,A,E){g=null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,p=0;p<b.length;p++)if("image/"==b[p].type.substring(0,6)&&b[p].size>m){l=!0;break}var q=mxUtils.bind(this,
-function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,e,f,g,l,k,m,p,d,A,E)}catch(V){return this.handleError(V),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,q=p,v=[],B=mxUtils.bind(this,function(b,
+!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,t,u,y,x,G,C){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,t)):d=this.importXml(b,e,g,x,null,null!=C?mxEvent.isControlDown(C):null);null!=u&&u(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,
+null,null!=C?mxEvent.isControlDown(C):null),y=!0)),y||(c=this.editor.graph,G=b.indexOf(";"),0<G&&(b=b.substring(0,G)+b.substring(b.indexOf(",",G+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?
+(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,t)?(d=!0,this.parseFile(null!=y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=u&&u(null))}),t)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);u(f)}))):/(\.v(sd|dx))($|\?)/i.test(t)||/(\.vs(s|x))($|\?)/i.test(t)||
+(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=C?mxEvent.isControlDown(C):null));d||null==u||u(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,t,u,y,x,G,C,E){g=null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,p=0;p<b.length;p++)if("image/"==b[p].type.substring(0,6)&&b[p].size>m){l=!0;break}var q=mxUtils.bind(this,
+function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,e,f,g,l,k,m,p,d,C,E)}catch(V){return this.handleError(V),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,q=p,v=[],B=mxUtils.bind(this,function(b,
d){v[b]=d;if(0==--q){this.spinner.stop();if(null!=u)u(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=0;y<p;y++)mxUtils.bind(this,function(d){var p=b[d];if(null!=p){var n=new FileReader;n.onload=mxUtils.bind(this,function(b){if(null==t||t(p))if("image/"==p.type.substring(0,6))if("image/svg"==p.type.substring(0,9)){var n=Graph.clipSvgDataUri(b.target.result),q=n.indexOf(","),u=decodeURIComponent(escape(atob(n.substring(q+
-1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],N=A?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?B(d,mxUtils.bind(this,function(){try{if(n.substring(0,q+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],t=f.getAttribute("width"),
-u=f.getAttribute("height"),t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=f.getAttribute("viewBox");if(null==x||0==x.length)f.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var A=x.split(" ");3<A.length&&(t=parseFloat(A[2]),u=parseFloat(A[3]))}n=Editor.createSvgDataUri(mxUtils.getXml(f));var B=Math.min(1,Math.min(g/Math.max(1,t)),g/Math.max(1,u)),N=k(n,p.type,c+d*m,e+d*m,Math.max(1,Math.round(t*B)),Math.max(1,Math.round(u*
-B)),p.name);if(isNaN(t)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){t=Math.max(1,y.width);u=Math.max(1,y.height);N[0].geometry.width=t;N[0].geometry.height=u;f.setAttribute("viewBox","0 0 "+t+" "+u);n=Editor.createSvgDataUri(mxUtils.getXml(f));var b=n.indexOf(";");0<b&&(n=n.substring(0,b)+n.substring(n.indexOf(",",b+1)));l.setCellStyles("image",n,[N[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return N}}}catch(aa){}return null})):B(d,mxUtils.bind(this,function(){return k(N,
-"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else B(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var y=A?null:this.extractGraphModelFromPng(b.target.result);if(null!=y&&0<y.length){var C=new Image;C.src=b.target.result;B(d,mxUtils.bind(this,function(){return k(y,"text/xml",c+d*m,e+d*m,C.width,C.height,p.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],N=C?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?B(d,mxUtils.bind(this,function(){try{if(n.substring(0,q+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],t=f.getAttribute("width"),
+u=f.getAttribute("height"),t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=f.getAttribute("viewBox");if(null==x||0==x.length)f.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var B=x.split(" ");3<B.length&&(t=parseFloat(B[2]),u=parseFloat(B[3]))}n=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,t)),g/Math.max(1,u)),C=k(n,p.type,c+d*m,e+d*m,Math.max(1,Math.round(t*N)),Math.max(1,Math.round(u*
+N)),p.name);if(isNaN(t)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){t=Math.max(1,y.width);u=Math.max(1,y.height);C[0].geometry.width=t;C[0].geometry.height=u;f.setAttribute("viewBox","0 0 "+t+" "+u);n=Editor.createSvgDataUri(mxUtils.getXml(f));var b=n.indexOf(";");0<b&&(n=n.substring(0,b)+n.substring(n.indexOf(",",b+1)));l.setCellStyles("image",n,[C[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return C}}}catch(aa){}return null})):B(d,mxUtils.bind(this,function(){return k(N,
+"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else B(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var y=C?null:this.extractGraphModelFromPng(b.target.result);if(null!=y&&0<y.length){var A=new Image;A.src=b.target.result;B(d,mxUtils.bind(this,function(){return k(y,"text/xml",c+d*m,e+d*m,A.width,A.height,p.name)}));u=!0}}u||(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(b.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,b.target.result,mxUtils.bind(this,function(b,l,n){B(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var q=f&&this.isResampleImageSize(p.size,G)?Math.min(1,Math.min(g/l,g/n)):1;return k(b,p.type,c+d*m,e+d*m,Math.round(l*q),Math.round(n*q),p.name)}this.handleError({message:mxResources.get("imageTooBig")});
return null}))}),f,g,G,p.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else n=b.target.result,k(n,p.type,c+d*m,e+d*m,240,160,p.name,function(b){B(d,function(){return b})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?k(null,p.type,c+d*m,e+d*m,240,160,p.name,function(b){B(d,function(){return b})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?n.readAsDataURL(p):n.readAsText(p)}})(y)});if(l){l=
-[];for(p=0;p<b.length;p++)l.push(b[p]);b=l;this.confirmImageResize(function(b){f=b;q()},C)}else q()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+[];for(p=0;p<b.length;p++)l.push(b[p]);b=l;this.confirmImageResize(function(b){f=b;q()},y)}else q()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(b){f(b,!0)},function(b){f(b,!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):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var f=new XMLHttpRequest;f.open("POST",
OPEN_URL);f.onreadystatechange=function(){c(f)};f.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(q){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,t){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=t?t:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),p=Math.round(f/
l),q=document.createElement("canvas");q.width=m;q.height=p;q.getContext("2d").drawImage(b,0,0,m,p);var v=q.toDataURL();if(v.length<c.length){var L=document.createElement("canvas");L.width=m;L.height=p;var H=L.toDataURL();v!==H&&(c=v,d=m,f=p)}}}catch(K){}e(c,d,f)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:
-120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(p){if(null!=e)e(p);else throw p;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();this.doSetSketchMode(null!=mxSettings.settings.sketchMode?mxSettings.settings.sketchMode:"1"==urlParams.sketch&&"0"!=urlParams.rough);"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=
-mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),[d]);var m=c.model.getGeometry(d);
-null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:g.format}))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,
-g.config,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=
-function(d,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),null!=g)this.editMermaidData(d,f,g);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(S){b.handleError(S)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(M){b.handleError(M)}return c};
+120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(p){if(null!=e)e(p);else throw p;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"1"==urlParams.sketch&&"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&
+(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),
+[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:g.format}))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&
+b.generateMermaidImage(e,g.config,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;
+c.cellEditor.startEditing=function(d,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),null!=g)this.editMermaidData(d,f,g);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(S){b.handleError(S)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(M){b.handleError(M)}return c};
var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});return d};var p=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));p.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,
function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:null;if(null!=e){var f=e.indexOf(",");if(0<f)for(var e=e.substring(f+1),f=d.getProperty("patches"),g=0;g<f.length;g++)if(null!=f[g][EditorUi.DIFF_UPDATE]&&null!=f[g][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(b,d){var c=n.apply(this,arguments);
null==c||null==c.originalSrc||d||(c={src:c.originalSrc});return c};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.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 u=b.editor.getEditBlankUrl;
-this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};var C=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};C.call(this,b,d,e)};g.apply(this,arguments);
+this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);
mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=
-mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var A=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
-"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:A.apply(this,arguments)};var E=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))E.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();
+mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var C=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
+"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:C.apply(this,arguments)};var E=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))E.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();
mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var J=this.actions.get("print");J.setEnabled(!mxClient.IS_IOS||!navigator.standalone);J.visible=J.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,
!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=
e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,f,g,k){c.insertImage(b,
@@ -3598,7 +3598,7 @@ b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b
!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var n=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,k,!0,p,null,n,mxEvent.isControlDown(b)))});p&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){n=b;q()},mxEvent.isControlDown(b)):q()}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),
mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",g,k,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+l+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(l,g,k,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
g,k,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=d.clipboardData||d.originalEvent.clipboardData,e=!1,f=0;f<c.types.length;f++)if("text/"===c.types[f].substring(0,5)){e=!0;break}if(!e){var g=
-c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,f,g,k){b.insertImage(d,g,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var n=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(C){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML=
+c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,f,g,k){b.insertImage(d,g,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var n=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML=
"&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily="monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow=
"hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||
c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||g||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),g=!0,e.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!g||224!=d&&17!=
@@ -3613,22 +3613,22 @@ this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEve
this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){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(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));
this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){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(b,c){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(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),f=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,f,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(C){this.handleError(C)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();
+EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),f=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,f,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();
this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(m){this.handleError(m)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,g){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](g)};
EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),f=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(f));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=f,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;
c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,g){var d=this.editor.graph,f=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))f=this.importXml(b,k,k),d.setSelectionCells(f);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),
g);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else f=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),f=this.insertTextAt(b,f.x+k,f.y+k,!0),d.setSelectionCells(f);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),
null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(b,c,e,g){if(!mxEvent.isConsumed(b)){var d=c,f=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var m=decodeURIComponent(k);this.isCompatibleString(m)&&(l=!0,k=m)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),
f="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,l))}k=d.getElementsByTagName("span");if(null!=k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;
-d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{f=f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var n=f.lastIndexOf("%3E");0<=n&&n<f.length-3&&(f=f.substring(0,n+3))}catch(A){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&
-(l=!0,f=m)}catch(A){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,l,b);try{mxEvent.consume(b)}catch(A){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=0}}catch(A){this.handleError(A)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",
+d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{f=f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var n=f.lastIndexOf("%3E");0<=n&&n<f.length-3&&(f=f.substring(0,n+3))}catch(C){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&
+(l=!0,f=m)}catch(C){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,l,b);try{mxEvent.consume(b)}catch(C){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=0}}catch(C){this.handleError(C)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",
mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,
0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=
c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,
function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,g;if(null==b){g=document.body;
var k=document.documentElement;e=(g.clientWidth||k.clientWidth)-3;g=Math.max(g.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,g=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,g-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?
this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,g,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?
-c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,
+c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,
c,g)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==
b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,g)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(u){this.handleError(u,mxResources.get("errorLoadingFile"))}}else if(0==b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,g)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var f=Editor.extractGraphModelFromPdf(b);null!=f&&(k=null,g=!0,
@@ -3640,23 +3640,23 @@ b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]
b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(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);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&
this.installMessageHandler(mxUtils.bind(this,function(b,c,e,g){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);if(null==b||0==b.length)b=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,b,{}));this.mode=App.MODE_EMBED;this.setFileData(b);if(g)try{var d=this.editor.graph;d.setGridEnabled(!1);d.pageVisible=!1;var f=d.model.cells,k;for(k in f){var l=f[k];null!=l&&null!=l.style&&(l.style+=";sketch=1;"+(-1==l.style.indexOf("fontFamily=")||-1<l.style.indexOf("fontFamily=Helvetica;")?
-"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(C){console.log(C)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=
+"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!=e?e:!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(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),
scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(b){var d=null,c=!1,e=!1,g=null,k=mxUtils.bind(this,function(b,d){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,k);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||
window.parent)){var k=f.data,l=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{"data:image/png;base64,"==b.substring(0,22)?b=this.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(ra){}return b});if("json"==urlParams.proto){var m=!1;try{k=
JSON.parse(k)}catch(R){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var p=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):
k.ok,function(b){null!=b?n.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(p.container,300,80,!0,!1);p.init();return}if("draft"==k.action){var q=l(k.xml);this.spinner.stop();p=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),q,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",
result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(p.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));
-try{p.init()}catch(R){n.postMessage(JSON.stringify({event:"draft",error:R.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var t=1==k.enableRecent,u=1==k.enableSearch,v=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var B=this.getCurrentUser(),C=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,
+try{p.init()}catch(R){n.postMessage(JSON.stringify({event:"draft",error:R.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var t=1==k.enableRecent,u=1==k.enableSearch,v=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var B=this.getCurrentUser(),y=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,
builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=B?B.id:null,t?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,u?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",
-null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(C.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}p=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),
+null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(y.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}p=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),
null,null,null,null,null,null,null,t?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,u?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},
0)})}):null,1==k.withoutType);this.showDialog(p.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));p.init();return}if("textContent"==k.action){var Q=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:Q,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));
null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var S=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,S):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var N=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var O=this.editor.graph,
-ia=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=N;n.postMessage(JSON.stringify(d),"*")}),F=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);ia(b)}),y=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():
-this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(N),c=!1);if(null!=this.pages&&this.currentPage.getId()!=y){for(var D=O.getGlobalVariable,O=this.createTemporaryGraph(O.getStylesheet()),Y,I=0;I<this.pages.length;I++)if(this.pages[I].getId()==y){Y=this.updatePageRoot(this.pages[I]);break}null==Y&&(Y=this.currentPage);O.getGlobalVariable=function(b){return"page"==b?Y.getName():"pagenumber"==b?1:D.apply(this,arguments)};document.body.appendChild(O.container);
+ia=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=N;n.postMessage(JSON.stringify(d),"*")}),F=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);ia(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():
+this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(N),c=!1);if(null!=this.pages&&this.currentPage.getId()!=A){for(var D=O.getGlobalVariable,O=this.createTemporaryGraph(O.getStylesheet()),Y,I=0;I<this.pages.length;I++)if(this.pages[I].getId()==A){Y=this.updatePageRoot(this.pages[I]);break}null==Y&&(Y=this.currentPage);O.getGlobalVariable=function(b){return"page"==b?Y.getName():"pagenumber"==b?1:D.apply(this,arguments)};document.body.appendChild(O.container);
O.model.setRoot(Y.root)}if(null!=k.layerIds){for(var ba=O.model,ca=ba.getChildCells(ba.getRoot()),p={},I=0;I<k.layerIds.length;I++)p[k.layerIds[I]]=!0;for(I=0;I<ca.length;I++)ba.setVisible(ca[I],p[ca[I].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){F(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){F(null)}),null,null,k.scale,k.transparent,k.shadow,null,O,k.border,null,k.grid,k.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+
-("xmlpng"==k.format?"1":"0")+(null!=y?"&pageId="+y:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?ia("data:image/png;base64,"+b.getText()):F(null)}),mxUtils.bind(this,function(){F(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);S=this.createLoadMessage("export");
+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?ia("data:image/png;base64,"+b.getText()):F(null)}),mxUtils.bind(this,function(){F(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);S=this.createLoadMessage("export");
S.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var da=this.getXmlFileData();S.xml=mxUtils.getXml(da);S.data=this.getFileData(null,null,!0,null,null,null,da);S.format=k.format}else if("html"==k.format)N=this.editor.getGraphXml(),S.data=this.getHtml(N,this.editor.graph),S.xml=mxUtils.getXml(N),S.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ka=null!=k.background?k.background:this.editor.graph.background;ka==mxConstants.NONE&&
(ka=null);S.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);S.format="svg";var ma=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();S.data=Editor.createSvgDataUri(b);n.postMessage(JSON.stringify(S),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(S.xml,this.editor.graph,null,!0,ma,null,null,k.embedImages,ka,k.scale,k.border,k.shadow,
k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){this.editor.graph.setEnabled(!1);var ga=this.editor.graph.getSvg(ka,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme);(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(ga);this.embedFonts(ga,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
@@ -3673,21 +3673,21 @@ urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMe
c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g={};if(0<d.length){var k={},n=null,t=null,x=null,G=null,A=null,E=null,J=null,L=null,H=null,K="",B="auto",
-M="auto",Q=null,S=null,N=40,O=40,ia=100,F=0,y=this.editor.graph;y.getGraphBounds();for(var D=function(){null!=c?c(la):(y.setSelectionCells(la),y.scrollCellToVisible(y.getSelectionCell()))},Y=y.getFreeInsertPoint(),I=Y.x,ba=Y.y,Y=ba,ca=null,da="auto",H=null,ka=[],ma=null,ga=null,V=0;V<d.length&&"#"==d[V].charAt(0);){b=d[V];for(V++;V<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[V].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[V].substring(1)),V++;if("#"!=b.charAt(1)){var na=b.indexOf(":");if(0<
-na){var U=mxUtils.trim(b.substring(1,na)),R=mxUtils.trim(b.substring(na+1));"label"==U?ca=y.sanitizeHtml(R):"labelname"==U&&0<R.length&&"-"!=R?A=R:"labels"==U&&0<R.length&&"-"!=R?E=JSON.parse(R):"style"==U?t=R:"parentstyle"==U?J=R:"stylename"==U&&0<R.length&&"-"!=R?G=R:"styles"==U&&0<R.length&&"-"!=R?x=JSON.parse(R):"vars"==U&&0<R.length&&"-"!=R?n=JSON.parse(R):"identity"==U&&0<R.length&&"-"!=R?L=R:"parent"==U&&0<R.length&&"-"!=R?H=R:"namespace"==U&&0<R.length&&"-"!=R?K=R:"width"==U?B=R:"height"==
+EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g={};if(0<d.length){var k={},n=null,t=null,x=null,G=null,C=null,E=null,J=null,L=null,H=null,K="",B="auto",
+M="auto",Q=null,S=null,N=40,O=40,ia=100,F=0,A=this.editor.graph;A.getGraphBounds();for(var D=function(){null!=c?c(la):(A.setSelectionCells(la),A.scrollCellToVisible(A.getSelectionCell()))},Y=A.getFreeInsertPoint(),I=Y.x,ba=Y.y,Y=ba,ca=null,da="auto",H=null,ka=[],ma=null,ga=null,V=0;V<d.length&&"#"==d[V].charAt(0);){b=d[V];for(V++;V<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[V].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[V].substring(1)),V++;if("#"!=b.charAt(1)){var na=b.indexOf(":");if(0<
+na){var U=mxUtils.trim(b.substring(1,na)),R=mxUtils.trim(b.substring(na+1));"label"==U?ca=A.sanitizeHtml(R):"labelname"==U&&0<R.length&&"-"!=R?C=R:"labels"==U&&0<R.length&&"-"!=R?E=JSON.parse(R):"style"==U?t=R:"parentstyle"==U?J=R:"stylename"==U&&0<R.length&&"-"!=R?G=R:"styles"==U&&0<R.length&&"-"!=R?x=JSON.parse(R):"vars"==U&&0<R.length&&"-"!=R?n=JSON.parse(R):"identity"==U&&0<R.length&&"-"!=R?L=R:"parent"==U&&0<R.length&&"-"!=R?H=R:"namespace"==U&&0<R.length&&"-"!=R?K=R:"width"==U?B=R:"height"==
U?M=R:"left"==U&&0<R.length?Q=R:"top"==U&&0<R.length?S=R:"ignore"==U?ga=R.split(","):"connect"==U?ka.push(JSON.parse(R)):"link"==U?ma=R:"padding"==U?F=parseFloat(R):"edgespacing"==U?N=parseFloat(R):"nodespacing"==U?O=parseFloat(R):"levelspacing"==U?ia=parseFloat(R):"layout"==U&&(da=R)}}}if(null==d[V])throw Error(mxResources.get("invalidOrMissingFile"));for(var ra=this.editor.csvToArray(d[V]),U=na=null,R=[],Z=0;Z<ra.length;Z++)L==ra[Z]&&(na=Z),H==ra[Z]&&(U=Z),R.push(mxUtils.trim(ra[Z]).replace(/[^a-z0-9]+/ig,
-"_").replace(/^\d+/,"").replace(/_+$/,""));null==ca&&(ca="%"+R[0]+"%");if(null!=ka)for(var fa=0;fa<ka.length;fa++)null==k[ka[fa].to]&&(k[ka[fa].to]={});L=[];for(Z=V+1;Z<d.length;Z++){var ha=this.editor.csvToArray(d[Z]);if(null==ha){var qa=40<d[Z].length?d[Z].substring(0,40)+"...":d[Z];throw Error(qa+" ("+Z+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&L.push(ha)}y.model.beginUpdate();try{for(Z=0;Z<L.length;Z++){var ha=L[Z],T=null,pa=null!=na?K+ha[na]:null;null!=pa&&(T=y.model.getCell(pa));
-var d=null!=T,aa=new mxCell(ca,new mxGeometry(I,Y,0,0),t||"whiteSpace=wrap;html=1;");aa.vertex=!0;aa.id=pa;for(var ja=0;ja<ha.length;ja++)y.setAttributeForCell(aa,R[ja],ha[ja]);if(null!=A&&null!=E){var P=E[aa.getAttribute(A)];null!=P&&y.labelChanged(aa,P)}if(null!=G&&null!=x){var W=x[aa.getAttribute(G)];null!=W&&(aa.style=W)}y.setAttributeForCell(aa,"placeholders","1");aa.style=y.replacePlaceholders(aa,aa.style,n);d&&(y.model.setGeometry(T,aa.geometry),y.model.setStyle(T,aa.style),0>mxUtils.indexOf(f,
-T)&&f.push(T));T=aa;if(!d)for(fa=0;fa<ka.length;fa++)k[ka[fa].to][T.getAttribute(ka[fa].to)]=T;null!=ma&&"link"!=ma&&(y.setLinkForCell(T,T.getAttribute(ma)),y.setAttributeForCell(T,ma,null));y.fireEvent(new mxEventObject("cellsInserted","cells",[T]));var ta=this.editor.graph.getPreferredSizeForCell(T);T.vertex&&(null!=Q&&null!=T.getAttribute(Q)&&(T.geometry.x=I+parseFloat(T.getAttribute(Q))),null!=S&&null!=T.getAttribute(S)&&(T.geometry.y=ba+parseFloat(T.getAttribute(S))),"@"==B.charAt(0)&&null!=
-T.getAttribute(B.substring(1))?T.geometry.width=parseFloat(T.getAttribute(B.substring(1))):T.geometry.width="auto"==B?ta.width+F:parseFloat(B),"@"==M.charAt(0)&&null!=T.getAttribute(M.substring(1))?T.geometry.height=parseFloat(T.getAttribute(M.substring(1))):T.geometry.height="auto"==M?ta.height+F:parseFloat(M),Y+=T.geometry.height+O);d?(null==g[pa]&&(g[pa]=[]),g[pa].push(T)):(H=null!=U?y.model.getCell(K+ha[U]):null,e.push(T),null!=H?(H.style=y.replacePlaceholders(H,J,n),y.addCell(T,H)):f.push(y.addCell(T)))}for(var sa=
-f.slice(),la=f.slice(),fa=0;fa<ka.length;fa++)for(var Ba=ka[fa],Z=0;Z<e.length;Z++){var T=e[Z],Ea=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&(y.setAttributeForCell(d,c.from,null),""!=e))for(var e=e.split(","),f=0;f<e.length;f++){var g=k[c.to][e[f]];if(null!=g){var l=c.label;null!=c.fromlabel&&(l=(d.getAttribute(c.fromlabel)||"")+(l||""));null!=c.sourcelabel&&(l=y.replacePlaceholders(d,c.sourcelabel,n)+(l||""));null!=c.tolabel&&(l=(l||"")+(g.getAttribute(c.tolabel)||
-""));null!=c.targetlabel&&(l=(l||"")+y.replacePlaceholders(g,c.targetlabel,n));var m="target"==c.placeholders==!c.invert?g:b,m=null!=c.style?y.replacePlaceholders(m,c.style,n):y.createCurrentEdgeStyle(),l=y.insertEdge(null,null,l||"",c.invert?g:b,c.invert?b:g,m);if(null!=c.labels)for(m=0;m<c.labels.length;m++){var p=c.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&
-(q.value=y.replacePlaceholders("target"==p.placeholders==!c.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(c.invert?b:g,sa)}}});Ea(T,T,Ba);if(null!=g[T.id])for(ja=0;ja<g[T.id].length;ja++)Ea(T,g[T.id][ja],Ba)}if(null!=ga)for(Z=0;Z<e.length;Z++)for(T=e[Z],ja=0;ja<ga.length;ja++)y.setAttributeForCell(T,mxUtils.trim(ga[ja]),null);if(0<f.length){var xa=new mxParallelEdgeLayout(y);xa.spacing=N;xa.checkOverlap=
-!0;var Fa=function(){0<xa.spacing&&xa.execute(y.getDefaultParent());for(var b=0;b<f.length;b++){var d=y.getCellGeometry(f[b]);d.x=Math.round(y.snap(d.x));d.y=Math.round(y.snap(d.y));"auto"==B&&(d.width=Math.round(y.snap(d.width)));"auto"==M&&(d.height=Math.round(y.snap(d.height)))}};if("["==da.charAt(0)){var Ja=D;y.view.validate();this.executeLayoutList(JSON.parse(da),function(){Fa();Ja()});D=null}else if("circle"==da){var ya=new mxCircleLayout(y);ya.disableEdgeStyle=!1;ya.resetEdges=!1;var Ia=ya.isVertexIgnored;
-ya.isVertexIgnored=function(b){return Ia.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){ya.execute(y.getDefaultParent());Fa()},!0,D);D=null}else if("horizontaltree"==da||"verticaltree"==da||"auto"==da&&la.length==2*f.length-1&&1==sa.length){y.view.validate();var za=new mxCompactTreeLayout(y,"horizontaltree"==da);za.levelDistance=O;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(y.getDefaultParent(),0<sa.length?sa[0]:null)},!0,D);D=null}else if("horizontalflow"==
-da||"verticalflow"==da||"auto"==da&&1==sa.length){y.view.validate();var wa=new mxHierarchicalLayout(y,"horizontalflow"==da?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=O;wa.parallelEdgeSpacing=N;wa.interRankCellSpacing=ia;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(y.getDefaultParent(),la);y.moveCells(la,I,ba)},!0,D);D=null}else if("organic"==da||"auto"==da&&la.length>f.length){y.view.validate();var va=new mxFastOrganicLayout(y);va.forceConstant=
-3*O;va.disableEdgeStyle=!1;va.resetEdges=!1;var Ca=va.isVertexIgnored;va.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){va.execute(y.getDefaultParent());Fa()},!0,D);D=null}}this.hideDialog()}finally{y.model.endUpdate()}null!=D&&D()}}catch(X){this.handleError(X)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==ca&&(ca="%"+R[0]+"%");if(null!=ka)for(var fa=0;fa<ka.length;fa++)null==k[ka[fa].to]&&(k[ka[fa].to]={});L=[];for(Z=V+1;Z<d.length;Z++){var ha=this.editor.csvToArray(d[Z]);if(null==ha){var qa=40<d[Z].length?d[Z].substring(0,40)+"...":d[Z];throw Error(qa+" ("+Z+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&L.push(ha)}A.model.beginUpdate();try{for(Z=0;Z<L.length;Z++){var ha=L[Z],T=null,pa=null!=na?K+ha[na]:null;null!=pa&&(T=A.model.getCell(pa));
+var d=null!=T,aa=new mxCell(ca,new mxGeometry(I,Y,0,0),t||"whiteSpace=wrap;html=1;");aa.vertex=!0;aa.id=pa;for(var ja=0;ja<ha.length;ja++)A.setAttributeForCell(aa,R[ja],ha[ja]);if(null!=C&&null!=E){var P=E[aa.getAttribute(C)];null!=P&&A.labelChanged(aa,P)}if(null!=G&&null!=x){var W=x[aa.getAttribute(G)];null!=W&&(aa.style=W)}A.setAttributeForCell(aa,"placeholders","1");aa.style=A.replacePlaceholders(aa,aa.style,n);d&&(A.model.setGeometry(T,aa.geometry),A.model.setStyle(T,aa.style),0>mxUtils.indexOf(f,
+T)&&f.push(T));T=aa;if(!d)for(fa=0;fa<ka.length;fa++)k[ka[fa].to][T.getAttribute(ka[fa].to)]=T;null!=ma&&"link"!=ma&&(A.setLinkForCell(T,T.getAttribute(ma)),A.setAttributeForCell(T,ma,null));A.fireEvent(new mxEventObject("cellsInserted","cells",[T]));var ta=this.editor.graph.getPreferredSizeForCell(T);T.vertex&&(null!=Q&&null!=T.getAttribute(Q)&&(T.geometry.x=I+parseFloat(T.getAttribute(Q))),null!=S&&null!=T.getAttribute(S)&&(T.geometry.y=ba+parseFloat(T.getAttribute(S))),"@"==B.charAt(0)&&null!=
+T.getAttribute(B.substring(1))?T.geometry.width=parseFloat(T.getAttribute(B.substring(1))):T.geometry.width="auto"==B?ta.width+F:parseFloat(B),"@"==M.charAt(0)&&null!=T.getAttribute(M.substring(1))?T.geometry.height=parseFloat(T.getAttribute(M.substring(1))):T.geometry.height="auto"==M?ta.height+F:parseFloat(M),Y+=T.geometry.height+O);d?(null==g[pa]&&(g[pa]=[]),g[pa].push(T)):(H=null!=U?A.model.getCell(K+ha[U]):null,e.push(T),null!=H?(H.style=A.replacePlaceholders(H,J,n),A.addCell(T,H)):f.push(A.addCell(T)))}for(var sa=
+f.slice(),la=f.slice(),fa=0;fa<ka.length;fa++)for(var Ba=ka[fa],Z=0;Z<e.length;Z++){var T=e[Z],Ea=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&(A.setAttributeForCell(d,c.from,null),""!=e))for(var e=e.split(","),f=0;f<e.length;f++){var g=k[c.to][e[f]];if(null!=g){var l=c.label;null!=c.fromlabel&&(l=(d.getAttribute(c.fromlabel)||"")+(l||""));null!=c.sourcelabel&&(l=A.replacePlaceholders(d,c.sourcelabel,n)+(l||""));null!=c.tolabel&&(l=(l||"")+(g.getAttribute(c.tolabel)||
+""));null!=c.targetlabel&&(l=(l||"")+A.replacePlaceholders(g,c.targetlabel,n));var m="target"==c.placeholders==!c.invert?g:b,m=null!=c.style?A.replacePlaceholders(m,c.style,n):A.createCurrentEdgeStyle(),l=A.insertEdge(null,null,l||"",c.invert?g:b,c.invert?b:g,m);if(null!=c.labels)for(m=0;m<c.labels.length;m++){var p=c.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&
+(q.value=A.replacePlaceholders("target"==p.placeholders==!c.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(c.invert?b:g,sa)}}});Ea(T,T,Ba);if(null!=g[T.id])for(ja=0;ja<g[T.id].length;ja++)Ea(T,g[T.id][ja],Ba)}if(null!=ga)for(Z=0;Z<e.length;Z++)for(T=e[Z],ja=0;ja<ga.length;ja++)A.setAttributeForCell(T,mxUtils.trim(ga[ja]),null);if(0<f.length){var xa=new mxParallelEdgeLayout(A);xa.spacing=N;xa.checkOverlap=
+!0;var Fa=function(){0<xa.spacing&&xa.execute(A.getDefaultParent());for(var b=0;b<f.length;b++){var d=A.getCellGeometry(f[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==B&&(d.width=Math.round(A.snap(d.width)));"auto"==M&&(d.height=Math.round(A.snap(d.height)))}};if("["==da.charAt(0)){var Ja=D;A.view.validate();this.executeLayoutList(JSON.parse(da),function(){Fa();Ja()});D=null}else if("circle"==da){var ya=new mxCircleLayout(A);ya.disableEdgeStyle=!1;ya.resetEdges=!1;var Ia=ya.isVertexIgnored;
+ya.isVertexIgnored=function(b){return Ia.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){ya.execute(A.getDefaultParent());Fa()},!0,D);D=null}else if("horizontaltree"==da||"verticaltree"==da||"auto"==da&&la.length==2*f.length-1&&1==sa.length){A.view.validate();var za=new mxCompactTreeLayout(A,"horizontaltree"==da);za.levelDistance=O;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(A.getDefaultParent(),0<sa.length?sa[0]:null)},!0,D);D=null}else if("horizontalflow"==
+da||"verticalflow"==da||"auto"==da&&1==sa.length){A.view.validate();var wa=new mxHierarchicalLayout(A,"horizontalflow"==da?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=O;wa.parallelEdgeSpacing=N;wa.interRankCellSpacing=ia;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(A.getDefaultParent(),la);A.moveCells(la,I,ba)},!0,D);D=null}else if("organic"==da||"auto"==da&&la.length>f.length){A.view.validate();var va=new mxFastOrganicLayout(A);va.forceConstant=
+3*O;va.disableEdgeStyle=!1;va.resetEdges=!1;var Ca=va.isVertexIgnored;va.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){va.execute(A.getDefaultParent());Fa()},!0,D);D=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=D&&D()}}catch(X){this.handleError(X)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>
mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};
EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&
d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);
@@ -3702,7 +3702,7 @@ c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):""
"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};u&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,d){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(d||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==
g,!0,!1,!1,n,!0,!1,null,u,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.getIndexableText()+
" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var d={},c=document.createElement("div");c.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+
-IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var C=JSON.parse(decodeURIComponent(t.substring(1)));k[C[0]]={id:C[0],title:C[1],downloadUrl:C[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<
+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<
b.length;c++){var e=b[c];k[e.id]&&(d[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,c){mxEvent.addListener(c,"change",function(){this.checked?d[b.id]=b:delete d[b.id]})})(e,f)}},mxUtils.bind(this,function(b){g.innerHTML="";var d=document.createElement("div");d.style.padding="8px";d.style.textAlign="center";mxUtils.write(d,mxResources.get("error")+": ");mxUtils.write(d,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(d)}));c.appendChild(g);c=new CustomDialog(this,
c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,c;for(c in d)null==k[c]&&(b++,mxUtils.bind(this,function(d){this.remoteInvoke("getFileContent",[d.downloadUrl],null,mxUtils.bind(this,function(c){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,d))}catch(J){this.handleError(J,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(d[c]));
for(c in k)d[c]||this.closeLibrary(new RemoteLibrary(this,null,k[c]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.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"]}};
@@ -3722,31 +3722,31 @@ function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};
null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();
return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language",
"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,n,t,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,g,k,n,t,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
-return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,u,C,x,G,A,E,J,L,H){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,u,C,x,G,A,E,J,L,H)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
+return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,u,y,x,G,C,E,J,L,H){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,u,y,x,G,C,E,J,L,H)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=
function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=
urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k="<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;
var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(b,c,e,k,g,n){function t(){for(var b=A.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==A&&c++;E.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}C={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
-"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();C=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);C=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
+var CommentsWindow=function(b,c,e,k,g,n){function t(){for(var b=C.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==C&&c++;E.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(p.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,g,k,n){function B(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});G.appendChild(f);e&&(f.style.display="none")}function N(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(B,function(b){B.id=b;c.replies.push(B);p(x);g&&g()},function(c){A();m(x);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function A(){d(B,x,function(b){u()},!0)}var v=N().pdiv,B=b.newComment(e,b.getCurrentUser());B.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(B,c.replies,v,k+1);f?A():u()}if(n||!c.isResolved){E.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});G.appendChild(f);e&&(f.style.display="none")}function N(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(C,function(b){C.id=b;c.replies.push(C);p(x);g&&g()},function(c){v();m(x);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(C,x,function(b){u()},!0)}var B=N().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(C,c.replies,B,k+1);f?v():u()}if(n||!c.isResolved){E.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
var I=document.createElement("div");I.className="geCommentHeader";var S=document.createElement("img");S.className="geCommentUserImg";S.src=c.user.pictureUrl||Editor.userImage;I.appendChild(S);S=document.createElement("div");S.className="geCommentHeaderTxt";I.appendChild(S);var J=document.createElement("div");J.className="geCommentUsername";mxUtils.write(J,c.user.displayName||"");S.appendChild(J);J=document.createElement("div");J.className="geCommentDate";J.setAttribute("data-commentId",c.id);f(c,
J);S.appendChild(J);O.appendChild(I);I=document.createElement("div");I.className="geCommentTxt";mxUtils.write(I,c.content||"");O.appendChild(I);c.isLocked&&(O.style.opacity="0.5");I=document.createElement("div");I.className="geCommentActions";var G=document.createElement("ul");G.className="geCommentActionsList";I.appendChild(G);v||c.isLocked||0!=k&&!u||B(mxResources.get("reply"),function(){x("",!0)},c.isResolved);S=b.getCurrentUser();null==S||S.id!=c.user.id||v||c.isLocked||(B(mxResources.get("edit"),
function(){function e(){d(c,O,function(){l(O);c.editComment(c.content,function(){p(O)},function(c){m(O);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),B(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(O);c.deleteComment(function(b){if(!0===b){b=O.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=O.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.style.opacity="0.5"}else{d=N(c).replies;for(b=0;b<d.length;b++)A.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}E.style.display=0==A.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=k||B(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.style.opacity="0.5"}else{d=N(c).replies;for(b=0;b<d.length;b++)C.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}E.style.display=0==C.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=k||B(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=N(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);H||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(I);null!=g?A.insertBefore(O,g.nextSibling):A.appendChild(O);for(g=0;null!=c.replies&&g<c.replies.length;g++)I=c.replies[g],I.isResolved=c.isResolved,q(I,c.replies,null,k+1,n);null!=C&&(C.comment.id==c.id?(n=c.content,c.content=C.comment.content,d(c,O,C.saveCallback,C.deleteOnCancel),c.content=n):null==C.comment.id&&C.comment.pCommentId==c.id&&(A.appendChild(C.div),d(C.comment,C.div,C.saveCallback,C.deleteOnCancel)));return O}}
-var v=!b.canComment(),u=b.canReplyToReplies(),C=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",A=document.createElement("div");A.className="geCommentsList";A.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";A.style.bottom=parseInt(G)+7+"px";x.appendChild(A);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
+d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(I);null!=g?C.insertBefore(O,g.nextSibling):C.appendChild(O);for(g=0;null!=c.replies&&g<c.replies.length;g++)I=c.replies[g],I.isResolved=c.isResolved,q(I,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,O,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(C.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return O}}
+var v=!b.canComment(),u=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",C=document.createElement("div");C.className="geCommentsList";C.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";C.style.bottom=parseInt(G)+7+"px";x.appendChild(C);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(E,mxResources.get("noCommentsFound"));var J=document.createElement("div");J.className="geToolbarContainer geCommentsToolbar";J.style.height=G;J.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";J.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!v){var L=G.cloneNode();L.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';L.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(L,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});J.appendChild(L)}L=G.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
var H=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(b){this.className=(H=!H)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});J.appendChild(L);b.commentsRefreshNeeded()&&(L=G.cloneNode(),L.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',L.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(L.style.filter="invert(100%)"),mxEvent.addListener(L,"click",function(b){B();
-b.preventDefault();mxEvent.consume(b)}),J.appendChild(L));b.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),J.appendChild(G));x.appendChild(J);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=C)try{C.div=C.div.cloneNode(!0);
-var c=C.div.querySelector(".geCommentEditTxtArea"),e=C.div.querySelector(".geCommentEditBtns");C.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}A.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
-new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});A.innerHTML="";A.appendChild(E);E.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),q(K[b],K,null,0,H);null!=C&&null==C.comment.id&&null==C.comment.pCommentId&&(A.appendChild(C.div),d(C.comment,C.div,C.saveCallback,C.deleteOnCancel))},mxUtils.bind(this,function(b){A.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):A.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;J=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=A.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(J,6E4);this.refreshCommentsTime=J;this.window=
+b.preventDefault();mxEvent.consume(b)}),J.appendChild(L));b.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),J.appendChild(G));x.appendChild(J);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
+var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}C.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});C.innerHTML="";C.appendChild(E);E.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),q(K[b],K,null,0,H);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(C.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){C.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+": "+b.message:""));this.hasError=!0})):C.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;J=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=C.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(J,6E4);this.refreshCommentsTime=J;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,g,!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()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var M=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",M);this.destroy=function(){mxEvent.removeListener(window,"resize",M);this.window.destroy()}},ConfirmDialog=function(b,c,e,
k,g,n,t,d,f,l,m){var p=document.createElement("div");p.style.textAlign="center";m=null!=m?m:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=m+"px";q.style.lineHeight="1.2em";mxUtils.write(q,c);p.appendChild(q);null!=l&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),q.appendChild(c),p.appendChild(q));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
@@ -3822,31 +3822,31 @@ f=new EmbedDialog(this,this.getLinkForPage(b,c,f));this.showDialog(f.container,4
b)?e:void 0})),null!=k.relatedPage.root&&b.encodeCell(k.relatedPage.root,g));return g};b.beforeDecode=function(b,c,g){g.ui=b.ui;g.relatedPage=g.ui.getPageById(c.getAttribute("relatedPage"));if(null==g.relatedPage){var e=c.ownerDocument.createElement("diagram");e.setAttribute("id",c.getAttribute("relatedPage"));e.setAttribute("name",c.getAttribute("name"));g.relatedPage=new DiagramPage(e);e=c.getAttribute("viewState");null!=e&&(g.relatedPage.viewState=JSON.parse(e),c.removeAttribute("viewState"));
c=c.cloneNode(!0);e=c.firstChild;if(null!=e)for(g.relatedPage.root=b.decodeCell(e,!1),g=e.nextSibling,e.parentNode.removeChild(e),e=g;null!=e;){g=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var k=e.getAttribute("id");null==b.lookup(k)&&b.decodeCell(e)}e.parentNode.removeChild(e);e=g}}return c};b.afterDecode=function(b,c,g){g.index=g.previousIndex;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,n,t,d){e=null!=e?e:!1;null==n&&(n=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=n.slice(),g=0;g<n.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(n[g]),"treeFolding","0")&&this.foldTreeCell(c,n[g]);n=f;n=b.apply(this,arguments)}finally{this.model.endUpdate()}return n};Graph.prototype.foldTreeCell=
function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var g=0;g<e.length;g++)this.model.setVisible(e[g],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,f){return this.model.filterCells(this.getEdges(b,
-c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return C.isVertex(b)&&e(b)}function c(b){var c=
-!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=C.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=C.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
+c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return y.isVertex(b)&&e(b)}function c(b){var c=
+!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=u.cloneCells([f[0],b]);u.model.setTerminal(g[0],u.model.getTerminal(f[0],
!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;u.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=u.view.getState(b),n=u.view.scale;if(null!=m){var p=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?p.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*n:p.y+=(c?
-b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,A=l=f=0;A<q.length;A++){var v=u.model.getTerminal(q[A],!1);if(k==d(v)){var B=u.view.getState(v);v!=b&&null!=B&&(t&&c!=B.getCenterX()<m.getCenterX()||!t&&c!=B.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,B)&&(f=10+Math.max(f,(Math.min(p.x+p.width,B.x+B.width)-Math.max(p.x,B.x))/n),l=10+Math.max(l,(Math.min(p.y+
-p.height,B.y+B.height)-Math.max(p.y,B.y))/n))}}t?l=0:f=0;for(A=0;A<q.length;A++)if(v=u.model.getTerminal(q[A],!1),k==d(v)&&(B=u.view.getState(v),v!=b&&null!=B&&(t&&c!=B.getCenterX()<m.getCenterX()||!t&&c!=B.getCenterY()<m.getCenterY()))){var x=[];u.traverse(B.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&x.push(c);(null==c||d)&&x.push(b);return null==c||d});u.moveCells(x,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function l(b){u.model.beginUpdate();try{var c=
+b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<q.length;v++){var B=u.model.getTerminal(q[v],!1);if(k==d(B)){var C=u.view.getState(B);B!=b&&null!=C&&(t&&c!=C.getCenterX()<m.getCenterX()||!t&&c!=C.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,C)&&(f=10+Math.max(f,(Math.min(p.x+p.width,C.x+C.width)-Math.max(p.x,C.x))/n),l=10+Math.max(l,(Math.min(p.y+
+p.height,C.y+C.height)-Math.max(p.y,C.y))/n))}}t?l=0:f=0;for(v=0;v<q.length;v++)if(B=u.model.getTerminal(q[v],!1),k==d(B)&&(C=u.view.getState(B),B!=b&&null!=C&&(t&&c!=C.getCenterX()<m.getCenterX()||!t&&c!=C.getCenterY()<m.getCenterY()))){var x=[];u.traverse(C.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&x.push(c);(null==c||d)&&x.push(b);return null==c||d});u.moveCells(x,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function l(b){u.model.beginUpdate();try{var c=
d(b),e=u.getIncomingTreeEdges(b),f=u.cloneCells([e[0],b]);u.model.setTerminal(e[0],f[1],!1);u.model.setTerminal(f[0],f[1],!0);u.model.setTerminal(f[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(f,g)}finally{u.model.endUpdate()}}function m(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(V){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),A=u.view.translate,B=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
-(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-A.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-A.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
-(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/B-A.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function p(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
+if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(V){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,B=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
+(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/B-v.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function p(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
d.y-d.height})}return e}function q(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?v.actions.get("selectParent").funct():e==c?(f=u.getOutgoingTreeEdges(b),null!=f&&0<f.length&&u.setSelectionCell(u.model.getTerminal(f[0],!1))):(e=u.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=p(u.model.getTerminal(e[0],!0),f,b),e=u.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
-c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,C=u.getModel(),x=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
+c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,y=u.getModel(),x=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
0<u.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<u.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};v.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&
1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=u.getOutgoingTreeEdges(u.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+S");v.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);null!=b&&0<b.length&&u.setSelectionCell(u.model.getTerminal(b[0],
!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(b,c){var d=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))u.setSelectionCells(u.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];u.traverse(d,!0,function(b,d){var f=null!=d&&u.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}u.setSelectionCells(e)}},null,null,"Alt+Shift+D");
-var G=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];C.isEdge(k)&&e(k)&&(f.push(k),k=C.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
-f;return G.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var A=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=A.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
+var G=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
+f;return G.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var C=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=C.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var E=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
-!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var A=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=A){var B=u.view.getState(n);null!=B&&(d=(B.getCenterX()-A.getCenterX())/u.view.scale,e=(B.getCenterY()-A.getCenterY())/u.view.scale)}}}}m=E.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
+!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var B=u.view.getState(n);null!=B&&(d=(B.getCenterX()-v.getCenterX())/u.view.scale,e=(B.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=E.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==u.model.getParent(c[q]))p=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var J=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=J.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var L={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},H=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(u.getSelectionCell()):m(u.getSelectionCell()):13==c.which&&(d=f(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=L[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(q(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(F){v.handleError(F)}mxEvent.isConsumed(c)||H.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(c,e,g,k,n,p,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var A=d(c),B=A==mxConstants.DIRECTION_EAST||A==mxConstants.DIRECTION_WEST,v=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return A==e||0==t.length?m(c,e):B==v?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(d){var e=
+mxEvent.consume(c))}}catch(F){v.handleError(F)}mxEvent.isConsumed(c)||H.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(c,e,g,k,n,p,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),B=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==t.length?m(c,e):B==C?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(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(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};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 Q=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){Q.apply(this,
@@ -3901,31 +3901,31 @@ b.appendChild(c)}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("t
"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c));"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geMenuItem",c.style.marginLeft="6px",c.style.padding="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c));this.buttonContainer.appendChild(b);this.buttonContainer.style.top=
"6px"}};var p=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(b,c){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,b)){var d=mxUtils.getOffset(this.editorUi.picker);d.x+=this.editorUi.picker.offsetWidth+4;d.y+=b.offsetTop-c.height/2+16;return d}var e=p.apply(this,arguments),d=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);e.x+=d.x-16;e.y+=d.y;return e};var q=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=
function(b,c,d){var e=this.editorUi.editor.graph;b.smartSeparators=!0;q.apply(this,arguments);"1"==urlParams.sketch?e.isEnabled()&&(b.addSeparator(),1==e.getSelectionCount()&&this.addMenuItems(b,["-","lockUnlock"],null,d)):1==e.getSelectionCount()?(e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(b,e.isCellCollapsed(c)?["expand"]:["collapse"],null,d),this.addMenuItems(b,["collapsible","-","lockUnlock","enterGroup"],null,d),b.addSeparator(),this.addSubmenu("layout",b)):e.isSelectionEmpty()&&
-e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(b.addSeparator(),"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"]),(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"]),this.addMenuItems(b,["-","fullscreen"]))};
-var v=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){v.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=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);u.apply(this,arguments)};var C=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){C.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"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 x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";
-d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));
-f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});d.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text",
-"formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,
-mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],
-c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();"1"!=urlParams.sketch&&(d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),b.addSeparator(c));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),
-c):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&d.menus.addMenuItems(b,["-","save"],c),("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&d.menus.addMenuItems(b,["saveAndExit"],c),b.addSeparator(c)):(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,["-","findReplace","layers","tags"],c);"1"!=urlParams.sketch&&null!=
-e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));d.menus.addMenuItems(b,["-","pageSetup","pageScale"],c);mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);"1"==urlParams.sketch&&(b.addSeparator(c),d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),e=d.getCurrentFile(),null!=e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||
-/(\.svg)$/i.test(e)||this.addMenuItems(b,["properties"],c)),b.addSeparator(c));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?d.menus.addMenuItems(b,["-","exit"],c):d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&
-"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,
-c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);b.addSeparator(c);d.menus.addSubmenu("embed",b,c)})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,
-function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);b.addSeparator(c);d.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand".split(" "),c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],c);b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?
-(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,
-!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,
-mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var G=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=n.menus.get(b),f=u.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),t);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top=
-"6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));n.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
-"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin=
-"0px");null!=n.statusContainer?q.insertBefore(k,n.statusContainer):q.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
+e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(this.addMenuItems(b,["-","fullscreen"]),(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"]))};var v=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=
+function(b,c,d){v.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=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);u.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;
+EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"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 x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;
+d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});d.actions.put("importCsv",new Action(mxResources.get("csv")+
+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text","formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==
+urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",
+new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=
+function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();"1"!=urlParams.sketch&&(d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),b.addSeparator(c));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&d.menus.addMenuItems(b,["-","save"],c),("1"==
+urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&d.menus.addMenuItems(b,["saveAndExit"],c),b.addSeparator(c)):(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),
+d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,["-","findReplace","layers","tags"],c);"1"!=urlParams.sketch&&null!=e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||
+/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));d.menus.addMenuItems(b,["-","pageSetup","pageScale"],c);mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);"1"==urlParams.sketch&&(b.addSeparator(c),d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),e=d.getCurrentFile(),null!=e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["properties"],c)),b.addSeparator(c));
+b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?d.menus.addMenuItems(b,["-","exit"],c):d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,
+["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,
+["publishLink"],c);b.addSeparator(c);d.menus.addSubmenu("embed",b,c)})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,
+c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);b.addSeparator(c);d.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand".split(" "),c);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.menus.addMenuItems(b,
+["-","showStartScreen","search","scratchpad"],c);b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,
+["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",
+new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,
+function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var G=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=n.menus.get(b),f=u.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),t);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight=
+"6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));n.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",
+f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=
+n.statusContainer?q.insertBefore(k,n.statusContainer):q.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),p.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";
d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=n.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(d,n.statusContainer):q.appendChild(d);return d}function k(){for(var b=q.firstChild;null!=b;){var c=
b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}t=q.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));"1"==urlParams.sketch?ba.style.left=58>I.offsetTop-I.offsetHeight/2?"70px":"10px":(c=b?d("diagram",null,Editor.drawLogoImage):null,null!=c&&(k=c),g([k,f(mxResources.get("shapes"),n.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),
@@ -3938,7 +3938,7 @@ var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMi
this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var n=this,p=n.editor.graph;n.toolbar=this.createToolbar(n.createDiv("geToolbar"));n.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(n,q);n.statusContainer=n.createStatusContainer();n.statusContainer.style.position="relative";n.statusContainer.style.maxWidth="";n.statusContainer.style.marginTop=
"7px";n.statusContainer.style.marginLeft="6px";n.statusContainer.style.color="gray";n.statusContainer.style.cursor="default";var v=n.hideCurrentMenu;n.hideCurrentMenu=function(){v.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var x=n.descriptorChanged;n.descriptorChanged=function(){x.apply(this,arguments);var b=n.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");
c=mxResources.get(c);q.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else q.removeAttribute("title")};n.setStatusText(n.editor.getStatus());q.appendChild(n.statusContainer);n.buttonContainer=document.createElement("div");n.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";q.appendChild(n.buttonContainer);n.menubarContainer=n.buttonContainer;n.tabContainer=document.createElement("div");n.tabContainer.className=
-"geTabContainer";n.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=n.diagramContainer.parentNode,C=document.createElement("div");C.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";n.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=n.menus.get("viewZoom"),D="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,Y="1"==urlParams.sketch?
+"geTabContainer";n.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=n.diagramContainer.parentNode,y=document.createElement("div");y.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";n.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var A=n.menus.get("viewZoom"),D="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,Y="1"==urlParams.sketch?
document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,ba="1"==urlParams.sketch?document.createElement("div"):null,ca=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));p.refresh();p.view.validateBackground()});n.addListener("darkModeChanged",
ca);n.addListener("sketchModeChanged",ca);Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!p.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=n.hoverIcons){var da=n.hoverIcons.update;n.hoverIcons.update=function(){p.freehand.isDrawing()||da.apply(this,arguments)}}if(null!=p.freehand){var ka=p.freehand.createStyle;p.freehand.createStyle=
function(b){return ka.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){I.className="geToolbarContainer";Y.className="geToolbarContainer";ba.className="geToolbarContainer";q.className="geToolbarContainer";n.picker=I;var ma=!1;mxEvent.addListener(q,"mouseenter",function(){n.statusContainer.style.display="inline-block"});mxEvent.addListener(q,"mouseleave",function(){ma||(n.statusContainer.style.display="none")});var ga=mxUtils.bind(this,function(b){null!=n.notificationBtn&&(null!=b?n.notificationBtn.setAttribute("title",
@@ -3953,18 +3953,18 @@ n.statusContainer.style.textOverflow="ellipsis";n.buttonContainer.style.position
d.geometry.width=p.defaultEdgeLength+20;d.geometry.setTerminalPoint(new mxPoint(0,20),!0);d.geometry.setTerminalPoint(new mxPoint(d.geometry.width,20),!1);b=c(n.sidebar.createEdgeTemplateFromCells([d],d.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(n.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);
var e=n.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",D);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(n.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}I.appendChild(V)});mxEvent.addListener(V,"click",mxUtils.bind(this,function(){na?(mxUtils.setPrefixedStyle(I.style,"transform","translate(0, -50%)"),I.style.padding=
"8px 6px 4px",I.style.top="50%",I.style.bottom="",I.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),na=!1,U()):(I.innerHTML="",I.appendChild(V),mxUtils.setPrefixedStyle(I.style,"transform","translate(0, 0)"),I.style.top="",I.style.bottom="12px",I.style.padding="0px",I.style.height="24px",V.style.height="24px",V.style.backgroundImage="url("+Editor.plusImage+")",V.setAttribute("title",
-mxResources.get("insert")),V.style.width="24px",na=!0)}));U();n.addListener("darkModeChanged",U);n.addListener("sketchModeChanged",U)}else n.editor.addListener("statusChanged",mxUtils.bind(this,function(){n.setStatusText(n.editor.getStatus())}));if(null!=y){var ca=function(b){p.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?n.actions.get("customZoom").funct():n.actions.get("smartFit").funct()},R=n.actions.get("zoomIn"),ra=n.actions.get("zoomOut"),Z=n.actions.get("resetView"),fa=n.actions.get("fullscreen");
-n.actions.get("toggleDarkMode");var ha=n.actions.get("undo"),qa=n.actions.get("redo"),T=f("",ha.funct,null,mxResources.get("undo")+" ("+ha.shortcut+")",ha,Editor.undoImage),pa=f("",qa.funct,null,mxResources.get("redo")+" ("+qa.shortcut+")",qa,Editor.redoImage);if(null!=Y){var aa=n.actions.get("delete"),ja=f("",aa.funct,null,mxResources.get("delete"),aa,Editor.trashImage);ja.style.opacity="0.1";ba.appendChild(ja);aa.addListener("stateChanged",function(){ja.style.opacity=aa.enabled?"":"0.1"});y=function(){T.style.display=
-0<n.editor.undoManager.history.length||p.isEditing()?"inline-block":"none";pa.style.display=T.style.display;T.style.opacity=ha.enabled?"":"0.1";pa.style.opacity=qa.enabled?"":"0.1"};ba.appendChild(T);ba.appendChild(pa);ha.addListener("stateChanged",y);qa.addListener("stateChanged",y);y();null!=urlParams.layers&&(y=n.actions.get("layers"),y=f("",y.funct,null,mxResources.get("layers"),y,Editor.layersImage),y.style.opacity="0.4",Y.appendChild(y));null!=urlParams.tags&&(y=n.actions.get("tags"),y=f("",
-y.funct,null,mxResources.get("tags"),y,Editor.tagsImage),y.style.opacity="0.4",Y.appendChild(y));y=n.actions.get("outline");y=f("",y.funct,null,mxResources.get("outline"),y,Editor.outlineImage);Y.appendChild(y);y=f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",ra,Editor.zoomOutImage);Y.appendChild(y);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display=
+mxResources.get("insert")),V.style.width="24px",na=!0)}));U();n.addListener("darkModeChanged",U);n.addListener("sketchModeChanged",U)}else n.editor.addListener("statusChanged",mxUtils.bind(this,function(){n.setStatusText(n.editor.getStatus())}));if(null!=A){var ca=function(b){p.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?n.actions.get("customZoom").funct():n.actions.get("smartFit").funct()},R=n.actions.get("zoomIn"),ra=n.actions.get("zoomOut"),Z=n.actions.get("resetView"),fa=n.actions.get("fullscreen");
+n.actions.get("toggleDarkMode");var ha=n.actions.get("undo"),qa=n.actions.get("redo"),T=f("",ha.funct,null,mxResources.get("undo")+" ("+ha.shortcut+")",ha,Editor.undoImage),pa=f("",qa.funct,null,mxResources.get("redo")+" ("+qa.shortcut+")",qa,Editor.redoImage);if(null!=Y){var aa=n.actions.get("delete"),ja=f("",aa.funct,null,mxResources.get("delete"),aa,Editor.trashImage);ja.style.opacity="0.1";ba.appendChild(ja);aa.addListener("stateChanged",function(){ja.style.opacity=aa.enabled?"":"0.1"});A=function(){T.style.display=
+0<n.editor.undoManager.history.length||p.isEditing()?"inline-block":"none";pa.style.display=T.style.display;T.style.opacity=ha.enabled?"":"0.1";pa.style.opacity=qa.enabled?"":"0.1"};ba.appendChild(T);ba.appendChild(pa);ha.addListener("stateChanged",A);qa.addListener("stateChanged",A);A();null!=urlParams.layers&&(A=n.actions.get("layers"),A=f("",A.funct,null,mxResources.get("layers"),A,Editor.layersImage),A.style.opacity="0.4",Y.appendChild(A));null!=urlParams.tags&&(A=n.actions.get("tags"),A=f("",
+A.funct,null,mxResources.get("tags"),A,Editor.tagsImage),A.style.opacity="0.4",Y.appendChild(A));A=n.actions.get("outline");A=f("",A.funct,null,mxResources.get("outline"),A,Editor.outlineImage);Y.appendChild(A);A=f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",ra,Editor.zoomOutImage);Y.appendChild(A);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display=
"inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";Y.appendChild(P);mxEvent.addListener(P,"click",ca);ca=f("",R.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",R,Editor.zoomInImage);Y.appendChild(ca);var W=this.createPageMenuTab(!1);W.style.display="none";
W.style.position="";W.style.marginLeft="";W.style.top="";W.style.left="";W.style.height="100%";W.style.lineHeight="";W.style.borderStyle="none";W.style.padding="3px 0";W.style.margin="0px";W.style.background="";W.style.border="";W.style.boxShadow="none";W.style.verticalAlign="top";W.firstChild.style.height="100%";W.firstChild.style.opacity="0.6";W.firstChild.style.margin="0px";Y.appendChild(W);n.addListener("fileDescriptorChanged",function(){W.style.display="1"==urlParams.pages||null!=n.pages&&1<
n.pages.length?"inline-block":"none"});n.tabContainer.style.visibility="hidden";q.style.cssText="position:absolute;right:12px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";ba.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";
-Y.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";C.appendChild(ba);C.appendChild(Y);I.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";C.appendChild(I);window.setTimeout(function(){mxUtils.setPrefixedStyle(I.style,
-"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(C)}else{f("",fa.funct,null,mxResources.get("fullscreen"),fa,Editor.fullscreenImage);var ta=f("",ca,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,Editor.zoomFitImage);q.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=u.addMenu("100%",y.funct);P.setAttribute("title",mxResources.get("zoom")+
+Y.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";y.appendChild(ba);y.appendChild(Y);I.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";y.appendChild(I);window.setTimeout(function(){mxUtils.setPrefixedStyle(I.style,
+"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(y)}else{f("",fa.funct,null,mxResources.get("fullscreen"),fa,Editor.fullscreenImage);var ta=f("",ca,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,Editor.zoomFitImage);q.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=u.addMenu("100%",A.funct);P.setAttribute("title",mxResources.get("zoom")+
" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(n.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(n.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
-"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";C.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*n.editor.graph.view.scale)+"%"});n.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);n.editor.addListener("resetGraphView",c);n.editor.addListener("pageSelected",c)})(P);var sa=n.setGraphEnabled;n.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
-this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==Y?this.tabContainerHeight+"px":"0px")}}C.appendChild(q);C.appendChild(n.diagramContainer);l.appendChild(C);n.updateTabContainer();null==Y&&C.appendChild(n.tabContainer);var la=null;k();mxEvent.addListener(window,"resize",function(){k();null!=n.sidebarWindow&&n.sidebarWindow.window.fit();null!=n.formatWindow&&n.formatWindow.window.fit();null!=n.actions.outlineWindow&&n.actions.outlineWindow.window.fit();
+"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";y.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*n.editor.graph.view.scale)+"%"});n.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);n.editor.addListener("resetGraphView",c);n.editor.addListener("pageSelected",c)})(P);var sa=n.setGraphEnabled;n.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
+this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==Y?this.tabContainerHeight+"px":"0px")}}y.appendChild(q);y.appendChild(n.diagramContainer);l.appendChild(y);n.updateTabContainer();null==Y&&y.appendChild(n.tabContainer);var la=null;k();mxEvent.addListener(window,"resize",function(){k();null!=n.sidebarWindow&&n.sidebarWindow.window.fit();null!=n.formatWindow&&n.formatWindow.window.fit();null!=n.actions.outlineWindow&&n.actions.outlineWindow.window.fit();
null!=n.actions.layersWindow&&n.actions.layersWindow.window.fit();null!=n.menus.tagsWindow&&n.menus.tagsWindow.window.fit();null!=n.menus.findWindow&&n.menus.findWindow.window.fit();null!=n.menus.findReplaceWindow&&n.menus.findReplaceWindow.window.fit()})}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\n');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="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><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="#000000"/><add as="fontColor" value="#000000"/></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="#ffffff"/><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="#ffffff"/><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="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><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="#ffffff"/></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=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="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><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="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></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="#2a2a2a"/><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="#2a2a2a"/><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="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><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="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
@@ -4005,9 +4005,9 @@ function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cur
e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var k=null,g=null,n=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);k=window.setTimeout(mxUtils.bind(this,
function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";g=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),n())}));mxEvent.addListener(e,mxClient.IS_POINTER?
"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,f=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():t(30))}})}for(var l=this.toolbarItems,m=0,p=null,q=null,v=null,u=null,C=0;C<l.length;C++){var x=l[C];if("pages"==x){u=c.ownerDocument.createElement("div");
-u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var G=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");G.style.borderRightStyle="none";G.style.paddingLeft="0px";G.style.paddingRight="0px";e.appendChild(u);var A=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
-1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");A.style.paddingLeft="0px";A.style.paddingRight="0px";x=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";G.style.display=u.style.display;A.style.display=u.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
+this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():t(30))}})}for(var l=this.toolbarItems,m=0,p=null,q=null,v=null,u=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){u=c.ownerDocument.createElement("div");
+u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var G=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");G.style.borderRightStyle="none";G.style.paddingLeft="0px";G.style.paddingRight="0px";e.appendChild(u);var C=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");C.style.paddingLeft="0px";C.style.paddingRight="0px";x=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";G.style.display=u.style.display;C.style.display=u.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var E=this.graph.getModel(),J=b(mxUtils.bind(this,function(b){if(null!=p)p.parentNode.removeChild(p),
p=null;else{p=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});b=J.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor="#eee";p.style.fontFamily=Editor.defaultHtmlFont;p.style.fontSize=
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 69d126cc..a0f1a404 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -200,7 +200,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"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");/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent)&&(urlParams.gapi="0");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};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:"15.3.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/"),
+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:"15.3.4",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),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]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2055,11 +2055,11 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,v=k,u=f?0:64,C=mxUtils.getDocumentSize();null!=window.innerHeight&&(C.height=window.innerHeight);var x=C.height,G=Math.max(1,Math.round((C.width-e-u)/2)),A=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;k=Math.min(k,x-u);0<b.dialogs.length&&(this.zIndex+=2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",
-this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));C=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=C.x+"px";this.bg.style.top=C.y+"px";G+=C.x;A+=C.y;g&&document.body.appendChild(this.bg);var E=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(G,A,e,k);G=g.x;A=g.y;E.style.width=e+"px";E.style.height=k+"px";E.style.left=G+"px";E.style.top=A+"px";E.style.zIndex=
-this.zIndex;E.appendChild(c);document.body.appendChild(E);!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=A+14+"px",n.style.left=G+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=
-n,!m)){var J=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){J=!0}),null,mxUtils.bind(this,function(d){J&&(b.hideDialog(!0),J=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();null!=f&&(q=e=f.w,v=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";G=Math.max(1,Math.round((f.width-e-u)/2));A=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-u):q;k=Math.min(v,x-u);f=this.getPosition(G,
-A,e,k);G=f.x;A=f.y;E.style.left=G+"px";E.style.top=A+"px";E.style.width=e+"px";E.style.height=k+"px";!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=A+14+"px",this.dialogImg.style.left=G+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=E;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+function Dialog(b,c,e,k,g,n,t,d,f,l,m){var p=f?57:0,q=e,v=k,u=f?0:64,y=mxUtils.getDocumentSize();null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,G=Math.max(1,Math.round((y.width-e-u)/2)),C=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;k=Math.min(k,x-u);0<b.dialogs.length&&(this.zIndex+=2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",
+this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";G+=y.x;C+=y.y;g&&document.body.appendChild(this.bg);var E=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(G,C,e,k);G=g.x;C=g.y;E.style.width=e+"px";E.style.height=k+"px";E.style.left=G+"px";E.style.top=C+"px";E.style.zIndex=
+this.zIndex;E.appendChild(c);document.body.appendChild(E);!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=C+14+"px",n.style.left=G+e+38-p+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=
+n,!m)){var J=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){J=!0}),null,mxUtils.bind(this,function(d){J&&(b.hideDialog(!0),J=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();null!=f&&(q=e=f.w,v=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";G=Math.max(1,Math.round((f.width-e-u)/2));C=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(q,document.body.scrollWidth-u):q;k=Math.min(v,x-u);f=this.getPosition(G,
+C,e,k);G=f.x;C=f.y;E.style.left=G+"px";E.style.top=C+"px";E.style.width=e+"px";E.style.height=k+"px";!d&&c.clientHeight>E.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=C+14+"px",this.dialogImg.style.left=G+e+38-p+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=E;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":
IMAGE_PATH+"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2081,27 +2081,27 @@ var PageSetupDialog=function(b){function c(){null==m||m==mxConstants.NONE?(l.sty
mxUtils.write(n,mxResources.get("background")+":");g.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="22px";l.style.height="22px";l.style.cursor="pointer";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(l.style.position="relative",l.style.top="-6px");var m=k.background;c();mxEvent.addListener(l,
"click",function(d){b.pickColor(m||"none",function(b){m=b;c()});mxEvent.consume(d)});n.appendChild(l);mxUtils.write(n,mxResources.get("gridSize")+":");var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=k.getGridSize();n.appendChild(p);mxEvent.addListener(p,"change",function(){var b=parseInt(p.value);p.value=Math.max(1,isNaN(b)?k.getGridSize():b)});g.appendChild(n);d.appendChild(g);g=document.createElement("tr");
n=document.createElement("td");mxUtils.write(n,mxResources.get("image")+":");g.appendChild(n);n=document.createElement("td");var q=document.createElement("button");q.className="geBtn";q.style.margin="0px";mxUtils.write(q,mxResources.get("change")+"...");var v=document.createElement("img");v.setAttribute("valign","middle");v.style.verticalAlign="middle";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.maxWidth="100px";v.style.cursor="pointer";v.style.height=
-"60px";v.style.padding="4px";var u=k.backgroundImage,C=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(q,"click",C);mxEvent.addListener(v,"click",C);e();n.appendChild(v);n.appendChild(q);g.appendChild(n);d.appendChild(g);g=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});q.className="geBtn";
-b.editor.cancelFirst&&n.appendChild(q);C=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(p.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,u,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=u?u.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});C.className="geBtn gePrimaryBtn";
-n.appendChild(C);b.editor.cancelFirst||n.appendChild(q);g.appendChild(n);d.appendChild(g);t.appendChild(d);this.container=t};
-PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||p!=document.activeElement&&q!=document.activeElement){b=!1;for(c=0;c<u.length;c++)l=u[c],A?"custom"==l.key&&(d.value=l.key,A=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
+"60px";v.style.padding="4px";var u=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(q,"click",y);mxEvent.addListener(v,"click",y);e();n.appendChild(v);n.appendChild(q);g.appendChild(n);d.appendChild(g);g=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});q.className="geBtn";
+b.editor.cancelFirst&&n.appendChild(q);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(p.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,u,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=u?u.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
+n.appendChild(y);b.editor.cancelFirst||n.appendChild(q);g.appendChild(n);d.appendChild(g);t.appendChild(d);this.container=t};
+PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||p!=document.activeElement&&q!=document.activeElement){b=!1;for(c=0;c<u.length;c++)l=u[c],C?"custom"==l.key&&(d.value=l.key,C=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
e.height==l.format.height?(d.value=l.key,n.setAttribute("checked","checked"),n.defaultChecked=!0,n.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==l.format.height&&e.height==l.format.width&&(d.value=l.key,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(f.style.display="",m.style.display="none"):(p.value=e.width/100,q.value=e.height/100,n.setAttribute("checked","checked"),
d.value="custom",f.style.display="none",m.style.display="")}}c="format-"+c;var n=document.createElement("input");n.setAttribute("name",c);n.setAttribute("type","radio");n.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.width="202px";var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";
f.style.height="24px";n.style.marginRight="6px";f.appendChild(n);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
-p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),C=0;C<u.length;C++){var x=u[C];v[x.key]=x;var G=document.createElement("option");G.setAttribute("value",x.key);mxUtils.write(G,x.title);d.appendChild(G)}var A=!1;g();b.appendChild(d);mxUtils.br(b);
+p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),y=0;y<u.length;y++){var x=u[y];v[x.key]=x;var G=document.createElement("option");G.setAttribute("value",x.key);mxUtils.write(G,x.title);d.appendChild(G)}var C=!1;g();b.appendChild(d);mxUtils.br(b);
b.appendChild(f);b.appendChild(m);var E=e,J=function(b,c){var l=v[d.value];null!=l.format?(p.value=l.format.width/100,q.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(p.value);if(isNaN(l)||0>=l)p.value=e.width/100;l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(q.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,
-l.height,l.width));c&&A||l.width==E.width&&l.height==E.height||(E=l,null!=k&&k(E))};mxEvent.addListener(c,"click",function(b){n.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",J);mxEvent.addListener(p,"click",J);mxEvent.addListener(q,"blur",J);mxEvent.addListener(q,"click",J);mxEvent.addListener(t,"change",J);mxEvent.addListener(n,"change",J);mxEvent.addListener(d,"change",function(b){A="custom"==d.value;
+l.height,l.width));c&&C||l.width==E.width&&l.height==E.height||(E=l,null!=k&&k(E))};mxEvent.addListener(c,"click",function(b){n.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;J(b);mxEvent.consume(b)});mxEvent.addListener(p,"blur",J);mxEvent.addListener(p,"click",J);mxEvent.addListener(q,"blur",J);mxEvent.addListener(q,"click",J);mxEvent.addListener(t,"change",J);mxEvent.addListener(n,"change",J);mxEvent.addListener(d,"change",function(b){C="custom"==d.value;
J(b,!0)});J();return{set:function(b){e=b;g(null,null,!0)},get:function(){return E},widthInput:p,heightInput:q}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(b,c,e,k,g,n,t,d,f,l,m,p){f=null!=f?f:!0;var q,v,u=document.createElement("table"),C=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";q=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(g||mxResources.get("filename"))+":");q.appendChild(v);var x=document.createElement("input");
+var FilenameDialog=function(b,c,e,k,g,n,t,d,f,l,m,p){f=null!=f?f:!0;var q,v,u=document.createElement("table"),y=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";q=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(g||mxResources.get("filename"))+":");q.appendChild(v);var x=document.createElement("input");
x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=p?p+"px":"180px";var G=mxUtils.button(e,function(){if(null==n||n(x.value))f&&b.hideDialog(),k(x.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=x,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(x.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),G.click());b.stopPropagation();
-b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(x);q.appendChild(v);if(null!=g||null==t)C.appendChild(q),null!=m&&(v.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(q=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),q.appendChild(v),
-v=document.createElement("td"),v.style.whiteSpace="nowrap",q.appendChild(v),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),x.style.width=null!=p?p-40+"px":"190px",q.appendChild(v),C.appendChild(q)));null!=t&&(q=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),q.appendChild(v),C.appendChild(q));q=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
-null!=m?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&v.appendChild(m);null!=d&&(p=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),p.className="geBtn",v.appendChild(p));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(m);q.appendChild(v);C.appendChild(q);
-u.appendChild(C);this.container=u};FilenameDialog.filenameHelpLink=null;
+b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(x);q.appendChild(v);if(null!=g||null==t)y.appendChild(q),null!=m&&(v.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(q=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),q.appendChild(v),
+v=document.createElement("td"),v.style.whiteSpace="nowrap",q.appendChild(v),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),x.style.width=null!=p?p-40+"px":"190px",q.appendChild(v),y.appendChild(q)));null!=t&&(q=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),q.appendChild(v),y.appendChild(q));q=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
+null!=m?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&v.appendChild(m);null!=d&&(p=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),p.className="geBtn",v.appendChild(p));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(m);q.appendChild(v);y.appendChild(q);
+u.appendChild(y);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(b,c,e){var k=document.createElement("img");k.style.backgroundPosition="center bottom";k.style.backgroundRepeat="no-repeat";k.style.margin="2px 0 0 4px";k.style.verticalAlign="top";k.style.cursor="pointer";k.style.height="16px";k.style.width="16px";mxUtils.setOpacity(k,70);var g=function(){k.setAttribute("src",Editor.helpImage);k.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
e[b].ext.length-1)=="."+e[b].ext){k.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",g);mxEvent.addListener(c,"change",g);mxEvent.addListener(k,"click",function(c){var e=k.getAttribute("title");k.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
g();return k};
@@ -2115,8 +2115,8 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(b.container.className="geDiagramContainer",f.style.backgroundPosition=e,f.style.backgroundColor=d,f.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var f=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var g=e*d;c.push("M 0 "+g+" L "+f+" "+g+" M "+g+" 0 L "+g+
" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+b+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,d){b.apply(this,arguments);
if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+c,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+d,e))+"px";f.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(b,d,f){var c=this.view.scale,e=this.view.translate,g=this.pageFormat,k=c*this.pageScale,n=this.view.getBackgroundPageBounds();
-d=n.width;f=n.height;var u=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(f/u.height)-1:0,x=b?Math.ceil(d/u.width)-1:0,G=n.x+d,A=n.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
-Math.round(n.y+(f+1)*u.height)),new mxPoint(Math.round(G),Math.round(n.y+(f+1)*u.height))]:[new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(n.y)),new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(A))];null!=b[f]?(b[f].points=c,b[f].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
+d=n.width;f=n.height;var u=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(f/u.height)-1:0,x=b?Math.ceil(d/u.width)-1:0,G=n.x+d,C=n.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
+Math.round(n.y+(f+1)*u.height)),new mxPoint(Math.round(G),Math.round(n.y+(f+1)*u.height))]:[new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(n.y)),new mxPoint(Math.round(n.x+(f+1)*u.width),Math.round(C))];null!=b[f]?(b[f].points=c,b[f].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,f){for(var e=0;e<d.length;e++){if(this.graph.isTableCell(d[e])||this.graph.isTableRow(d[e]))return!1;if(this.graph.getModel().isVertex(d[e])){var g=this.graph.getCellGeometry(d[e]);if(null!=g&&g.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,f){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,f=0<b.height?b.y/this.scale-this.translate.y:0,c=this.graph.pageFormat,
e=this.graph.pageScale,g=c.width*e,c=c.height*e,e=Math.floor(Math.min(0,d)/g),k=Math.floor(Math.min(0,f)/c);return new mxRectangle(this.scale*(this.translate.x+e*g),this.scale*(this.translate.y+k*c),this.scale*(Math.ceil(Math.max(1,d+b.width/this.scale)/g)-e)*g,this.scale*(Math.ceil(Math.max(1,f+b.height/this.scale)/c)-k)*c)};var k=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){k.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
@@ -2128,16 +2128,16 @@ function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxE
this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var m=g[l],p=m.indexOf("=");if(0<=p){e=m.substring(0,p);var q=m.substring(p+1);null!=c[e]&&"none"==q&&(b.push(q),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged",
"keys",f,"values",b,"cells",[d.cell]))}}catch(ca){this.handleError(ca)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var d=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<d.length;c++)0>mxUtils.indexOf(n,d[c])&&n.push(d[c]);var f="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<l.length;c++)for(e=0;e<l[c].length;e++)n.push(l[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&n.push(t[c]);var m=function(b,d,f,c,e,g,m){c=null!=c?c:k.currentVertexStyle;e=null!=e?e:k.currentEdgeStyle;f=null!=f?f:k.getModel();
-if(m){m=[];for(var F=0;F<b.length;F++)m=m.concat(f.getDescendants(b[F]));b=m}f.beginUpdate();try{for(F=0;F<b.length;F++){var p=b[F],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var y=f.getStyle(p),u=null!=y?y.split(";"):[];q=n.slice();for(var v=0;v<u.length;v++){var D=u[v],x=D.indexOf("=");if(0<=x){var C=D.substring(0,x),N=mxUtils.indexOf(q,C);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var A=l[m];if(0<=mxUtils.indexOf(A,C))for(var B=0;B<A.length;B++){var E=mxUtils.indexOf(q,A[B]);0<=E&&q.splice(E,
-1)}}}}}var J=f.isEdge(p);m=J?e:c;for(var G=f.getStyle(p),v=0;v<q.length;v++){var C=q[v],O=m[C];null!=O&&("shape"!=C||J)&&(!J||g||0>mxUtils.indexOf(t,C))&&(G=mxUtils.setStyle(G,C,O))}Editor.simpleLabels&&(G=mxUtils.setStyle(mxUtils.setStyle(G,"html",null),"whiteSpace",null));f.setStyle(p,G)}}finally{f.endUpdate()}};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"))});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();
+if(m){m=[];for(var F=0;F<b.length;F++)m=m.concat(f.getDescendants(b[F]));b=m}f.beginUpdate();try{for(F=0;F<b.length;F++){var p=b[F],q;if(d)q=["fontSize","fontFamily","fontColor"];else{var A=f.getStyle(p),u=null!=A?A.split(";"):[];q=n.slice();for(var v=0;v<u.length;v++){var D=u[v],x=D.indexOf("=");if(0<=x){var y=D.substring(0,x),N=mxUtils.indexOf(q,y);0<=N&&q.splice(N,1);for(m=0;m<l.length;m++){var C=l[m];if(0<=mxUtils.indexOf(C,y))for(var B=0;B<C.length;B++){var E=mxUtils.indexOf(q,C[B]);0<=E&&q.splice(E,
+1)}}}}}var J=f.isEdge(p);m=J?e:c;for(var G=f.getStyle(p),v=0;v<q.length;v++){var y=q[v],O=m[y];null!=O&&("shape"!=y||J)&&(!J||g||0>mxUtils.indexOf(t,y))&&(G=mxUtils.setStyle(G,y,O))}Editor.simpleLabels&&(G=mxUtils.setStyle(mxUtils.setStyle(G,"html",null),"whiteSpace",null));f.setStyle(p,G)}}finally{f.endUpdate()}};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"))});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();
this.createUi();this.refresh();var p=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=p,this.menubarContainer.onmousedown=p,this.toolbarContainer.onselectstart=p,this.toolbarContainer.onmousedown=p,this.diagramContainer.onselectstart=p,this.diagramContainer.onmousedown=p,this.sidebarContainer.onselectstart=p,this.sidebarContainer.onmousedown=p,this.formatContainer.onselectstart=
p,this.formatContainer.onmousedown=p,this.footerContainer.onselectstart=p,this.footerContainer.onmousedown=p,null!=this.tabContainer&&(this.tabContainer.onselectstart=p));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return p(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",
c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var q=k.graphHandler.start;k.graphHandler.start=function(){null!=K.hoverIcons&&K.hoverIcons.reset();q.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=
mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=!1,u=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return v||u.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||
-27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var C=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return C.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&
+27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var y=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return y.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&
(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var x=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return x.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var G=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||
-G.apply(this,arguments)};var A=!1,E=null,J=null,L=null,H=mxUtils.bind(this,function(){if(null!=this.toolbar&&A!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==L)this.toolbar.createTextToolbar();else{for(var c=0;c<L.length;c++)this.toolbar.container.appendChild(L[c]);this.toolbar.fontMenu=
-E;this.toolbar.sizeMenu=J}A=k.cellEditor.isContentEditing();E=b;J=f;L=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);H();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,
+G.apply(this,arguments)};var C=!1,E=null,J=null,L=null,H=mxUtils.bind(this,function(){if(null!=this.toolbar&&C!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==L)this.toolbar.createTextToolbar();else{for(var c=0;c<L.length;c++)this.toolbar.container.appendChild(L[c]);this.toolbar.fontMenu=
+E;this.toolbar.sizeMenu=J}C=k.cellEditor.isContentEditing();E=b;J=f;L=d}}),K=this,B=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){B.apply(this,arguments);H();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=K.toolbar&&(K.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),K.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,
"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var M=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{M.apply(this,arguments),H()}catch(O){K.handleError(O)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(S){}var Q=k.fireMouseEvent;
k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();Q.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,
d){var f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=K.hoverIcons&&K.hoverIcons.update(k.view.getState(f[f.length-1]))},0));m(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,c){var e=c.getProperty("cells"),l=!1,g=!1;if(0<e.length)for(var m=0;m<e.length&&(l=k.getModel().isVertex(e[m])||l,!(g=k.getModel().isEdge(e[m])||g)||!l);m++);else g=l=!0;for(var e=c.getProperty("keys"),p=c.getProperty("values"),
@@ -2195,15 +2195,15 @@ function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor
mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(f.innerHTML="",mxUtils.write(f,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var p=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",d.style.display=
"",f.style.display="inline-block"):(l.style.display="none",d.style.display="none",f.style.display="none");m()});this.editor.addListener("resetGraphView",p);this.editor.addListener("pageSelected",m)}n(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
n(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var q=null,v=null,u=mxUtils.bind(this,function(b){null!=q&&(window.clearTimeout(q),q=null);null!=v&&(window.clearTimeout(v),v=null);q=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);q=null;v=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
-"none";v=null}),600)}),b||200)}),C=mxUtils.bind(this,function(b){null!=q&&(window.clearTimeout(q),q=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=n(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
+"none";v=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=q&&(window.clearTimeout(q),q=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=n(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var f=x.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=f.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
this.chromelessToolbar.offsetHeight+4+"px";mxClient.IS_IE||mxClient.IS_IE11?(this.layersDialog.style.backgroundColor="#ffffff",this.layersDialog.style.border="2px solid black",this.layersDialog.style.color="#000000"):(this.layersDialog.style.backgroundColor="#000000",this.layersDialog.style.color="#ffffff",mxUtils.setOpacity(this.layersDialog,80));f=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=f.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(d)}),
Editor.layersImage,mxResources.get("layers")),G=b.getModel();G.addListener(mxEvent.CHANGE,function(){x.style.display=1<G.getChildCount(G.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(n);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||n(mxUtils.bind(this,function(d){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):b.openLink(this.editor.editButtonLink,
-"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var A=this.lightboxToolbarActions[p];A.elem=n(A.fn,A.icon,A.tooltip)}null!=g.refreshBtn&&n(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&n(mxUtils.bind(this,
+"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var C=this.lightboxToolbarActions[p];C.elem=n(C.fn,C.icon,C.tooltip)}null!=g.refreshBtn&&n(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&n(mxUtils.bind(this,
function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&n(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
-"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||C(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
-mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?u():C(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?u():C(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||C(30)}));var E=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
-f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<E&&Math.abs(this.scrollTop-b.container.scrollTop)<E&&Math.abs(this.startX-f.getGraphX())<E&&Math.abs(this.startY-f.getGraphY())<E&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():C(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var J=
+"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
+mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?u():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?u():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var E=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
+f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<E&&Math.abs(this.scrollTop-b.container.scrollTop)<E&&Math.abs(this.startX-f.getGraphX())<E&&Math.abs(this.startY-f.getGraphY())<E&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var J=
b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}J.apply(this,arguments)};if(!b.isViewer()){var L=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?L.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var H=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var B=null,M=null,Q=null,S=null,N=null,O=function(d){null!=B&&window.clearTimeout(B);window.setTimeout(function(){if(!b.isMouseDown||S)B=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
@@ -2324,8 +2324,8 @@ this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPa
function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],f=this.graph.pageFormat,c=this.graph.pageScale,e=f.width*c,f=f.height*c,c=this.graph.view.translate,l=this.graph.view.scale,g=this.graph.getPageLayout(),m=0;m<g.width;m++)d.push(new mxRectangle(((g.x+m)*e+c.x)*l,(g.y*f+c.y)*l,e*l,f*l));for(m=1;m<g.height;m++)d.push(new mxRectangle((g.x*e+c.x)*l,((g.y+m)*f+c.y)*l,e*l,f*l));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),f=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||f.get(l)||(f.put(l,!0),c.push(l))}return c};var v=this.graphHandler.start;this.graphHandler.start=function(b,d,f,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
-v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var C=(new Date).getTime(),x=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(C=(new Date).getTime(),x=0):x=(new Date).getTime()-C};var A=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&A.apply(this,arguments)};var E=this.isToggleEvent;this.isToggleEvent=function(b){return E.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var J=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(b){return J.apply(this,
+v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var y=(new Date).getTime(),x=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var C=
+this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&C.apply(this,arguments)};var E=this.isToggleEvent;this.isToggleEvent=function(b){return E.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var J=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(b){return J.apply(this,
arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var L=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(L=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,
mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=L)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var H=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return H.apply(this,arguments);var f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
@@ -2395,8 +2395,8 @@ Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEve
Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var k=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,n=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
-/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),p=b[d+"FullYear"](),q=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),C=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
-12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:t(q%12||12),H:q,HH:t(q),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(n,""),o:(0<C?"-":"+")+t(100*Math.floor(Math.abs(C)/60)+Math.abs(C)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
+/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),p=b[d+"FullYear"](),q=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:t(q%12||12),H:q,HH:t(q),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(n,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var k=this.getModel(),g=k.getChildCount(k.root),n=0;n<g;n++)mxUtils.bind(this,function(g){function d(){k.isVisible(g)?(m.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(l,75)):(m.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(l,25))}var f=this.convertValueToString(g)||mxResources.get("background")||"Background",l=document.createElement("div");l.style.overflow=
"hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";l.style.cursor="pointer";l.setAttribute("title",mxResources.get(k.isVisible(g)?"hideIt":"show",[f]));var m=document.createElement("img");m.setAttribute("draggable","false");m.setAttribute("align","absmiddle");m.setAttribute("border","0");m.style.position="relative";m.style.width="16px";m.style.padding="0px 6px 0 4px";c&&(m.style.filter="invert(100%)",m.style.top="-2px");l.appendChild(m);mxUtils.write(l,f);e.appendChild(l);
@@ -2406,11 +2406,11 @@ null==t&&(t=f.hasAttribute(d)?null!=f.getAttribute(d)?f.getAttribute(d):"":null)
Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
Graph.prototype.connectVertex=function(b,c,e,k,g,n,t,d){n=n?n:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var f=this.isCloneConnectSource(b),l=f?b:this.getCompositeParent(b),m=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=e):c==
mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+e):(m.x=c==mxConstants.DIRECTION_WEST?m.x-e:m.x+(l.geometry.width+e),m.y+=l.geometry.height/2);var p=this.view.getState(this.model.getParent(b));e=this.view.scale;var q=this.view.translate,l=q.x*e,q=q.y*e;null!=p&&this.model.isVertex(p.cell)&&(l=p.x,q=p.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(m.x+=b.parent.geometry.x,m.y+=b.parent.geometry.y);n=n?null:(new mxRectangle(l+m.x*e,q+m.y*e)).grow(40*e);n=null!=n?
-this.getCells(0,0,0,0,null,null,n,null,!0):null;var p=this.view.getState(b),v=null,u=null;if(null!=n){n=n.reverse();for(var C=0;C<n.length;C++)if(!this.isCellLocked(n[C])&&!this.model.isEdge(n[C])&&n[C]!=b)if(!this.model.isAncestor(b,n[C])&&this.isContainer(n[C])&&(null==v||n[C]==this.model.getParent(b)))v=n[C];else if(null==u&&this.isCellConnectable(n[C])&&!this.model.isAncestor(n[C],b)&&!this.isSwimlane(n[C])){var x=this.view.getState(n[C]);null==p||null==x||mxUtils.intersects(p,x)||(u=n[C])}}var G=
-!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;G&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var A=[],E=u,u=v;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==u&&f){this.model.beginUpdate();try{if(null==E&&G){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);E=null!=e?e:this.duplicateCells([g],
+this.getCells(0,0,0,0,null,null,n,null,!0):null;var p=this.view.getState(b),v=null,u=null;if(null!=n){n=n.reverse();for(var y=0;y<n.length;y++)if(!this.isCellLocked(n[y])&&!this.model.isEdge(n[y])&&n[y]!=b)if(!this.model.isAncestor(b,n[y])&&this.isContainer(n[y])&&(null==v||n[y]==this.model.getParent(b)))v=n[y];else if(null==u&&this.isCellConnectable(n[y])&&!this.model.isAncestor(n[y],b)&&!this.isSwimlane(n[y])){var x=this.view.getState(n[y]);null==p||null==x||mxUtils.intersects(p,x)||(u=n[y])}}var G=
+!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;G&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var C=[],E=u,u=v;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==u&&f){this.model.beginUpdate();try{if(null==E&&G){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);E=null!=e?e:this.duplicateCells([g],
!1)[0];null!=e&&this.addCells([E],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(E);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=l.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-l.width/2:m.x+l.width/2),l.x=m.x-l.width/2,l.y=m.y-l.height/2);null!=v?(this.addCells([E],v,null,null,null,!0),u=null):G&&!f&&this.addCells([E],this.getDefaultParent(),null,null,null,!0)}var p=mxEvent.isControlDown(k)&&
mxEvent.isShiftDown(k)&&G||null==u&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,E,this.createCurrentEdgeStyle());if(null!=p&&this.connectionHandler.insertBeforeSource){var q=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=p.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==p.parent&&(q=e.parent.getIndex(e),this.model.add(e.parent,p,q))}null==u&&null!=E&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(q=b.parent.getIndex(b),this.model.add(b.parent,
-E,q));null!=p&&A.push(p);null==u&&null!=E&&A.push(E);null==E&&null!=p&&p.geometry.setTerminalPoint(m,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=d)d(A);else return A});if(null==t||null!=E||!G||null==u&&f)return g(E);t(l+m.x*e,q+m.y*e,g)};
+E,q));null!=p&&C.push(p);null==u&&null!=E&&C.push(E);null==E&&null!=p&&p.geometry.setTerminalPoint(m,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=d)d(C);else return C});if(null==t||null!=E||!G||null==u&&f)return g(E);t(l+m.x*e,q+m.y*e,g)};
Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,k;for(k in this.model.cells)if(e=this.model.cells[k],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(b.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([b])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&c.push(e);return c.join(" ")};
Graph.prototype.convertValueToString=function(b){var c=this.model.getValue(b);if(null!=c&&"object"==typeof c){var e=null;if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),k=b;null==e&&null!=k;)null!=k.value&&"object"==typeof k.value&&(e=k.hasAttribute(c)?null!=k.getAttribute(c)?k.getAttribute(c):"":null),k=this.model.getParent(k);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=c.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=c.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(b){return null!=b&&null!=b.text&&null!=b.text.node?b.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(b){return null!=b.value&&"object"==typeof b.value?(b=b.value.getAttribute("link"),null!=b&&"javascript:"===b.toLowerCase().substring(0,11)&&(b=b.substring(11)),b):null};
@@ -2479,7 +2479,7 @@ TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getC
TableLayout.prototype.layoutRow=function(b,c,e,k){var g=this.graph.getModel(),n=g.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var t=null,d=b.x,f=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var l=0;l<n.length;l++){var m=this.graph.getCellGeometry(n[l]);null!=m&&(m=m.clone(),m.y=b.y,m.height=e-b.y-b.height,null!=c?(m.x=c[l],m.width=c[l+1]-m.x,l==n.length-1&&l<c.length-2&&(m.width=k-m.x-b.x-b.width)):(m.x=d,d+=m.width,l==n.length-1?m.width=k-b.x-b.width-f:f+=m.width),m.alternateBounds=
new mxRectangle(0,0,m.width,m.height),g.setGeometry(n[l],m));null!=t&&null!=t.geo&&(1<t.colspan?(t.colspan--,t.geo.width+=m.width,g.setVisible(n[l],!1)):g.setVisible(n[l],!0));if(null==t||1>=t.colspan)t=this.graph.getCurrentCellStyle(n[l],!0),t={colspan:null!=t?parseInt(t.colspan||1):1,style:t,cell:n[l],geo:m}}return f};
TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),k=this.graph.getCellStyle(b),g="1"==mxUtils.getValue(k,"resizeLastRow","0"),n="1"==mxUtils.getValue(k,"resizeLast","0"),k="1"==mxUtils.getValue(k,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{var f=e.height-c.y-c.height,l=e.width-c.x-c.width,m=t.getChildCells(b,!0),p=this.getSize(m,!1);if(0<f&&0<l&&0<m.length&&0<p){if(g){var q=this.graph.getCellGeometry(m[m.length-
-1]);null!=q&&(q=q.clone(),q.height=f-p+q.height,t.setGeometry(m[m.length-1],q))}for(var v=n?null:this.getRowLayout(m[0],l),u=c.y,C=0;C<m.length;C++)q=this.graph.getCellGeometry(m[C]),null!=q&&(q=q.clone(),q.x=c.x,q.width=l,q.y=Math.round(u),u=g||k?u+q.height:u+q.height/p*f,q.height=Math.round(u)-q.y,t.setGeometry(m[C],q)),d=Math.max(d,this.layoutRow(m[C],v,q.height,l));k&&f<p&&(e=e.clone(),e.height=u+c.height,t.setGeometry(b,e));n&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+
+1]);null!=q&&(q=q.clone(),q.height=f-p+q.height,t.setGeometry(m[m.length-1],q))}for(var v=n?null:this.getRowLayout(m[0],l),u=c.y,y=0;y<m.length;y++)q=this.graph.getCellGeometry(m[y]),null!=q&&(q=q.clone(),q.x=c.x,q.width=l,q.y=Math.round(u),u=g||k?u+q.height:u+q.height/p*f,q.height=Math.round(u)-q.y,t.setGeometry(m[y],q)),d=Math.max(d,this.layoutRow(m[y],v,q.height,l));k&&f<p&&(e=e.clone(),e.height=u+c.height,t.setGeometry(b,e));n&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+
Graph.minTableColumnWidth,t.setGeometry(b,e))}}finally{t.endUpdate()}}};
(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var f=this.getState(b);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&!f.invalid&&this.updateLineJumps(f)&&this.graph.cellRenderer.redraw(f,!1,this.isRendering());f=c.apply(this,
arguments);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(f);return f};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var b=this.node.getElementsByTagName("path");if(1<b.length){"1"!=mxUtils.getValue(this.state.style,
@@ -2521,7 +2521,7 @@ Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null
mxConstants.NONE,[b]);var W=this.model.getTerminal(c,!1);if(null!=W){var u=this.getCurrentCellStyle(W);null!=u&&"1"==u.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,f){if(d||f)l.apply(this,arguments);
else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=g.length-1;else if(b&&null==c&&0<g.length||null!=e&&b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(b,d,f,c,e,g,l){l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),F=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=F&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var u=this.getCellGeometry(q);null!=u&&(u=u.clone(),u.height-=F.height,
-this.model.setGeometry(q,u))}u=this.getCellGeometry(e);null!=u&&(u=u.clone(),u.height+=F.height,this.model.setGeometry(e,u));var W=this.model.getChildCells(e,!0);if(0<W.length){b[p]=c?this.cloneCell(b[p]):b[p];var n=this.model.getChildCells(b[p],!0),v=this.model.getChildCells(W[0],!0),y=v.length-n.length;if(0<y)for(var D=0;D<y;D++){var x=this.cloneCell(n[n.length-1]);null!=x&&(x.value="",this.model.add(b[p],x))}else if(0>y)for(D=0;D>y;D--)this.model.remove(n[n.length+D-1]);n=this.model.getChildCells(b[p],
+this.model.setGeometry(q,u))}u=this.getCellGeometry(e);null!=u&&(u=u.clone(),u.height+=F.height,this.model.setGeometry(e,u));var W=this.model.getChildCells(e,!0);if(0<W.length){b[p]=c?this.cloneCell(b[p]):b[p];var n=this.model.getChildCells(b[p],!0),v=this.model.getChildCells(W[0],!0),A=v.length-n.length;if(0<A)for(var D=0;D<A;D++){var x=this.cloneCell(n[n.length-1]);null!=x&&(x.value="",this.model.add(b[p],x))}else if(0>A)for(D=0;D>A;D--)this.model.remove(n[n.length+D-1]);n=this.model.getChildCells(b[p],
!0);for(D=0;D<v.length;D++){var ta=this.getCellGeometry(v[D]),t=this.getCellGeometry(n[D]);null!=ta&&null!=t&&(t=t.clone(),t.width=ta.width,this.model.setGeometry(n[D],t))}}}}for(var sa=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),sa)}finally{this.model.endUpdate()}return sa};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,
l[m])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=p.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=null!=f?f:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var f=this.model.getChildCount(d),c=0;c<f;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=
@@ -2531,7 +2531,7 @@ this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=
this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||g||e)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var f=this.model.getParent(b);
null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,
!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);f.setGeometry(g,m);var F=this.view.getState(g),u=this.view.getState(l),n=this.view.getState(k);if(null!=F){var W=null!=u?this.getConnectionConstraint(F,u,!0):null,v=null!=n?this.getConnectionConstraint(F,n,!1):null;this.setConnectionConstraint(g,
-l,!0,v);this.setConnectionConstraint(g,k,!1,W);var y=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,y,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/
+l,!0,v);this.setConnectionConstraint(g,k,!1,W);var A=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,A,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/
2-m.height/2;m.y+=m.height/2-m.width/2;var D=m.width;m.width=m.height;m.height=D;f.setGeometry(g,m)}var x=this.view.getState(g);if(null!=x){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],I=mxUtils.getValue(x.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,I)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=
function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var q=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&
(d=this.model.getParent(d));var f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}q.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var f=this.view.getState(b[d]);null!=f&&null!=f.shape&&null!=f.shape.stencil&&
@@ -2563,11 +2563,11 @@ d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.removeChild(d[0])}break}
if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(f.length-1),c=e,g=1;g<f.length-1;g++){var p=this.view.getState(this.model.getParent(f[g].cell)),
q=this.getCellGeometry(f[g].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/2)-p.origin.y,this.getModel().setGeometry(f[g].cell,q))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});
return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,f,c,e,g,l,k,m,p,q,F,u,n){var v=null;if(null!=n)for(v=new mxDictionary,q=0;q<n.length;q++)v.put(n[q],!0);if(n=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;
-g=null!=g?g:!0;l=null!=l?l:!0;var y="page"==u?this.view.getBackgroundPageBounds():g&&null==v||c||"diagram"==u?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),D=this.view.scale;"diagram"==u&&null!=this.backgroundImage&&y.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*D,(this.view.translate.y+this.backgroundImage.y)*D,this.backgroundImage.width*D,this.backgroundImage.height*D));if(null==y)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),
-t=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==x.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/D;var I=Math.max(1,Math.ceil(y.width*b)+2*f)+(p?5:0),A=Math.max(1,Math.ceil(y.height*b)+2*f)+(p?5:0);t.setAttribute("version",
-"1.1");t.setAttribute("width",I+"px");t.setAttribute("height",A+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+I+" "+A);x.appendChild(t);var C=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");t.appendChild(C);var W=this.createSvgCanvas(C);W.foOffset=e?-.5:0;W.textOffset=e?-.5:0;W.imageOffset=e?-.5:0;W.translate(Math.floor(f/d-y.x/D),Math.floor(f/d-y.y/D));var Y=document.createElement("div"),B=W.getAlternateText;W.getAlternateText=function(b,d,f,c,e,
+g=null!=g?g:!0;l=null!=l?l:!0;var A="page"==u?this.view.getBackgroundPageBounds():g&&null==v||c||"diagram"==u?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),D=this.view.scale;"diagram"==u&&null!=this.backgroundImage&&A.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*D,(this.view.translate.y+this.backgroundImage.y)*D,this.backgroundImage.width*D,this.backgroundImage.height*D));if(null==A)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),
+t=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==x.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/D;var I=Math.max(1,Math.ceil(A.width*b)+2*f)+(p?5:0),y=Math.max(1,Math.ceil(A.height*b)+2*f)+(p?5:0);t.setAttribute("version",
+"1.1");t.setAttribute("width",I+"px");t.setAttribute("height",y+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+I+" "+y);x.appendChild(t);var C=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");t.appendChild(C);var W=this.createSvgCanvas(C);W.foOffset=e?-.5:0;W.textOffset=e?-.5:0;W.imageOffset=e?-.5:0;W.translate(Math.floor(f/d-A.x/D),Math.floor(f/d-A.y/D));var Y=document.createElement("div"),B=W.getAlternateText;W.getAlternateText=function(b,d,f,c,e,
g,l,k,m,p,q,z,oa){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?g=g.innerText:(Y.innerHTML=g,g=mxUtils.extractTextWithWhitespace(Y.childNodes));for(var Wa=Math.ceil(2*c/this.state.fontSize),ua=[],Sa=0,F=0;(0==Wa||Sa<Wa)&&F<g.length;){var Ta=g.charCodeAt(F);if(10==Ta||13==Ta){if(0<Sa)break}else ua.push(g.charAt(F)),255>Ta&&Sa++;F++}ua.length<g.length&&1<g.length-ua.length&&(g=mxUtils.trim(ua.join(""))+"...");return g}catch(gb){return B.apply(this,arguments)}else return B.apply(this,arguments)};
-var N=this.backgroundImage;if(null!=N){d=D/d;var ta=this.view.translate,ca=new mxRectangle((N.x+ta.x)*d,(N.y+ta.y)*d,N.width*d,N.height*d);mxUtils.intersects(y,ca)&&W.image(N.x+ta.x,N.y+ta.y,N.width,N.height,N.src,!0)}W.scale(b);W.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,ba=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=ba.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};
+var N=this.backgroundImage;if(null!=N){d=D/d;var ta=this.view.translate,ca=new mxRectangle((N.x+ta.x)*d,(N.y+ta.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,ca)&&W.image(N.x+ta.x,N.y+ta.y,N.width,N.height,N.src,!0)}W.scale(b);W.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,ba=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=ba.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};
k.drawCellState=function(b,d){for(var f=b.view.graph,c=null!=v?v.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==v||c)&&null!=e;)c=null!=v?v.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==v||c)&&E.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),W);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(W,t);return t}finally{n&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=
function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var f=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,
"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var g=b.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);f.appendChild(c);e.appendChild(g);f.appendChild(e);d.appendChild(f)}};Graph.prototype.updateSvgLinks=function(b,d,f){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=
@@ -2592,11 +2592,11 @@ d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.co
return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),f=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));f.insertNode(b);f.setStartAfter(b);f.setEndAfter(b);d.removeAllRanges();d.addRange(f)};mxCellEditor.prototype.alignText=function(b,d){var f=null!=d&&mxEvent.isShiftDown(d);if(f||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=
!0;this.graph.processElements(this.textarea,function(b){f||window.getSelection().containsNode(b,!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&b.rangeCount){for(var d=[],f=0,c=b.rangeCount;f<c;++f)d.push(b.getRangeAt(f));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
return null};mxCellEditor.prototype.restoreSelection=function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(la){}};var u=mxCellRenderer.prototype.postConfigureShape;mxCellRenderer.prototype.postConfigureShape=function(b){var d=Editor.isDarkMode()?"#ffffff":"#000000",f=b.view.graph.defaultPageBackgroundColor;this.resolveDefaultColor(b,"fill",b.shape,f);this.resolveDefaultColor(b,
-"stroke",b.shape,d);this.resolveDefaultColor(b,"laneFill",b.shape,f);this.resolveDefaultColor(b,"imageBackground",b.shape,f);this.resolveDefaultColor(b,"imageBorder",b.shape,d);this.resolveDefaultColor(b,"background",b.text,f);this.resolveDefaultColor(b,"color",b.text,d);u.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(b,d,f,c){null!=f&&"default"==f[d]&&(f[d]=c)};var C=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=
-b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));C.apply(this,arguments)};var x=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?x.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var G=mxCellEditor.prototype.startEditing;
+"stroke",b.shape,d);this.resolveDefaultColor(b,"laneFill",b.shape,f);this.resolveDefaultColor(b,"imageBackground",b.shape,f);this.resolveDefaultColor(b,"imageBorder",b.shape,d);this.resolveDefaultColor(b,"background",b.text,f);this.resolveDefaultColor(b,"color",b.text,d);u.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(b,d,f,c){null!=f&&"default"==f[d]&&(f[d]=c)};var y=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=
+b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));y.apply(this,arguments)};var x=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?x.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var G=mxCellEditor.prototype.startEditing;
mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);G.apply(this,arguments);var f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=
-mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var A=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
-b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}A.apply(this,arguments);
+mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var C=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
+b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}C.apply(this,arguments);
7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?f(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);
if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),f=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,
mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,
@@ -2629,9 +2629,9 @@ else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())
b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height=
"4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=
mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(f);this.graph.container.appendChild(f)}})(this.graph.view.getState(b.getChildAt(this.state.cell,d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();
-this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var y=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=
+this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var A=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=
this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=this.customHandles[c].shape.bounds,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/2){f=!0;break}}f&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+
-d):b=y.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=this.state.view.scale;var f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}d=mxUtils.getBoundingBox(this.bounds,
+d):b=A.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=this.state.view.scale;var f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}d=mxUtils.getBoundingBox(this.bounds,
null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var D=mxEdgeHandler.prototype.mouseMove;
mxEdgeHandler.prototype.mouseMove=function(b,d){D.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var Y=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(b,d){Y.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&
(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+
@@ -2678,9 +2678,9 @@ for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.display
this.cornerHandles[b].node.parentNode.removeChild(this.cornerHandles[b].node);this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};
var aa=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(aa.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var ja=mxEdgeHandler.prototype.reset;
mxEdgeHandler.prototype.reset=function(){ja.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var P=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){P.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function p(){mxActor.call(this)}function q(){mxCylinder.call(this)}
-function v(){mxCylinder.call(this)}function u(){mxActor.call(this)}function C(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function A(){mxActor.call(this)}function E(){mxActor.call(this)}function J(){mxActor.call(this)}function L(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,L.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+function v(){mxCylinder.call(this)}function u(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function C(){mxActor.call(this)}function E(){mxActor.call(this)}function J(){mxActor.call(this)}function L(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,L.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,L.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,L.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,L.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,L.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,L.prototype.arcTo)}function H(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function B(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function O(){mxCylinder.call(this)}function ia(){mxShape.call(this)}function F(){mxShape.call(this)}function y(){mxEllipse.call(this)}function D(){mxShape.call(this)}function Y(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function ba(){mxShape.call(this)}function ca(){mxShape.call(this)}function da(){mxShape.call(this)}
+function B(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function O(){mxCylinder.call(this)}function ia(){mxShape.call(this)}function F(){mxShape.call(this)}function A(){mxEllipse.call(this)}function D(){mxShape.call(this)}function Y(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function ba(){mxShape.call(this)}function ca(){mxShape.call(this)}function da(){mxShape.call(this)}
function ka(){mxShape.call(this)}function ma(){mxShape.call(this)}function ga(){mxCylinder.call(this)}function V(){mxCylinder.call(this)}function na(){mxRectangleShape.call(this)}function U(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function ra(){mxArrowConnector.call(this);this.spacing=0}function Z(){mxArrowConnector.call(this);this.spacing=0}function fa(){mxActor.call(this)}function ha(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}
function pa(){mxActor.call(this)}function aa(){mxActor.call(this)}function ja(){mxActor.call(this)}function P(){mxActor.call(this)}function W(){mxActor.call(this)}function ta(){mxActor.call(this)}function sa(){mxActor.call(this)}function la(){mxActor.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}function Fa(){mxRhombus.call(this)}function Ja(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function Ia(){mxEllipse.call(this)}
function za(){mxEllipse.call(this)}function wa(){mxActor.call(this)}function va(){mxActor.call(this)}function Ca(){mxActor.call(this)}function X(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ga(){mxConnector.call(this)}function Ua(b,d,f,c,e,g,l,k,m,p){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
@@ -2708,16 +2708,16 @@ mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,
parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=0);z=0;null!=f&&(z=10);b.begin();b.moveTo(z,d);b.arcTo(d,d,0,0,1,z+d,0);b.lineTo(c-d,0);b.arcTo(d,d,0,0,1,c,d);b.lineTo(c,e-d);b.arcTo(d,d,0,0,1,c-d,e);b.lineTo(z+d,e);b.arcTo(d,d,0,0,1,z,e-d);b.close();b.fillAndStroke();b.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(b.roundrect(c-40,e-20,
10,10,3,3),b.stroke(),b.roundrect(c-20,e-20,10,10,3,3),b.stroke(),b.begin(),b.moveTo(c-30,e-15),b.lineTo(c-20,e-15),b.stroke());"connPointRefEntry"==f?(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",
null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",v);mxUtils.extend(u,mxActor);u.prototype.size=30;u.prototype.isRoundable=function(){return!0};u.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,
-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(C,mxActor);C.prototype.size=.4;C.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};C.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,
-"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",C);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,
+d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};y.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,
+"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",y);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*b.height):null};x.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,0);b.lineTo(c,0);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};mxCellRenderer.registerShape("document",x);var $a=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(b,d,f,c){var e=
mxUtils.getValue(this.style,"size");return null!=e?c*Math.max(0,Math.min(1,e)):$a.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,b.height*d),0,0)}return null};m.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,
"lid",!0)||(d/=2);return new mxRectangle(0,Math.min(b.height*this.scale,2*d*this.scale),0,Math.max(0,.3*d*this.scale))}return null};q.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,
"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,
"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(G,mxActor);G.prototype.size=.2;G.prototype.fixedSize=20;G.prototype.isRoundable=function(){return!0};G.prototype.redrawPath=
-function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",G);mxUtils.extend(A,
-mxActor);A.prototype.size=.2;A.prototype.fixedSize=20;A.prototype.isRoundable=function(){return!0};A.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,
-0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",A);mxUtils.extend(E,mxActor);E.prototype.size=.5;E.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,
+function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",G);mxUtils.extend(C,
+mxActor);C.prototype.size=.2;C.prototype.fixedSize=20;C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,
+0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",C);mxUtils.extend(E,mxActor);E.prototype.size=.5;E.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,
e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",E);mxUtils.extend(J,mxActor);J.prototype.redrawPath=function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",J);L.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=
d};L.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};L.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};L.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};L.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,
arguments);this.lastX=g;this.lastY=l};L.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-
@@ -2740,7 +2740,7 @@ return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};N.prototy
k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],p=this.style["symbol"+g+"Height"],q=this.style["symbol"+g+"Spacing"]||0,oa=this.style["symbol"+g+"VSpacing"]||q,F=this.style["symbol"+g+"ArcSpacing"];null!=F&&(F*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=F,oa+=F);var F=d,ua=f,F=l==mxConstants.ALIGN_CENTER?F+(c-m)/2:l==mxConstants.ALIGN_RIGHT?F+(c-m-q):F+q,ua=k==mxConstants.ALIGN_MIDDLE?ua+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?ua+(e-p-oa):ua+oa;b.save();l=new z;
l.style=this.style;z.prototype.paintVertexShape.call(l,b,F,ua,m,p);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(O,mxCylinder);O.prototype.redrawPath=function(b,d,f,c,e,g){g?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",O);mxUtils.extend(ia,mxShape);ia.prototype.paintBackground=
function(b,d,f,c,e){b.translate(d,f);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",ia);mxUtils.extend(F,mxShape);F.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};F.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();
-b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",F);mxUtils.extend(y,mxEllipse);y.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",y);mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=
+b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",F);mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",A);mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=
function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",D);mxUtils.extend(Y,mxShape);Y.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};Y.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};Y.prototype.paintForeground=
function(b,d,f,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",Y);mxUtils.extend(I,mxRectangleShape);I.prototype.size=40;I.prototype.isHtmlAllowed=function(){return!1};I.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};I.prototype.paintBackground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,
parseFloat(mxUtils.getValue(this.style,"size",this.size)))),z=mxUtils.getValue(this.style,"participant");null==z||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,f,c,g):(z=this.state.view.graph.cellRenderer.getShape(z),null!=z&&z!=I&&(z=new z,z.apply(this.state),b.save(),z.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};I.prototype.paintForeground=
@@ -2752,7 +2752,7 @@ function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,argument
new mxPoint(b.getCenterX()+c,Math.min(b.y+b.height,Math.max(b.y,f.y)));f.y<b.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(b.x+b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",B.prototype.size))*d.view.scale))),d.style),
d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?G.prototype.fixedSize:G.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?
(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]):(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("parallelogramPerimeter",
-mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?A.prototype.fixedSize:A.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+
+mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?C.prototype.fixedSize:C.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+
e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):
m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(l,z+m),new mxPoint(l,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,
"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,p=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,b),new mxPoint(l,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,
@@ -2794,33 +2794,33 @@ type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
dispName:"Fold"}]}];X.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};X.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=g&&g.rectOutline?g.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),z=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),F=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),u=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),n=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),v=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),y=g&&g.bottom?g.bottom:
-mxUtils.getValue(this.style,"bottom",!0),D=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),z=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),F=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),u=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,q)),n=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),v=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:
+mxUtils.getValue(this.style,"bottom",!0),D=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:
mxUtils.getValue(this.style,"fillColor","#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var Y=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),B=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),ua=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),oa=g&&g.opacity?g.opacity:
-mxUtils.getValue(this.style,"opacity","100"),ca=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(z);F&&""!=F&&b.setDashPattern(F);b.setStrokeWidth(Y);m=Math.min(.5*e,.5*c,m);k||(m=ca*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(u*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(n||v||y||D)&&"frame"!=p&&(b.begin(),n?g.moveNW(b,d,f,c,e,l,x,m,D):b.moveTo(0,0),n&&g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),v&&g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,
-c,e,l,I,m,y),y&&g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),D&&g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(B),z=k=oa,"none"==B&&(k=0),"none"==N&&(z=0),b.setGradient(B,N,0,0,c,e,ua,k,z),b.begin(),n?g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),D&&y&&g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),y&&v&&g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,
-d,f,c,e,l,t,m,q,n,v),v&&n&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),n&&D&&g.paintNWInner(b,d,f,c,e,l,x,m,q),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,x,t,I,A,m,n,v,y,D),b.stroke()));n||v||y||!D?n||v||!y||D?!n&&!v&&y&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,
-d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):n||!v||y||D?!n&&v&&!y&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==
-p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,
-l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&y&&!D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,
-d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&y&&D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,
-d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,
-d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n||v||y||D?n&&!v&&!y&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke()):
-(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke()):n&&!v&&y&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke(),b.begin(),
-g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):
-n&&!v&&y&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,
-m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):n&&v&&!y&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,
-v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,
-c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&!y&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke()):
-(b.begin(),g.moveSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke()):n&&v&&y&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,
-D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,
-m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&y&&D&&("frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,
-n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,
-e,l,A,m,q,y,D),b.close()),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.paintSW(b,d,f,c,e,l,A,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintSWInner(b,d,f,c,e,l,A,m,q,y),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,
-e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke())):"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,
-e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,y),g.lineSEInner(b,d,f,c,e,l,I,m,q,y),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),"double"==p&&
-(g.moveSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,A,m,D),g.lineSWInner(b,d,f,c,e,l,A,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,y),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,y),g.paintLeft(b,
-d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,A,m,q,y,D),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,x,t,I,A,m,n,v,y,D);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&
+mxUtils.getValue(this.style,"opacity","100"),ca=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(z);F&&""!=F&&b.setDashPattern(F);b.setStrokeWidth(Y);m=Math.min(.5*e,.5*c,m);k||(m=ca*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(u*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(n||v||A||D)&&"frame"!=p&&(b.begin(),n?g.moveNW(b,d,f,c,e,l,x,m,D):b.moveTo(0,0),n&&g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),v&&g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,
+c,e,l,I,m,A),A&&g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),D&&g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(B),z=k=oa,"none"==B&&(k=0),"none"==N&&(z=0),b.setGradient(B,N,0,0,c,e,ua,k,z),b.begin(),n?g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D):b.moveTo(q,0),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),D&&A&&g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),A&&v&&g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,
+d,f,c,e,l,t,m,q,n,v),v&&n&&g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),n&&D&&g.paintNWInner(b,d,f,c,e,l,x,m,q),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,x,t,I,y,m,n,v,A,D),b.stroke()));n||v||A||!D?n||v||!A||D?!n&&!v&&A&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,
+d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):n||!v||A||D?!n&&v&&!A&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==
+p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,
+l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&A&&!D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,
+d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n&&v&&A&&D?"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,
+d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,
+d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):!n||v||A||D?n&&!v&&!A&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke()):n&&!v&&A&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke(),b.begin(),
+g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):
+n&&!v&&A&&D?"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,
+m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):n&&v&&!A&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,
+v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,
+c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&!A&&D?"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke()):n&&v&&A&&!D?"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,
+D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,
+m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):n&&v&&A&&D&&("frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,
+n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),"double"==p&&(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,
+e,l,y,m,q,A,D),b.close()),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.paintNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintSWInner(b,d,f,c,e,l,y,m,q,A),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),g.paintSEInner(b,d,f,c,e,l,I,m,q),g.paintRightInner(b,d,f,c,
+e,l,t,m,q,n,v),g.paintNEInner(b,d,f,c,e,l,t,m,q),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n),g.paintNWInner(b,d,f,c,e,l,x,m,q),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke())):"frame"!=p?(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),"double"==p&&(g.moveNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,e,l,x,m,q,D,n)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,x,m,D),g.paintTop(b,d,f,c,e,l,t,m,v),g.lineNEInner(b,d,f,c,e,l,t,m,q,v),g.paintTopInner(b,d,f,c,
+e,l,x,m,q,D,n),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==p&&(g.moveSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,n),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,q,A),g.paintRightInner(b,d,f,c,e,l,t,m,q,n,v),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),"double"==p&&
+(g.moveSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,v),g.paintBottom(b,d,f,c,e,l,y,m,D),g.lineSWInner(b,d,f,c,e,l,y,m,q,D),g.paintBottomInner(b,d,f,c,e,l,I,m,q,v,A),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,d,f,c,e,l,x,m,n),"double"==p&&(g.moveNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,x,m,A),g.paintLeft(b,
+d,f,c,e,l,x,m,n),g.lineNWInner(b,d,f,c,e,l,x,m,q,n,D),g.paintLeftInner(b,d,f,c,e,l,y,m,q,A,D),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,x,t,I,y,m,n,v,A,D);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&
"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};X.prototype.moveSW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};X.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};X.prototype.paintTop=
function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};X.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};X.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};X.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};X.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,
@@ -2835,12 +2835,12 @@ e-m-k):b.moveTo(0,e-k)};X.prototype.lineSWInner=function(b,d,f,c,e,g,l,m,k,q){q?
g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};X.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
k,e)};X.prototype.moveNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};X.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,q){q?"square"==l||"default"==l&&"square"==g||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==
l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};X.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,
-0)};X.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,F,n,y,u){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
-l&&"fold"==g)&&F&&u&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&F&&n&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&y&&n&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&y&&u&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(Ga,mxConnector);Ga.prototype.origPaintEdgeShape=Ga.prototype.paintEdgeShape;
+0)};X.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,q,p,F,n,A,u){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
+l&&"fold"==g)&&F&&u&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==g)&&F&&n&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==g)&&A&&n&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==g)&&A&&u&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(Ga,mxConnector);Ga.prototype.origPaintEdgeShape=Ga.prototype.paintEdgeShape;
Ga.prototype.paintEdgeShape=function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;Ga.prototype.origPaintEdgeShape.apply(this,[b,c,f]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,g),Ga.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",Ga);"undefined"!==typeof StyleFormatPanel&&function(){var b=
StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.stroke()}});mxMarker.addMarker("box",
-function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1),n=c.x+p/2,y=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(n-p/2-F/2,y-F/2+p/2);b.lineTo(n-p/2+F/2,y-F/2-p/2);b.lineTo(n+F/2-3*p/2,y-3*F/2-p/2);b.lineTo(n-F/2-3*p/2,y-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-
-F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),F=Ua.apply(this,arguments),n=e*(l+2*k),y=g*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*n+e*k,p.y-2*y+g*k);b.moveTo(p.x-n-y+g*k,p.y-y+n-e*k);b.lineTo(p.x+y-n-g*k,p.y-y-n+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),F=g*(l+
+function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1),n=c.x+p/2,A=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(n-p/2-F/2,A-F/2+p/2);b.lineTo(n-p/2+F/2,A-F/2-p/2);b.lineTo(n+F/2-3*p/2,A-3*F/2-p/2);b.lineTo(n-F/2-3*p/2,A-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var p=e*(l+k+1),F=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-
+F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,q){var p=c.clone(),F=Ua.apply(this,arguments),n=e*(l+2*k),A=g*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-g*k);b.lineTo(p.x-2*n+e*k,p.y-2*A+g*k);b.moveTo(p.x-n-A+g*k,p.y-A+n-e*k);b.lineTo(p.x+A-n-g*k,p.y-A-n+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,p){var q=e*(l+k+1),F=g*(l+
k+1),n=c.clone();c.x-=q;c.y-=F;return function(){b.begin();b.moveTo(n.x-F,n.y+q);b.quadTo(c.x-F,c.y+q,c.x,c.y);b.quadTo(c.x+F,c.y-q,n.x+F,n.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var p=c.clone();p.x-=d;p.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-g/2,p.y-g+e/2):b.lineTo(p.x+g/2-e,p.y-g-e/2);b.lineTo(p.x-e,p.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
function(b){b=null!=b?b:2;return function(d,f,c,e,g,l,m,k,p,q){g*=m+p;l*=m+p;var F=e.clone();return function(){d.begin();d.moveTo(F.x,F.y);k?d.lineTo(F.x-g-l/b,F.y-l+g/b):d.lineTo(F.x+l/b-g,F.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return La(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=
Math.round(2*d)/b.view.scale-f})},La=function(b,d,f,c,e){return ea(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,p=Math.sqrt(g*g+k*k),m=c.call(this,p,g/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,F=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
@@ -2878,14 +2878,14 @@ mxUtils.getValue(this.state.style,"jettyHeight",ga.prototype.jettyHeight)));retu
"dy",qa.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ea(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",pa.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",pa.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,
d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Da(1),doubleArrow:Da(.5),folder:function(b){return[ea(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",q.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",q.prototype.tabHeight)));mxUtils.getValue(this.state.style,
"tabPosition",q.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",q.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",x.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ea(b,
+"size",x.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ea(b,
["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Za(l.prototype.size),cylinder3:Za(m.prototype.size),offPageConnector:function(b){return[ea(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",la.prototype.size))));
return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,
["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Ma(M.prototype.size,!0,null,!0,M.prototype.fixedSize),hexagon:Ma(Q.prototype.size,!0,.5,!0,Q.prototype.fixedSize),curlyBracket:Ma(E.prototype.size,!1),display:Ma(Ca.prototype.size,!1),cube:Ra(1,
-c.prototype.size,!1),card:Ra(.5,u.prototype.size,!0),loopLimit:Ra(.5,sa.prototype.size,!0),trapezoid:Va(.5,A.prototype.size,A.prototype.fixedSize),parallelogram:Va(1,G.prototype.size,G.prototype.fixedSize)};Graph.createHandle=ea;Graph.handleFactory=Na;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&
+c.prototype.size,!1),card:Ra(.5,u.prototype.size,!0),loopLimit:Ra(.5,sa.prototype.size,!0),trapezoid:Va(.5,C.prototype.size,C.prototype.fixedSize),parallelogram:Va(1,G.prototype.size,G.prototype.fixedSize)};Graph.createHandle=ea;Graph.handleFactory=Na;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&
null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Na[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Na[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);
b=Na[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Da=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Da),Math.sin(Da)),Da=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Da),Math.sin(Da));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=g.transformControlPoint(b,c));null==
-m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),f.getCenterY()));var k=Oa.x,p=Oa.y,q=Pa.x,F=Pa.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=y.x;var c=d-y.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);n?(f&&(y=new mxPoint(y.x+k*d,y.y+p*d),e.push(y)),y=new mxPoint(y.x+q*b,y.y+F*b)):(f&&(y=new mxPoint(y.x+q*b,y.y+F*b),e.push(y)),y=new mxPoint(y.x+k*d,y.y+p*d));e.push(y)};var y=m;null==
+m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),f.getCenterY()));var k=Oa.x,p=Oa.y,q=Pa.x,F=Pa.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=A.x;var c=d-A.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);n?(f&&(A=new mxPoint(A.x+k*d,A.y+p*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+F*b)):(f&&(A=new mxPoint(A.x+q*b,A.y+F*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+p*d));e.push(A)};var A=m;null==
c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return fb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=
function(b,d,f){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*f);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -2915,13 +2915,13 @@ xa.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraint
.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];V.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
-.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];C.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
+.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];G.prototype.constraints=mxRectangleShape.prototype.constraints;A.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];G.prototype.constraints=mxRectangleShape.prototype.constraints;C.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;pa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(d+c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -3006,7 +3006,7 @@ DrawioFile.prototype.updateFile=function(b,c,e,k){null!=e&&e()||(this.ui.getCurr
DrawioFile.prototype.mergeFile=function(b,c,e,k){var g=!0;try{this.stats.fileMerged++;var n=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(n,this.ui.pages):null;var d=[this.ui.diffPages(null!=k?k:n,this.shadowPages)];if(!this.ignorePatches(d)){var f=this.ui.patchPages(n,
d[0]);k={};var l=this.ui.getHashValueForPages(f,k),n={},m=this.ui.getHashValueForPages(this.shadowPages,n);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",m==l,l);if(null!=l&&l!=m){var p=this.compressReportData(this.getAnonymizedXmlForPages(t)),q=this.compressReportData(this.getAnonymizedXmlForPages(f)),v=this.ui.hashValue(b.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
"\nChecksum: "+l+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(n)+"\nFrom: "+v+"\nTo: "+u+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+q,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(G){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=e&&e(G);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,G);else{var C=this.getCurrentUser(),x=null!=C?C.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,G)}}catch(A){}}};
+null!=e&&e(G);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,G);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,G)}}catch(C){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var k=0;k<b.length;k++){var g=c.encode(new mxGraphModel(b[k].root));"1"!=urlParams.dev&&(g=this.ui.anonymizeNode(g,!0));g.setAttribute("id",b[k].getId());b[k].viewState&&this.ui.editor.graph.saveViewState(b[k].viewState,g,!0);e.appendChild(g)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,c,e,k,g){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!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var n=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null!=b?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement)),
@@ -3181,10 +3181,10 @@ k||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==k||/(\.w
null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[g].substring(0,l)),k)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;b()})):b()};Editor.prototype.embedExtFonts=function(b){var d=this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,
b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),
c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,
-"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,v,x,t,A,C){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var y=m?null:n.background;
-y==mxConstants.NONE&&(y=null);null==y&&(y=f);null==y&&0==m&&(y=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,l,null,null,null,p,null,t,A,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(f,0,0);b(m,c)},0):(v.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));
-k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var v=m.getContext("2d");null!=y&&(v.beginPath(),v.rect(0,0,p,q),v.fillStyle=y,v.fill());1!=k&&v.scale(k,k);if(x){var t=n.view,A=t.scale;t.scale=1;var F=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var F="data:image/svg+xml;base64,"+F,D=n.gridSize*t.gridSteps*k,C=n.getGraphBounds(),
-B=t.translate.x*A,N=t.translate.y*A,I=B+(C.x-B)/A-u,E=N+(C.y-N)/A-u,G=new Image;G.onload=function(){try{for(var b=-Math.round(D-mxUtils.mod((B-I)*k,D)),d=-Math.round(D-mxUtils.mod((N-E)*k,D));b<p;b+=D)for(var c=d;c<q;c+=D)v.drawImage(G,b/k,c/k);l()}catch(X){null!=e&&e(X)}};G.onerror=function(b){null!=e&&e(b)};G.src=F}else l()}catch(wa){null!=e&&e(wa)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=
+"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,p,q,n,u,v,x,t,y,C){try{g=null!=g?g:!0;l=null!=l?l:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var A=m?null:n.background;
+A==mxConstants.NONE&&(A=null);null==A&&(A=f);null==A&&0==m&&(A=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,l,null,null,null,p,null,t,y,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(f,0,0);b(m,c)},0):(v.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));
+k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var v=m.getContext("2d");null!=A&&(v.beginPath(),v.rect(0,0,p,q),v.fillStyle=A,v.fill());1!=k&&v.scale(k,k);if(x){var t=n.view,F=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=F;var y="data:image/svg+xml;base64,"+y,C=n.gridSize*t.gridSteps*k,D=n.getGraphBounds(),
+B=t.translate.x*F,N=t.translate.y*F,I=B+(D.x-B)/F-u,E=N+(D.y-N)/F-u,G=new Image;G.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((B-I)*k,C)),d=-Math.round(C-mxUtils.mod((N-E)*k,C));b<p;b+=C)for(var c=d;c<q;c+=C)v.drawImage(G,b/k,c/k);l()}catch(X){null!=e&&e(X)}};G.onerror=function(b){null!=e&&e(b)};G.src=y}else l()}catch(wa){null!=e&&e(wa)}});f.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=
this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(aa){null!=e&&e(aa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ja){null!=e&&e(ja)}}))}catch(aa){null!=e&&e(aa)}}),c,q)}catch(qa){null!=e&&e(qa)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var n=g,t=0;8>t;t++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[g]=n;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;e++)b=
Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,m)}function l(b){b=g(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,m);do{var p=l(b);if("IDAT"==g(b,4)){e=b.substring(0,m-8);"pHYs"==d&&"dpi"==c?(c=Math.round(f/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=k(c.length)+
@@ -3226,16 +3226,16 @@ if(p.length>d)p=p.slice(0,d);else for(var u=p.length;u<d;u++)p.push(m);p=p.join(
c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":
d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,k){null!=d&&(d=d.split(","),u.push({name:b,values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var n={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,
countProperty:g},q=p(b,"",n,0==q%2,k);f(b,e,n);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(b,d,c,f,e,g,l){if(0<e){var k=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=f?f:"";u.push({name:b,values:k,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";
-e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,x=p.type,t=document.createElement("tr");t.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);n=!1;null!=p.index&&(t.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var A=document.createElement("td");A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(v,
-null,v));n&&(A.style.textAlign="right");t.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==x)A.appendChild(g(d,c,p));else if("bool"==x||"boolean"==x)A.appendChild(m(d,c,p));else if("enum"==x){var y=p.enumList;for(u=0;u<y.length;u++)if(v=y[u],v.val==c){A.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(A,g);for(var l=0;l<y.length;l++){var k=
-y[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);m.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,p)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?A.appendChild(l(d,c,p.subType,p.subDefVal,p.countProperty,t,u)):"staticArr"==x?A.appendChild(k(d,c,p.subType,p.subDefVal,p.size,
-t,u)):"readOnly"==x?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",A.appendChild(u)):(A.innerHTML=c,mxEvent.addListener(A,"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):
-b)+"");f(d,b,p)}var l=document.createElement("input");e(A,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||p.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=p.min&&(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",p,p.index);mxEvent.consume(b)})),
-u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",A.appendChild(u));t.appendChild(A);return t}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var A=document.createElement("img");
-A.src=Sidebar.prototype.expandedImage;t.appendChild(A);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var y=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(xa){}}else A.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=
-c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);v.appendChild(x);var F=!1,C=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&v.appendChild(p("id",mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=
-d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var D=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)C=!C;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var N=x.dependentProps,E=[],G=[],t=0;t<N.length;t++){var Q=c.style[N[t]];G.push(d[N[t]].subDefVal);E.push(null!=Q?Q.split(","):[])}x.dependentPropsDefVal=G;x.dependentPropsVals=
-E}v.appendChild(p(B,D,x,F,C));F=!F}}for(t=0;t<u.length;t++)for(x=u[t],d=x.parentRow,c=0;c<x.values.length;c++)B=p(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(v);y();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,
+e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,x=p.type,t=document.createElement("tr");t.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);n=!1;null!=p.index&&(t.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var y=document.createElement("td");y.className="gePropRowCell";y.innerHTML=mxUtils.htmlEntities(mxResources.get(v,
+null,v));n&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,p));else if("bool"==x||"boolean"==x)y.appendChild(m(d,c,p));else if("enum"==x){var A=p.enumList;for(u=0;u<A.length;u++)if(v=A[u],v.val==c){y.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<A.length;l++){var k=
+A[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);m.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,p)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,p.subType,p.subDefVal,p.countProperty,t,u)):"staticArr"==x?y.appendChild(k(d,c,p.subType,p.subDefVal,p.size,
+t,u)):"readOnly"==x?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",y.appendChild(u)):(y.innerHTML=c,mxEvent.addListener(y,"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):
+b)+"");f(d,b,p)}var l=document.createElement("input");e(y,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||p.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=p.min&&(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",p,p.index);mxEvent.consume(b)})),
+u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",y.appendChild(u));t.appendChild(y);return t}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var y=document.createElement("img");
+y.src=Sidebar.prototype.expandedImage;t.appendChild(y);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var A=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(xa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=
+c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;A()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);v.appendChild(x);var C=!1,F=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&v.appendChild(p("id",mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=
+d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var D=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)F=!F;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var N=x.dependentProps,E=[],G=[],t=0;t<N.length;t++){var Q=c.style[N[t]];G.push(d[N[t]].subDefVal);E.push(null!=Q?Q.split(","):[])}x.dependentPropsDefVal=G;x.dependentPropsVals=
+E}v.appendChild(p(B,D,x,C,F));C=!C}}for(t=0;t<u.length;t++)for(x=u[t],d=x.parentRow,c=0;c<x.values.length;c++)B=p(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(v);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,
"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var g="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),l=document.createElement("div");
l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";for(var k=[],m=0;m<this.defaultColorSchemes.length;m++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(m);
k.push(p);l.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=b;n(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),n=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){f.getModel().beginUpdate();try{for(var e=this.format.getSelectionState().cells,l=
@@ -3254,12 +3254,12 @@ b.appendChild(d));return b}}Graph.customFontElements={};Graph.recentCustomFonts=
mxUtils.write(c,'@font-face {\nfont-family: "'+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var f=b.toLowerCase();if("helvetica"!=f&&"arial"!=b&&"sans-serif"!=f){var e=Graph.customFontElements[f];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[f]=e,Graph.recentCustomFonts[f]=
e,d=document.getElementsByTagName("head")[0],null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var f="FONT"==b[d].nodeName?
b[d].getAttribute("face"):b[d].style.fontFamily;null!=f&&Graph.addFont(f,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible=
-"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;var C=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}C.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,
+"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,
"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var f=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d){if("rack"==d.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=
null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}if("undefined"!==typeof mxTableLayout&&"tableLayout"==d.childLayout)return c=new mxTableLayout(this.graph),c.rows=d.tableRows||2,c.columns=d.tableColumns||
2,c.colPercentages=d.colPercentages,c.rowPercentages=d.rowPercentages,c.equalColumns="1"==mxUtils.getValue(d,"equalColumns",c.colPercentages?"0":"1"),c.equalRows="1"==mxUtils.getValue(d,"equalRows",c.rowPercentages?"0":"1"),c.resizeParent="1"==mxUtils.getValue(d,"resizeParent","1"),c.border=d.tableBorder||c.border,c.marginLeft=d.marginLeft||0,c.marginRight=d.marginRight||0,c.marginTop=d.marginTop||0,c.marginBottom=d.marginBottom||0,c.autoAddCol="1"==mxUtils.getValue(d,"autoAddCol","0"),c.autoAddRow=
"1"==mxUtils.getValue(d,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=d.colWidths||"100",c.rowHeights=d.rowHeights||"50",c}return f.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b){return Graph.processFontStyle(x.apply(this,arguments))};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,k,m,p,q){G.apply(this,arguments);Graph.processFontAttributes(q)};
-var A=mxText.prototype.redraw;mxText.prototype.redraw=function(){A.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function f(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();f();l.refresh()}function g(b,c){p.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding",
+var C=mxText.prototype.redraw;mxText.prototype.redraw=function(){C.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function f(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();f();l.refresh()}function g(b,c){p.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding",
"2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var g=0>mxUtils.indexOf(l.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var n=document.createElement("img");n.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);n.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(n,
g?75:25);n.style.verticalAlign="middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";q.appendChild(n);mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),f(),l.refresh());mxEvent.consume(d)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow=
"ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,
@@ -3272,8 +3272,8 @@ u);l.model.addListener(mxEvent.CHANGE,u);l.addListener(mxEvent.REFRESH,u);var v=
Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var E=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return E.apply(this,
arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(D){null!=window.console&&console.log("Error in vars URL parameter: "+D)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):
{}};var J=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=J.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var L=Graph.prototype.getSvg;Graph.prototype.getSvg=
-function(b,d,c,f,e,g,l,k,m,p,q,n,u,v){var x=null,t=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=L.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var y=A.ownerDocument,B=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"style"):y.createElement("style");
-null!=y.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var F="",N="",E=0;E<C.length;E++){var D=C[E].name,G=C[E].url;Graph.isCssFontUrl(G)?F+="@import url("+G+");\n":N+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+G+'");\n}\n'}B.appendChild(y.createTextNode(F+N));A.getElementsByTagName("defs")[0].appendChild(B)}null!=x&&(this.defaultPageBackgroundColor=t,this.stylesheet=x,this.refresh());return A};var H=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=
+function(b,d,c,f,e,g,l,k,m,p,q,n,u,v){var x=null,t=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var y=L.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var A=y.ownerDocument,B=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");
+null!=A.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var F="",N="",E=0;E<C.length;E++){var D=C[E].name,G=C[E].url;Graph.isCssFontUrl(G)?F+="@import url("+G+");\n":N+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+G+'");\n}\n'}B.appendChild(A.createTextNode(F+N));y.getElementsByTagName("defs")[0].appendChild(B)}null!=x&&(this.defaultPageBackgroundColor=t,this.stylesheet=x,this.refresh());return y};var H=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=
function(){var b=H.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=
f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||
this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};
@@ -3312,35 +3312,35 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+
"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var S=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,f,e,g,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
mxStencilRegistry.getStencil(q)}return S.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,p=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,
-d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=K.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(M.value),N=parseInt(O.value),t=Math.min(x.height*N/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(A.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,A.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):
+d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=K.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(M.value),N=parseInt(O.value),t=Math.min(x.height*N/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):
B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
-if("undefined"!==typeof MathJax){var y=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=y.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+if("undefined"!==typeof MathJax){var A=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=A.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,B=g[u].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),
c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=p,d.view.scale=q);return c}var f=parseInt(H.value)/100;isNaN(f)&&(f=1,H.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,p=!q.checked,
-n=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,C.checked,M.value,O.value,parseInt(A.value)/100,parseInt(H.value)/100,K.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,E=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
-(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,E=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=k;l.mathEnabled=x;var y=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:y.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}n=
+n=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,C.checked,M.value,O.value,parseInt(y.value)/100,parseInt(H.value)/100,K.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,E=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
+(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,E=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=k;l.mathEnabled=x;var A=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:A.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}n=
c(l,n,t!=p);l!=e&&l.container.parentNode.removeChild(l.container)}}else n=c(e);null==n?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(n.mathEnabled&&(p=n.wnd.document,d&&(n.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),n.closeDocument(),!n.mathEnabled&&d&&PrintDialog.printPreview(n));null!=g&&(e.stylesheet=g,e.refresh())}}var e=b.editor.graph,g=document.createElement("div"),l=document.createElement("h3");
l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));g.appendChild(l);var k=1,m=1,p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");p.appendChild(q);l=document.createElement("span");
mxUtils.write(l,mxResources.get("printAllPages"));p.appendChild(l);mxUtils.br(p);var n=q.cloneNode(!0);q.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);l=document.createElement("span");
mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+1;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(p),
-n.checked=!0):n.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";x.appendChild(A);
-mxEvent.addListener(A,"focus",function(){t.checked=!0});g.appendChild(x);var p=p.cloneNode(!1),C=t.cloneNode(!0);C.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(C);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),E=N.cloneNode(!0),y=document.createElement("td"),
-G=y.cloneNode(!0),Q=y.cloneNode(!0),J=y.cloneNode(!0),F=y.cloneNode(!0),S=y.cloneNode(!0);y.style.textAlign="right";J.style.textAlign="right";mxUtils.write(y,mxResources.get("fitTo"));var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","1");M.setAttribute("min","1");M.setAttribute("type","number");M.style.width="40px";G.appendChild(M);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));Q.appendChild(l);mxUtils.write(J,
-mxResources.get("fitToBy"));var O=M.cloneNode(!0);F.appendChild(O);mxEvent.addListener(M,"focus",function(){C.checked=!0});mxEvent.addListener(O,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));S.appendChild(l);N.appendChild(y);N.appendChild(G);N.appendChild(Q);E.appendChild(J);E.appendChild(F);E.appendChild(S);B.appendChild(N);B.appendChild(E);x.appendChild(B);p.appendChild(x);g.appendChild(p);p=document.createElement("div");l=
+n.checked=!0):n.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var y=document.createElement("input");y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);
+mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var p=p.cloneNode(!1),C=t.cloneNode(!0);C.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(C);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),E=N.cloneNode(!0),A=document.createElement("td"),
+G=A.cloneNode(!0),Q=A.cloneNode(!0),F=A.cloneNode(!0),J=A.cloneNode(!0),S=A.cloneNode(!0);A.style.textAlign="right";F.style.textAlign="right";mxUtils.write(A,mxResources.get("fitTo"));var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","1");M.setAttribute("min","1");M.setAttribute("type","number");M.style.width="40px";G.appendChild(M);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));Q.appendChild(l);mxUtils.write(F,
+mxResources.get("fitToBy"));var O=M.cloneNode(!0);J.appendChild(O);mxEvent.addListener(M,"focus",function(){C.checked=!0});mxEvent.addListener(O,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));S.appendChild(l);N.appendChild(A);N.appendChild(G);N.appendChild(Q);E.appendChild(F);E.appendChild(J);E.appendChild(S);B.appendChild(N);B.appendChild(E);x.appendChild(B);p.appendChild(x);g.appendChild(p);p=document.createElement("div");l=
document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";
H.setAttribute("value","100 %");H.style.width="60px";p.appendChild(H);g.appendChild(p);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";b.editor.cancelFirst&&l.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);g.appendChild(l);this.container=g};var N=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else N.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 O=document.createElement("canvas"),ia=new Image;ia.onload=function(){try{O.getContext("2d").drawImage(ia,0,0);var b=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(y){}};ia.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(F){}})();
+null!=b&&6<b.length}catch(A){}};ia.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(F){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.3.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.3.4";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="1"==urlParams.dev?"/cache":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&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";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(b,c,e,g,k,q,n){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
"SEVERE";if(EditorUi.enableLogging&&"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";k=null!=k?k:Error(b);(new Image).src=d+"/log?severity="+q+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+
-encodeURIComponent(e)+(null!=g?":colno:"+encodeURIComponent(g):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(C){}try{n||null==window.console||console.error(q,b,c,e,g,k)}catch(C){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):
+encodeURIComponent(e)+(null!=g?":colno:"+encodeURIComponent(g):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(y){}try{n||null==window.console||console.error(q,b,c,e,g,k)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):
"")}catch(l){}};EditorUi.sendReport=function(b,c){if("1"==urlParams.dev)EditorUi.debug("sendReport",b);else if(EditorUi.enableLogging)try{c=null!=c?c:5E4,b.length>c&&(b=b.substring(0,c)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(b))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var b=[(new Date).toISOString()],c=0;c<arguments.length;c++)null!=
arguments[c]&&b.push(arguments[c]);console.log.apply(console,b)}}catch(l){}};EditorUi.parsePng=function(b,c,e){function d(b,d){var c=g;g+=d;return b.substring(c,g)}function f(b){b=d(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var g=0;if(d(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(d(b,4),"IHDR"!=d(b,4))null!=e&&e();else{d(b,17);do{e=f(b);var l=d(b,4);if(null!=c&&c(g-8,l,e))break;value=d(b,e);d(b,4);if("IEND"==
l)break}while(e)}};EditorUi.removeChildNodes=function(b){for(;null!=b.firstChild;)b.removeChild(b.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;";
@@ -3383,18 +3383,18 @@ return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,
mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),
null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),n=k.getChildren(k.root),e=0;e<n.length;e++){var u=n[e];k.setVisible(u,b[u.id]||!1)}}catch(C){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,q,n,u,t,x,G,A){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),n=k.getChildren(k.root),e=0;e<n.length;e++){var u=n[e];k.setVisible(u,b[u.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,q,n,u,t,x,G,C){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();
var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&G?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,
-c){try{var f=this.editor.graph.pageVisible;null!=q&&(this.editor.graph.pageVisible=q);var e=this.createDownloadRequest(d,b,g,c,n,k,u,t,x,G,A);this.editor.graph.pageVisible=f;return e}catch(ia){this.handleError(ia)}}));else{var m=null,p=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;
-if(n||v==mxConstants.NONE)v=null;var C=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(C);this.editor.convertImages(C,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();p(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();p(b)}),g)}}catch(Q){this.handleError(Q)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,q,n,u,t,
+c){try{var f=this.editor.graph.pageVisible;null!=q&&(this.editor.graph.pageVisible=q);var e=this.createDownloadRequest(d,b,g,c,n,k,u,t,x,G,C);this.editor.graph.pageVisible=f;return e}catch(ia){this.handleError(ia)}}));else{var m=null,p=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;
+if(n||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();p(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();p(b)}),g)}}catch(Q){this.handleError(Q)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,q,n,u,t,
x,G){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==q?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=G?m="&from="+G.from+"&to="+G.to:0==q&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&null!=this.currentPage))for(q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){l="&from="+q;break}q=
d.background;"png"!=c&&"pdf"!=c||!k?k||null!=q&&q!=mxConstants.NONE||(q="#ffffff"):q=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+g+"&embedXml="+x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+
(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.getHash=function(){return d};this.fileLoaded(f);"csv"==
b.format&&this.importCsv(e,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var g=null!=b.interval?parseInt(b.interval):6E4,l=null,k=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+
" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,g)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){f(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.warningImage,
b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var g=this.editor.graph,k=g.getModel();k.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var u=k.getCell(b.getAttribute("id"));if(null!=u){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;
-if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(u,x);else for(var G=x.attributes,A=0;A<G.length;A++)g.setAttributeForCell(u,G[A].nodeName,0<G[A].nodeValue.length?G[A].nodeValue:null)}}catch(Q){null!=window.console&&console.log("Error in value for "+u.id+": "+Q)}try{var E=b.getAttribute("style");null!=E&&g.model.setStyle(u,E)}catch(Q){null!=window.console&&console.log("Error in style for "+u.id+": "+Q)}try{var J=b.getAttribute("icon");if(null!=J){var L=0<J.length?JSON.parse(J):null;null!=
+if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(u,x);else for(var G=x.attributes,C=0;C<G.length;C++)g.setAttributeForCell(u,G[C].nodeName,0<G[C].nodeValue.length?G[C].nodeValue:null)}}catch(Q){null!=window.console&&console.log("Error in value for "+u.id+": "+Q)}try{var E=b.getAttribute("style");null!=E&&g.model.setStyle(u,E)}catch(Q){null!=window.console&&console.log("Error in style for "+u.id+": "+Q)}try{var J=b.getAttribute("icon");if(null!=J){var L=0<J.length?JSON.parse(J):null;null!=
L&&L.append||g.removeCellOverlays(u);null!=L&&g.addCellOverlay(u,d(L))}}catch(Q){null!=window.console&&console.log("Error in icon for "+u.id+": "+Q)}try{var H=b.getAttribute("geometry");if(null!=H){var H=JSON.parse(H),K=g.getCellGeometry(u);if(null!=K){K=K.clone();for(key in H){var B=parseFloat(H[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=B:"dh"==key?K.height+=B:K[key]=parseFloat(H[key])}g.model.setGeometry(u,K)}}}catch(Q){null!=window.console&&console.log("Error in icon for "+u.id+
": "+Q)}}}else if("model"==b.nodeName){for(var M=b.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(b.firstChild)).decode(M,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
1);b=b.nextSibling}}finally{k.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,n=g.getDate(),t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+n+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};
@@ -3413,10 +3413,10 @@ function(b){var d=this.sidebar.container;if(null==b){var c=this.sidebar.palettes
e,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,g){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var f=null,l=mxUtils.bind(this,
function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;g=m.getAttribute("title");null!=g&&0<
g.length&&".scratchpad"!=b.title&&m.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";m.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.top=
-"2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var A=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=A?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
+"2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var C=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=C?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
if(b.isEditable()){var E=this.editor.graph,J=null,L=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),H=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=J&&null!=J.parentNode&&J.parentNode.removeChild(J),J=t.cloneNode(!1),J.setAttribute("src",Editor.spinImage),J.setAttribute("title",mxResources.get("saving")),J.style.cursor="default",J.style.marginRight="2px",J.style.marginTop="-2px",n.insertBefore(J,n.firstChild),m.style.paddingRight=
-18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=J&&null!=J.parentNode&&(J.parentNode.removeChild(J),m.style.paddingRight=18*n.childNodes.length+"px")})):null==A&&(A=t.cloneNode(!1),A.setAttribute("src",Editor.saveImage),A.setAttribute("title",mxResources.get("save")),n.insertBefore(A,n.firstChild),mxEvent.addListener(A,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
-A||b.isModified()||(m.style.paddingRight=18*n.childNodes.length+"px",A.parentNode.removeChild(A),A=null)});mxEvent.consume(d)})),m.style.paddingRight=18*n.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=E.cloneCells(mxUtils.sortCells(E.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=E.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
+18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=J&&null!=J.parentNode&&(J.parentNode.removeChild(J),m.style.paddingRight=18*n.childNodes.length+"px")})):null==C&&(C=t.cloneNode(!1),C.setAttribute("src",Editor.saveImage),C.setAttribute("title",mxResources.get("save")),n.insertBefore(C,n.firstChild),mxEvent.addListener(C,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
+C||b.isModified()||(m.style.paddingRight=18*n.childNodes.length+"px",C.parentNode.removeChild(C),C=null)});mxEvent.consume(d)})),m.style.paddingRight=18*n.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=E.cloneCells(mxUtils.sortCells(E.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=E.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);H(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),B=mxUtils.bind(this,function(b){if(E.isSelectionEmpty())E.getRubberband().isActive()?(E.getRubberband().execute(b),E.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=E.getSelectionCells(),c=E.view.getBounds(d),e=E.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=E.view.translate.x;
c.y-=E.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler.first&&(E.graphHandler.suspend(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",E.panningManager.stop(),E.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler&&
(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,E.panningManager.stop(),E.graphHandler.reset(),E.isMouseDown=!1,E.autoScroll=!0,B(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){E.isMouseDown&&null!=E.graphHandler.first&&(E.graphHandler.resume(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",E.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,
@@ -3452,7 +3452,7 @@ b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(t
9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(b,c){var d=new TextareaDialog(this,b,c,null,null,mxResources.get("close"));d.textarea.style.width="600px";d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,g,k,q){"text/xml"!=e||/(\.drawio)$/i.test(c)||
/(\.xml)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=q?q:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=g?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank","_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+
":",b):this.openInNewWindow(b,e,g);else{var d=document.createElement("a");q=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);q=65==(f?parseInt(f[2],10):!1)?!1:q}if(q||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));q?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);
-try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(C){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,q){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=q?"&base64="+q:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=
+try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,q){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=q?"&base64="+q:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=
c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var n=1024*k,t=Math.min(n+1024,e),x=Array(t-n),G=0;n<t;++G,++n)x[G]=d[n].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,q,n,u){q=null!=q?q:!1;n=null!=n?n:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(q);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==
c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,u):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,
d,e,g,c,f)}catch(L){this.handleError(L)}}))}catch(J){this.handleError(J)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,q,n,null,1<k,d,b,e,g);q=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,400,q,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+
@@ -3470,9 +3470,9 @@ null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.max
function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=
function(b,c,e,g,k,q,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){q=null!=q?q:"pdf"==c?"application/pdf":
"image/"+c;if(null!=g)try{this.exportFile(g,b,q,!0,d,e)}catch(J){this.handleError(J)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,q,!0,d,e)}catch(J){this.handleError(J)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),
-mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,f,g,q,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,380,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,q){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,C,x,G,A){if(this.spinner.spin(document.body,
-mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,G,A);g&&this.editor.graph.addSvgShadow(l);var m=this.getBaseFilename()+(k?".drawio":"")+".svg",p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",
-this.getFileData(!0,null,null,null,e,C,null,null,null,!1));var d=Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",d,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.editor.addFontCss(l);this.editor.graph.mathEnabled&&this.editor.addMathCss(l);q?(null==this.thumbImageCache&&
+mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,f,g,q,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,380,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,q){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,q,n,t,y,x,G,C){if(this.spinner.spin(document.body,
+mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,G,C);g&&this.editor.graph.addSvgShadow(l);var m=this.getBaseFilename()+(k?".drawio":"")+".svg",p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",
+this.getFileData(!0,null,null,null,e,y,null,null,null,!1));var d=Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",d,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.editor.addFontCss(l);this.editor.graph.mathEnabled&&this.editor.addMathCss(l);q?(null==this.thumbImageCache&&
(this.thumbImageCache={}),this.editor.convertImages(l,p,this.thumbImageCache)):p(l)}catch(B){this.handleError(B)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,q,n){return this.addCheckbox(b,e,g,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,q,n,t){q=null!=q?q:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked",
"checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");
g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");g.appendChild(e);b.appendChild(g);mxEvent.addListener(g,"change",mxUtils.bind(this,function(){if("custom"==g.value){var b=new FilenameDialog(this,f,mxResources.get("ok"),
@@ -3481,15 +3481,15 @@ function(b,c){function d(){k.innerHTML='<div style="width:100%;height:100%;box-s
f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+
")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var g="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(g||"none",function(b){g=b;d()});mxEvent.consume(b)}));d();k.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";b.appendChild(k);
mxUtils.br(b);return{getColor:function(){return g},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,g,k,q,n){n=null!=n?n:[];g&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=b&&n.push("target="+b),null!=c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&n.push("edit="+encodeURIComponent(k)),q&&n.push("layers=1"),this.editor.graph.foldingEnabled&&
-n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,g,k,q,n,t,C,x){C=this.createUrlParameters(b,c,e,g,k,q,C);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
-(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&C.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(C.push("open="+e.substring(1)),e="");return(g&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<C.length?"?"+C.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,q,n,t,C,x,G,A){this.getBasenames();
-var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");C&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,
-null,null,null,null,!n);c='<div class="mxgraph" style="'+(q?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";A(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+
+n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,g,k,q,n,t,y,x){y=this.createUrlParameters(b,c,e,g,k,q,y);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
+(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&y.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(y.push("open="+e.substring(1)),e="");return(g&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<y.length?"?"+y.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,q,n,t,y,x,G,C){this.getBasenames();
+var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");y&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,
+null,null,null,null,!n);c='<div class="mxgraph" style="'+(q?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";C(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+
"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");
k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");l.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(m);mxUtils.br(l);l.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));l.appendChild(m);var n=this.getCurrentFile();
-null==e&&null!=n&&n.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),A=this.addCheckbox(d,mxResources.get("zoom"),
+null==e&&null!=n&&n.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),C=this.addCheckbox(d,mxResources.get("zoom"),
!0,null,!0);mxUtils.write(d,":");var E=document.createElement("input");E.setAttribute("type","text");E.style.marginRight="16px";E.style.width="60px";E.style.marginLeft="4px";E.style.marginRight="12px";E.value="100%";d.appendChild(E);var J=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(d,mxResources.get("allPages"),l,!l),H=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,
-mxResources.get("lightbox"),!0),M=this.addEditButton(d,B),Q=M.getEditInput();Q.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?Q.removeAttribute("disabled"):Q.setAttribute("disabled","disabled");Q.checked&&B.checked?M.getEditSelect().removeAttribute("disabled"):M.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,A.checked,E.value,t.getTarget(),t.getColor(),J.checked,L.checked,H.checked,K.checked,
+mxResources.get("lightbox"),!0),M=this.addEditButton(d,B),Q=M.getEditInput();Q.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?Q.removeAttribute("disabled"):Q.setAttribute("disabled","disabled");Q.checked&&B.checked?M.getEditSelect().removeAttribute("disabled"):M.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,C.checked,E.value,t.getTarget(),t.getColor(),J.checked,L.checked,H.checked,K.checked,
B.checked,M.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,q){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=l&&l.constructor==
window.DriveFile&&!c){b=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));
p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);d.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,
@@ -3500,14 +3500,14 @@ B.checked&&H.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSele
!1,null)):J.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(k?"10":"4")+"px";d.appendChild(f);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";
l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),
Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/100||1,d=parseInt(m.value)||0;e(!p.checked,null!=n?n.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,
-e,g,k,q,n,t,C){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,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=
+e,g,k,q,n,t,y){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,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%";d.appendChild(p);mxUtils.write(d,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";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft=
-"24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var B=document.createElement("select");B.style.marginTop="16px";B.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(b[m]));M.setAttribute("value",b[m]);B.appendChild(M)}C?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,
-"change",function(){"selectionOnly"==B.value&&(v.checked=!0)})):q&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?C&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,
+"24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var B=document.createElement("select");B.style.marginTop="16px";B.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(b[m]));M.setAttribute("value",b[m]);B.appendChild(M)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,
+"change",function(){"selectionOnly"==B.value&&(v.checked=!0)})):q&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,
"change",function(){B.value=v.checked?"selectionOnly":"diagram"}));var Q=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),S=null;Editor.isDarkMode()&&(S=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");
-c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),l+=30);var ia=null;if("png"==t||"jpeg"==t)ia=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var F=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);F.style.marginBottom="16px";var y=document.createElement("select");y.style.maxWidth="260px";y.style.marginLeft="8px";y.style.marginRight="10px";y.className="geBtn";c=document.createElement("option");
-c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));y.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));y.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));y.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(y),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,Q.checked,!v.checked,N.checked,F.checked,O.checked,u.value,K.checked,!1,y.value,null!=ia?ia.checked:null,null!=S?S.checked:null,B.value)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");
+c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),l+=30);var ia=null;if("png"==t||"jpeg"==t)ia=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var F=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);F.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");
+c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
+mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,Q.checked,!v.checked,N.checked,F.checked,O.checked,u.value,K.checked,!1,A.value,null!=ia?ia.checked:null,null!=S?S.checked:null,B.value)}),null,e,g);this.showDialog(e.container,340,l,!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(b,c,e,g,k){var d=document.createElement("div");
d.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),E=this.addEditButton(d,t),J=E.getEditInput(),L=1<f.model.getChildCount(f.model.getRoot()),
H=this.addCheckbox(d,mxResources.get("layers"),L,!L);H.style.marginLeft=J.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(L&&H.removeAttribute("disabled"),J.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&t.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
function(){b(m.checked,p.checked,n.checked,t.checked,E.getLink(),H.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,q,n,t){function d(d){var c=" ",m="";g&&(c=" 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('"+
@@ -3522,24 +3522,24 @@ b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.l
b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,g,k){try{var d=this.editor.graph,f=null!=d.themes&&"darkTheme"==d.defaultThemeName,l=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
!0),d),l=e;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var p=this.pages[0];this.currentPage==p?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=p.viewState&&null!=p.viewState&&d.setBackgroundImage(p.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:m.apply(this,
arguments)};document.body.appendChild(d.container);d.model.setRoot(p.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(E){null!=c&&c(E)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
-c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,q,n,t,C,x,G,A,E){t=null!=t?t:!0;n=null!=C?C:c.background;n==mxConstants.NONE&&(n=null);q=c.getSvg(n,x,G,null,null,q,null,null,null,c.shadowVisible||A,null,E,"diagram");(c.shadowVisible||A)&&c.addSvgShadow(q);null!=b&&q.setAttribute("content",b);null!=e&&q.setAttribute("resource",e);var d=(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+
+c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,q,n,t,y,x,G,C,E){t=null!=t?t:!0;n=null!=y?y:c.background;n==mxConstants.NONE&&(n=null);q=c.getSvg(n,x,G,null,null,q,null,null,null,c.shadowVisible||C,null,E,"diagram");(c.shadowVisible||C)&&c.addSvgShadow(q);null!=b&&q.setAttribute("content",b);null!=e&&q.setAttribute("resource",e);var d=(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+
Graph.svgDoctype+"\n")+mxUtils.getXml(q);if(null!=k)this.embedFonts(q,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){k(d)})):k(d)}));else return d};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(m){c(b)}}))}catch(l){c(b)}}))};
-EditorUi.prototype.exportImage=function(b,c,e,g,k,n,t,u,C,x,G,A,E){C=null!=C?C:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,k?this.getFileData(!0,null,null,null,e,u):null,C,null==this.pages||0==this.pages.length,G)}catch(H){this.handleError(H)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,g,null,null,n,t,x,A,E)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,t){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=this.editor.graph;if(null!=b&&0<b.length){f.model.beginUpdate();try{var l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,
+EditorUi.prototype.exportImage=function(b,c,e,g,k,n,t,u,y,x,G,C,E){y=null!=y?y:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,k?this.getFileData(!0,null,null,null,e,u):null,y,null==this.pages||0==this.pages.length,G)}catch(H){this.handleError(H)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,g,null,null,n,t,x,C,E)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,t){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=this.editor.graph;if(null!=b&&0<b.length){f.model.beginUpdate();try{var l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,
null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!n){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(b[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var q=p[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,q))}}else if(0<
p.length){n=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),g=!1,v=1);for(;v<p.length;v++){var L=p[v].getAttribute("id");p[v].removeAttribute("id");var H=this.updatePageRoot(new DiagramPage(p[v]));b[L]=p[v].getAttribute("id");var K=this.pages.length;null==H.getName()&&H.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,H,H,K,!0));n.push(H)}this.updatePageLinks(b,
n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);t&&this.insertHandler(d,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(B){if(k)throw B;this.handleError(B)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,
c){var d=document.createElement("div"),e=this.editor.graph,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var g=d.getElementsByTagName("a"),k=!1,n=0;n<g.length;n++)f=g[n].getAttribute("href"),null!=f&&(g[n].setAttribute("href",this.updatePageLink(b,f)),k=!0);k&&e.labelChanged(c,d.innerHTML)}for(n=0;n<e.model.getChildCount(c);n++)this.updatePageLinksForCell(b,e.model.getChildAt(c,n))};EditorUi.prototype.updatePageLink=
function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open="data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c="data:action/json,"+JSON.stringify(e)}}catch(u){}return c};
EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(g);try{var f="UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=
-m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(A){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
+m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(C){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
null!=k&&p.setRequestHeader("x-convert-custom",k);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(L){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,c,e,g)}catch(J){e(J)}else try{""==p.responseType||"text"==p.responseType?e({message:p.responseText}):(d=new FileReader,d.onload=
-function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(J){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(A){e(A)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});
+function(){e({message:JSON.parse(d.result).Message})},d.readAsText(p.response))}catch(J){e({})}});p.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(C){e(C)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});
var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(p){e(p)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||
this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=function(b,c,e){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",
action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(p){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(p){null!=window.console&&console.error(p),e(p)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,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",d)})})})}):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generateMermaidImage=function(b,c,e,g){var d=this,f=function(){try{this.loadingMermaid=!1,c=null!=c?c:EditorUi.defaultMermaidConfig,c.securityLevel="strict",c.startOnLoad=!1,mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=
-b.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(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(A){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(A){g(A)}})}catch(v){g(v)}};
+b.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(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(C){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(C){g(C)}})}catch(v){g(v)}};
"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,c,e,g){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+
b);b-=26;return 0==b?"-":1==b?"_":"?"}var l=new XMLHttpRequest;l.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(l.responseType="blob");l.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==
c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,f=c.height;if(0==b&&0==f){var l=d.result,k=l.indexOf(","),m=decodeURIComponent(escape(atob(l.substring(k+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),f=parseFloat(p[0].getAttribute("height")))}e(d.result,b,f)}catch(B){g(B)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=
@@ -3556,34 +3556,34 @@ b.substring(0,26)||'{"Properties":'==b.substring(0,14))};EditorUi.prototype.impo
function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,g=f.close;this.dialog.close=mxUtils.bind(this,
function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(b,c,e){var d=this,f=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(f){if(0==Object.keys(f.files).length)e();else{var g=0,l,k=!1;f.forEach(function(b,d){var f=d.name.toLowerCase();"diagram/diagram.xml"==f?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?
c(b):e()})):0==f.indexOf("versions/")&&(f=parseInt(f.substr(9)),f>g&&(g=f,l=d))});0<g?l.async("string").then(function(f){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(f,b.name)?d.parseFile(new Blob([f],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,t,u,C,x,G,A){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,t)):d=this.importXml(b,e,g,x,null,null!=A?mxEvent.isControlDown(A):null);null!=u&&u(d)});"image"==c.substring(0,5)?(C=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,
-null,null!=A?mxEvent.isControlDown(A):null),C=!0)),C||(c=this.editor.graph,G=b.indexOf(";"),0<G&&(b=b.substring(0,G)+b.substring(b.indexOf(",",G+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=C&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?
-(d=!0,this.importVisio(C,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,t)?(d=!0,this.parseFile(null!=C?C:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=u&&u(null))}),t)):0==b.indexOf("PK")&&null!=C?(d=!0,this.importZipFile(C,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);u(f)}))):/(\.v(sd|dx))($|\?)/i.test(t)||/(\.vs(s|x))($|\?)/i.test(t)||
-(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=A?mxEvent.isControlDown(A):null));d||null==u||u(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,t,u,C,x,G,A,E){g=null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,p=0;p<b.length;p++)if("image/"==b[p].type.substring(0,6)&&b[p].size>m){l=!0;break}var q=mxUtils.bind(this,
-function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,e,f,g,l,k,m,p,d,A,E)}catch(V){return this.handleError(V),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,q=p,v=[],B=mxUtils.bind(this,function(b,
+!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,t,u,y,x,G,C){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,t)):d=this.importXml(b,e,g,x,null,null!=C?mxEvent.isControlDown(C):null);null!=u&&u(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,
+null,null!=C?mxEvent.isControlDown(C):null),y=!0)),y||(c=this.editor.graph,G=b.indexOf(";"),0<G&&(b=b.substring(0,G)+b.substring(b.indexOf(",",G+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?
+(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,t)?(d=!0,this.parseFile(null!=y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=u&&u(null))}),t)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);u(f)}))):/(\.v(sd|dx))($|\?)/i.test(t)||/(\.vs(s|x))($|\?)/i.test(t)||
+(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=C?mxEvent.isControlDown(C):null));d||null==u||u(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,t,u,y,x,G,C,E){g=null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,p=0;p<b.length;p++)if("image/"==b[p].type.substring(0,6)&&b[p].size>m){l=!0;break}var q=mxUtils.bind(this,
+function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,e,f,g,l,k,m,p,d,C,E)}catch(V){return this.handleError(V),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,q=p,v=[],B=mxUtils.bind(this,function(b,
d){v[b]=d;if(0==--q){this.spinner.stop();if(null!=u)u(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=0;y<p;y++)mxUtils.bind(this,function(d){var p=b[d];if(null!=p){var n=new FileReader;n.onload=mxUtils.bind(this,function(b){if(null==t||t(p))if("image/"==p.type.substring(0,6))if("image/svg"==p.type.substring(0,9)){var n=Graph.clipSvgDataUri(b.target.result),q=n.indexOf(","),u=decodeURIComponent(escape(atob(n.substring(q+
-1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],N=A?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?B(d,mxUtils.bind(this,function(){try{if(n.substring(0,q+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],t=f.getAttribute("width"),
-u=f.getAttribute("height"),t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=f.getAttribute("viewBox");if(null==x||0==x.length)f.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var A=x.split(" ");3<A.length&&(t=parseFloat(A[2]),u=parseFloat(A[3]))}n=Editor.createSvgDataUri(mxUtils.getXml(f));var B=Math.min(1,Math.min(g/Math.max(1,t)),g/Math.max(1,u)),N=k(n,p.type,c+d*m,e+d*m,Math.max(1,Math.round(t*B)),Math.max(1,Math.round(u*
-B)),p.name);if(isNaN(t)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){t=Math.max(1,y.width);u=Math.max(1,y.height);N[0].geometry.width=t;N[0].geometry.height=u;f.setAttribute("viewBox","0 0 "+t+" "+u);n=Editor.createSvgDataUri(mxUtils.getXml(f));var b=n.indexOf(";");0<b&&(n=n.substring(0,b)+n.substring(n.indexOf(",",b+1)));l.setCellStyles("image",n,[N[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return N}}}catch(aa){}return null})):B(d,mxUtils.bind(this,function(){return k(N,
-"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else B(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var y=A?null:this.extractGraphModelFromPng(b.target.result);if(null!=y&&0<y.length){var C=new Image;C.src=b.target.result;B(d,mxUtils.bind(this,function(){return k(y,"text/xml",c+d*m,e+d*m,C.width,C.height,p.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],N=C?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?B(d,mxUtils.bind(this,function(){try{if(n.substring(0,q+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],t=f.getAttribute("width"),
+u=f.getAttribute("height"),t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=f.getAttribute("viewBox");if(null==x||0==x.length)f.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var B=x.split(" ");3<B.length&&(t=parseFloat(B[2]),u=parseFloat(B[3]))}n=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,t)),g/Math.max(1,u)),C=k(n,p.type,c+d*m,e+d*m,Math.max(1,Math.round(t*N)),Math.max(1,Math.round(u*
+N)),p.name);if(isNaN(t)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){t=Math.max(1,y.width);u=Math.max(1,y.height);C[0].geometry.width=t;C[0].geometry.height=u;f.setAttribute("viewBox","0 0 "+t+" "+u);n=Editor.createSvgDataUri(mxUtils.getXml(f));var b=n.indexOf(";");0<b&&(n=n.substring(0,b)+n.substring(n.indexOf(",",b+1)));l.setCellStyles("image",n,[C[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return C}}}catch(aa){}return null})):B(d,mxUtils.bind(this,function(){return k(N,
+"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else B(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var y=C?null:this.extractGraphModelFromPng(b.target.result);if(null!=y&&0<y.length){var A=new Image;A.src=b.target.result;B(d,mxUtils.bind(this,function(){return k(y,"text/xml",c+d*m,e+d*m,A.width,A.height,p.name)}));u=!0}}u||(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(b.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,b.target.result,mxUtils.bind(this,function(b,l,n){B(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var q=f&&this.isResampleImageSize(p.size,G)?Math.min(1,Math.min(g/l,g/n)):1;return k(b,p.type,c+d*m,e+d*m,Math.round(l*q),Math.round(n*q),p.name)}this.handleError({message:mxResources.get("imageTooBig")});
return null}))}),f,g,G,p.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else n=b.target.result,k(n,p.type,c+d*m,e+d*m,240,160,p.name,function(b){B(d,function(){return b})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?k(null,p.type,c+d*m,e+d*m,240,160,p.name,function(b){B(d,function(){return b})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?n.readAsDataURL(p):n.readAsText(p)}})(y)});if(l){l=
-[];for(p=0;p<b.length;p++)l.push(b[p]);b=l;this.confirmImageResize(function(b){f=b;q()},C)}else q()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+[];for(p=0;p<b.length;p++)l.push(b[p]);b=l;this.confirmImageResize(function(b){f=b;q()},y)}else q()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(b){f(b,!0)},function(b){f(b,!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):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var f=new XMLHttpRequest;f.open("POST",
OPEN_URL);f.onreadystatechange=function(){c(f)};f.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(q){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,t){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=t?t:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),p=Math.round(f/
l),q=document.createElement("canvas");q.width=m;q.height=p;q.getContext("2d").drawImage(b,0,0,m,p);var v=q.toDataURL();if(v.length<c.length){var L=document.createElement("canvas");L.width=m;L.height=p;var H=L.toDataURL();v!==H&&(c=v,d=m,f=p)}}}catch(K){}e(c,d,f)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:
-120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(p){if(null!=e)e(p);else throw p;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();this.doSetSketchMode(null!=mxSettings.settings.sketchMode?mxSettings.settings.sketchMode:"1"==urlParams.sketch&&"0"!=urlParams.rough);"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=
-mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),[d]);var m=c.model.getGeometry(d);
-null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:g.format}))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,
-g.config,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=
-function(d,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),null!=g)this.editMermaidData(d,f,g);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(S){b.handleError(S)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(M){b.handleError(M)}return c};
+120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(p){if(null!=e)e(p);else throw p;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"1"==urlParams.sketch&&"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&
+(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),
+[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:g.format}))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&
+b.generateMermaidImage(e,g.config,function(f,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;
+c.cellEditor.startEditing=function(d,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),null!=g)this.editMermaidData(d,f,g);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(S){b.handleError(S)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(M){b.handleError(M)}return c};
var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});return d};var p=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));p.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,
function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:null;if(null!=e){var f=e.indexOf(",");if(0<f)for(var e=e.substring(f+1),f=d.getProperty("patches"),g=0;g<f.length;g++)if(null!=f[g][EditorUi.DIFF_UPDATE]&&null!=f[g][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(b,d){var c=n.apply(this,arguments);
null==c||null==c.originalSrc||d||(c={src:c.originalSrc});return c};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.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 u=b.editor.getEditBlankUrl;
-this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};var C=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};C.call(this,b,d,e)};g.apply(this,arguments);
+this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);
mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=
-mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var A=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
-"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:A.apply(this,arguments)};var E=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))E.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();
+mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var C=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
+"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:C.apply(this,arguments)};var E=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))E.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();
mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var J=this.actions.get("print");J.setEnabled(!mxClient.IS_IOS||!navigator.standalone);J.visible=J.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,
!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=
e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,f,g,k){c.insertImage(b,
@@ -3598,7 +3598,7 @@ b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b
!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var n=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,k,!0,p,null,n,mxEvent.isControlDown(b)))});p&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){n=b;q()},mxEvent.isControlDown(b)):q()}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),
mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",g,k,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+l+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(l,g,k,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
g,k,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=d.clipboardData||d.originalEvent.clipboardData,e=!1,f=0;f<c.types.length;f++)if("text/"===c.types[f].substring(0,5)){e=!0;break}if(!e){var g=
-c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,f,g,k){b.insertImage(d,g,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var n=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(C){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML=
+c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,f,g,k){b.insertImage(d,g,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var n=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML=
"&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily="monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow=
"hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||
c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||g||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),g=!0,e.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!g||224!=d&&17!=
@@ -3613,22 +3613,22 @@ this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEve
this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){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(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));
this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){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(b,c){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(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),f=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,f,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(C){this.handleError(C)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();
+EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),f=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,f,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();
this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(m){this.handleError(m)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,g){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](g)};
EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),f=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(f));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=f,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;
c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,g){var d=this.editor.graph,f=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))f=this.importXml(b,k,k),d.setSelectionCells(f);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),
g);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else f=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),f=this.insertTextAt(b,f.x+k,f.y+k,!0),d.setSelectionCells(f);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),
null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(b,c,e,g){if(!mxEvent.isConsumed(b)){var d=c,f=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var m=decodeURIComponent(k);this.isCompatibleString(m)&&(l=!0,k=m)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),
f="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,l))}k=d.getElementsByTagName("span");if(null!=k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;
-d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{f=f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var n=f.lastIndexOf("%3E");0<=n&&n<f.length-3&&(f=f.substring(0,n+3))}catch(A){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&
-(l=!0,f=m)}catch(A){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,l,b);try{mxEvent.consume(b)}catch(A){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=0}}catch(A){this.handleError(A)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",
+d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{f=f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var n=f.lastIndexOf("%3E");0<=n&&n<f.length-3&&(f=f.substring(0,n+3))}catch(C){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&
+(l=!0,f=m)}catch(C){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,l,b);try{mxEvent.consume(b)}catch(C){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=0}}catch(C){this.handleError(C)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",
mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,
0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=
c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,
function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,g;if(null==b){g=document.body;
var k=document.documentElement;e=(g.clientWidth||k.clientWidth)-3;g=Math.max(g.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,g=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,g-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?
this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,g,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?
-c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(C){this.handleError(C,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,
+c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,
c,g)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==
b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,g)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(u){this.handleError(u,mxResources.get("errorLoadingFile"))}}else if(0==b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,g)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var f=Editor.extractGraphModelFromPdf(b);null!=f&&(k=null,g=!0,
@@ -3640,23 +3640,23 @@ b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]
b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(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);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&
this.installMessageHandler(mxUtils.bind(this,function(b,c,e,g){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);if(null==b||0==b.length)b=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,b,{}));this.mode=App.MODE_EMBED;this.setFileData(b);if(g)try{var d=this.editor.graph;d.setGridEnabled(!1);d.pageVisible=!1;var f=d.model.cells,k;for(k in f){var l=f[k];null!=l&&null!=l.style&&(l.style+=";sketch=1;"+(-1==l.style.indexOf("fontFamily=")||-1<l.style.indexOf("fontFamily=Helvetica;")?
-"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(C){console.log(C)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=
+"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!=e?e:!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(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),
scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(b){var d=null,c=!1,e=!1,g=null,k=mxUtils.bind(this,function(b,d){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,k);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||
window.parent)){var k=f.data,l=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{"data:image/png;base64,"==b.substring(0,22)?b=this.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(ra){}return b});if("json"==urlParams.proto){var m=!1;try{k=
JSON.parse(k)}catch(R){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var p=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):
k.ok,function(b){null!=b?n.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(p.container,300,80,!0,!1);p.init();return}if("draft"==k.action){var q=l(k.xml);this.spinner.stop();p=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),q,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",
result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(p.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));
-try{p.init()}catch(R){n.postMessage(JSON.stringify({event:"draft",error:R.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var t=1==k.enableRecent,u=1==k.enableSearch,v=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var B=this.getCurrentUser(),C=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,
+try{p.init()}catch(R){n.postMessage(JSON.stringify({event:"draft",error:R.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var t=1==k.enableRecent,u=1==k.enableSearch,v=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var B=this.getCurrentUser(),y=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,
builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=B?B.id:null,t?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,u?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",
-null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(C.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}p=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),
+null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(y.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}p=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),
null,null,null,null,null,null,null,t?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,u?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},
0)})}):null,1==k.withoutType);this.showDialog(p.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));p.init();return}if("textContent"==k.action){var Q=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:Q,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));
null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var S=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,S):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var N=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var O=this.editor.graph,
-ia=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=N;n.postMessage(JSON.stringify(d),"*")}),F=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);ia(b)}),y=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():
-this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(N),c=!1);if(null!=this.pages&&this.currentPage.getId()!=y){for(var D=O.getGlobalVariable,O=this.createTemporaryGraph(O.getStylesheet()),Y,I=0;I<this.pages.length;I++)if(this.pages[I].getId()==y){Y=this.updatePageRoot(this.pages[I]);break}null==Y&&(Y=this.currentPage);O.getGlobalVariable=function(b){return"page"==b?Y.getName():"pagenumber"==b?1:D.apply(this,arguments)};document.body.appendChild(O.container);
+ia=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=N;n.postMessage(JSON.stringify(d),"*")}),F=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);ia(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():
+this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(N),c=!1);if(null!=this.pages&&this.currentPage.getId()!=A){for(var D=O.getGlobalVariable,O=this.createTemporaryGraph(O.getStylesheet()),Y,I=0;I<this.pages.length;I++)if(this.pages[I].getId()==A){Y=this.updatePageRoot(this.pages[I]);break}null==Y&&(Y=this.currentPage);O.getGlobalVariable=function(b){return"page"==b?Y.getName():"pagenumber"==b?1:D.apply(this,arguments)};document.body.appendChild(O.container);
O.model.setRoot(Y.root)}if(null!=k.layerIds){for(var ba=O.model,ca=ba.getChildCells(ba.getRoot()),p={},I=0;I<k.layerIds.length;I++)p[k.layerIds[I]]=!0;for(I=0;I<ca.length;I++)ba.setVisible(ca[I],p[ca[I].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){F(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){F(null)}),null,null,k.scale,k.transparent,k.shadow,null,O,k.border,null,k.grid,k.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+
-("xmlpng"==k.format?"1":"0")+(null!=y?"&pageId="+y:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?ia("data:image/png;base64,"+b.getText()):F(null)}),mxUtils.bind(this,function(){F(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);S=this.createLoadMessage("export");
+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?ia("data:image/png;base64,"+b.getText()):F(null)}),mxUtils.bind(this,function(){F(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);S=this.createLoadMessage("export");
S.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var da=this.getXmlFileData();S.xml=mxUtils.getXml(da);S.data=this.getFileData(null,null,!0,null,null,null,da);S.format=k.format}else if("html"==k.format)N=this.editor.getGraphXml(),S.data=this.getHtml(N,this.editor.graph),S.xml=mxUtils.getXml(N),S.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ka=null!=k.background?k.background:this.editor.graph.background;ka==mxConstants.NONE&&
(ka=null);S.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);S.format="svg";var ma=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();S.data=Editor.createSvgDataUri(b);n.postMessage(JSON.stringify(S),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(S.xml,this.editor.graph,null,!0,ma,null,null,k.embedImages,ka,k.scale,k.border,k.shadow,
k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){this.editor.graph.setEnabled(!1);var ga=this.editor.graph.getSvg(ka,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme);(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(ga);this.embedFonts(ga,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
@@ -3673,21 +3673,21 @@ urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMe
c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),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.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g={};if(0<d.length){var k={},n=null,t=null,x=null,G=null,A=null,E=null,J=null,L=null,H=null,K="",B="auto",
-M="auto",Q=null,S=null,N=40,O=40,ia=100,F=0,y=this.editor.graph;y.getGraphBounds();for(var D=function(){null!=c?c(la):(y.setSelectionCells(la),y.scrollCellToVisible(y.getSelectionCell()))},Y=y.getFreeInsertPoint(),I=Y.x,ba=Y.y,Y=ba,ca=null,da="auto",H=null,ka=[],ma=null,ga=null,V=0;V<d.length&&"#"==d[V].charAt(0);){b=d[V];for(V++;V<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[V].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[V].substring(1)),V++;if("#"!=b.charAt(1)){var na=b.indexOf(":");if(0<
-na){var U=mxUtils.trim(b.substring(1,na)),R=mxUtils.trim(b.substring(na+1));"label"==U?ca=y.sanitizeHtml(R):"labelname"==U&&0<R.length&&"-"!=R?A=R:"labels"==U&&0<R.length&&"-"!=R?E=JSON.parse(R):"style"==U?t=R:"parentstyle"==U?J=R:"stylename"==U&&0<R.length&&"-"!=R?G=R:"styles"==U&&0<R.length&&"-"!=R?x=JSON.parse(R):"vars"==U&&0<R.length&&"-"!=R?n=JSON.parse(R):"identity"==U&&0<R.length&&"-"!=R?L=R:"parent"==U&&0<R.length&&"-"!=R?H=R:"namespace"==U&&0<R.length&&"-"!=R?K=R:"width"==U?B=R:"height"==
+EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g={};if(0<d.length){var k={},n=null,t=null,x=null,G=null,C=null,E=null,J=null,L=null,H=null,K="",B="auto",
+M="auto",Q=null,S=null,N=40,O=40,ia=100,F=0,A=this.editor.graph;A.getGraphBounds();for(var D=function(){null!=c?c(la):(A.setSelectionCells(la),A.scrollCellToVisible(A.getSelectionCell()))},Y=A.getFreeInsertPoint(),I=Y.x,ba=Y.y,Y=ba,ca=null,da="auto",H=null,ka=[],ma=null,ga=null,V=0;V<d.length&&"#"==d[V].charAt(0);){b=d[V];for(V++;V<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[V].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[V].substring(1)),V++;if("#"!=b.charAt(1)){var na=b.indexOf(":");if(0<
+na){var U=mxUtils.trim(b.substring(1,na)),R=mxUtils.trim(b.substring(na+1));"label"==U?ca=A.sanitizeHtml(R):"labelname"==U&&0<R.length&&"-"!=R?C=R:"labels"==U&&0<R.length&&"-"!=R?E=JSON.parse(R):"style"==U?t=R:"parentstyle"==U?J=R:"stylename"==U&&0<R.length&&"-"!=R?G=R:"styles"==U&&0<R.length&&"-"!=R?x=JSON.parse(R):"vars"==U&&0<R.length&&"-"!=R?n=JSON.parse(R):"identity"==U&&0<R.length&&"-"!=R?L=R:"parent"==U&&0<R.length&&"-"!=R?H=R:"namespace"==U&&0<R.length&&"-"!=R?K=R:"width"==U?B=R:"height"==
U?M=R:"left"==U&&0<R.length?Q=R:"top"==U&&0<R.length?S=R:"ignore"==U?ga=R.split(","):"connect"==U?ka.push(JSON.parse(R)):"link"==U?ma=R:"padding"==U?F=parseFloat(R):"edgespacing"==U?N=parseFloat(R):"nodespacing"==U?O=parseFloat(R):"levelspacing"==U?ia=parseFloat(R):"layout"==U&&(da=R)}}}if(null==d[V])throw Error(mxResources.get("invalidOrMissingFile"));for(var ra=this.editor.csvToArray(d[V]),U=na=null,R=[],Z=0;Z<ra.length;Z++)L==ra[Z]&&(na=Z),H==ra[Z]&&(U=Z),R.push(mxUtils.trim(ra[Z]).replace(/[^a-z0-9]+/ig,
-"_").replace(/^\d+/,"").replace(/_+$/,""));null==ca&&(ca="%"+R[0]+"%");if(null!=ka)for(var fa=0;fa<ka.length;fa++)null==k[ka[fa].to]&&(k[ka[fa].to]={});L=[];for(Z=V+1;Z<d.length;Z++){var ha=this.editor.csvToArray(d[Z]);if(null==ha){var qa=40<d[Z].length?d[Z].substring(0,40)+"...":d[Z];throw Error(qa+" ("+Z+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&L.push(ha)}y.model.beginUpdate();try{for(Z=0;Z<L.length;Z++){var ha=L[Z],T=null,pa=null!=na?K+ha[na]:null;null!=pa&&(T=y.model.getCell(pa));
-var d=null!=T,aa=new mxCell(ca,new mxGeometry(I,Y,0,0),t||"whiteSpace=wrap;html=1;");aa.vertex=!0;aa.id=pa;for(var ja=0;ja<ha.length;ja++)y.setAttributeForCell(aa,R[ja],ha[ja]);if(null!=A&&null!=E){var P=E[aa.getAttribute(A)];null!=P&&y.labelChanged(aa,P)}if(null!=G&&null!=x){var W=x[aa.getAttribute(G)];null!=W&&(aa.style=W)}y.setAttributeForCell(aa,"placeholders","1");aa.style=y.replacePlaceholders(aa,aa.style,n);d&&(y.model.setGeometry(T,aa.geometry),y.model.setStyle(T,aa.style),0>mxUtils.indexOf(f,
-T)&&f.push(T));T=aa;if(!d)for(fa=0;fa<ka.length;fa++)k[ka[fa].to][T.getAttribute(ka[fa].to)]=T;null!=ma&&"link"!=ma&&(y.setLinkForCell(T,T.getAttribute(ma)),y.setAttributeForCell(T,ma,null));y.fireEvent(new mxEventObject("cellsInserted","cells",[T]));var ta=this.editor.graph.getPreferredSizeForCell(T);T.vertex&&(null!=Q&&null!=T.getAttribute(Q)&&(T.geometry.x=I+parseFloat(T.getAttribute(Q))),null!=S&&null!=T.getAttribute(S)&&(T.geometry.y=ba+parseFloat(T.getAttribute(S))),"@"==B.charAt(0)&&null!=
-T.getAttribute(B.substring(1))?T.geometry.width=parseFloat(T.getAttribute(B.substring(1))):T.geometry.width="auto"==B?ta.width+F:parseFloat(B),"@"==M.charAt(0)&&null!=T.getAttribute(M.substring(1))?T.geometry.height=parseFloat(T.getAttribute(M.substring(1))):T.geometry.height="auto"==M?ta.height+F:parseFloat(M),Y+=T.geometry.height+O);d?(null==g[pa]&&(g[pa]=[]),g[pa].push(T)):(H=null!=U?y.model.getCell(K+ha[U]):null,e.push(T),null!=H?(H.style=y.replacePlaceholders(H,J,n),y.addCell(T,H)):f.push(y.addCell(T)))}for(var sa=
-f.slice(),la=f.slice(),fa=0;fa<ka.length;fa++)for(var Ba=ka[fa],Z=0;Z<e.length;Z++){var T=e[Z],Ea=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&(y.setAttributeForCell(d,c.from,null),""!=e))for(var e=e.split(","),f=0;f<e.length;f++){var g=k[c.to][e[f]];if(null!=g){var l=c.label;null!=c.fromlabel&&(l=(d.getAttribute(c.fromlabel)||"")+(l||""));null!=c.sourcelabel&&(l=y.replacePlaceholders(d,c.sourcelabel,n)+(l||""));null!=c.tolabel&&(l=(l||"")+(g.getAttribute(c.tolabel)||
-""));null!=c.targetlabel&&(l=(l||"")+y.replacePlaceholders(g,c.targetlabel,n));var m="target"==c.placeholders==!c.invert?g:b,m=null!=c.style?y.replacePlaceholders(m,c.style,n):y.createCurrentEdgeStyle(),l=y.insertEdge(null,null,l||"",c.invert?g:b,c.invert?b:g,m);if(null!=c.labels)for(m=0;m<c.labels.length;m++){var p=c.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&
-(q.value=y.replacePlaceholders("target"==p.placeholders==!c.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(c.invert?b:g,sa)}}});Ea(T,T,Ba);if(null!=g[T.id])for(ja=0;ja<g[T.id].length;ja++)Ea(T,g[T.id][ja],Ba)}if(null!=ga)for(Z=0;Z<e.length;Z++)for(T=e[Z],ja=0;ja<ga.length;ja++)y.setAttributeForCell(T,mxUtils.trim(ga[ja]),null);if(0<f.length){var xa=new mxParallelEdgeLayout(y);xa.spacing=N;xa.checkOverlap=
-!0;var Fa=function(){0<xa.spacing&&xa.execute(y.getDefaultParent());for(var b=0;b<f.length;b++){var d=y.getCellGeometry(f[b]);d.x=Math.round(y.snap(d.x));d.y=Math.round(y.snap(d.y));"auto"==B&&(d.width=Math.round(y.snap(d.width)));"auto"==M&&(d.height=Math.round(y.snap(d.height)))}};if("["==da.charAt(0)){var Ja=D;y.view.validate();this.executeLayoutList(JSON.parse(da),function(){Fa();Ja()});D=null}else if("circle"==da){var ya=new mxCircleLayout(y);ya.disableEdgeStyle=!1;ya.resetEdges=!1;var Ia=ya.isVertexIgnored;
-ya.isVertexIgnored=function(b){return Ia.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){ya.execute(y.getDefaultParent());Fa()},!0,D);D=null}else if("horizontaltree"==da||"verticaltree"==da||"auto"==da&&la.length==2*f.length-1&&1==sa.length){y.view.validate();var za=new mxCompactTreeLayout(y,"horizontaltree"==da);za.levelDistance=O;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(y.getDefaultParent(),0<sa.length?sa[0]:null)},!0,D);D=null}else if("horizontalflow"==
-da||"verticalflow"==da||"auto"==da&&1==sa.length){y.view.validate();var wa=new mxHierarchicalLayout(y,"horizontalflow"==da?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=O;wa.parallelEdgeSpacing=N;wa.interRankCellSpacing=ia;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(y.getDefaultParent(),la);y.moveCells(la,I,ba)},!0,D);D=null}else if("organic"==da||"auto"==da&&la.length>f.length){y.view.validate();var va=new mxFastOrganicLayout(y);va.forceConstant=
-3*O;va.disableEdgeStyle=!1;va.resetEdges=!1;var Ca=va.isVertexIgnored;va.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){va.execute(y.getDefaultParent());Fa()},!0,D);D=null}}this.hideDialog()}finally{y.model.endUpdate()}null!=D&&D()}}catch(X){this.handleError(X)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==ca&&(ca="%"+R[0]+"%");if(null!=ka)for(var fa=0;fa<ka.length;fa++)null==k[ka[fa].to]&&(k[ka[fa].to]={});L=[];for(Z=V+1;Z<d.length;Z++){var ha=this.editor.csvToArray(d[Z]);if(null==ha){var qa=40<d[Z].length?d[Z].substring(0,40)+"...":d[Z];throw Error(qa+" ("+Z+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&L.push(ha)}A.model.beginUpdate();try{for(Z=0;Z<L.length;Z++){var ha=L[Z],T=null,pa=null!=na?K+ha[na]:null;null!=pa&&(T=A.model.getCell(pa));
+var d=null!=T,aa=new mxCell(ca,new mxGeometry(I,Y,0,0),t||"whiteSpace=wrap;html=1;");aa.vertex=!0;aa.id=pa;for(var ja=0;ja<ha.length;ja++)A.setAttributeForCell(aa,R[ja],ha[ja]);if(null!=C&&null!=E){var P=E[aa.getAttribute(C)];null!=P&&A.labelChanged(aa,P)}if(null!=G&&null!=x){var W=x[aa.getAttribute(G)];null!=W&&(aa.style=W)}A.setAttributeForCell(aa,"placeholders","1");aa.style=A.replacePlaceholders(aa,aa.style,n);d&&(A.model.setGeometry(T,aa.geometry),A.model.setStyle(T,aa.style),0>mxUtils.indexOf(f,
+T)&&f.push(T));T=aa;if(!d)for(fa=0;fa<ka.length;fa++)k[ka[fa].to][T.getAttribute(ka[fa].to)]=T;null!=ma&&"link"!=ma&&(A.setLinkForCell(T,T.getAttribute(ma)),A.setAttributeForCell(T,ma,null));A.fireEvent(new mxEventObject("cellsInserted","cells",[T]));var ta=this.editor.graph.getPreferredSizeForCell(T);T.vertex&&(null!=Q&&null!=T.getAttribute(Q)&&(T.geometry.x=I+parseFloat(T.getAttribute(Q))),null!=S&&null!=T.getAttribute(S)&&(T.geometry.y=ba+parseFloat(T.getAttribute(S))),"@"==B.charAt(0)&&null!=
+T.getAttribute(B.substring(1))?T.geometry.width=parseFloat(T.getAttribute(B.substring(1))):T.geometry.width="auto"==B?ta.width+F:parseFloat(B),"@"==M.charAt(0)&&null!=T.getAttribute(M.substring(1))?T.geometry.height=parseFloat(T.getAttribute(M.substring(1))):T.geometry.height="auto"==M?ta.height+F:parseFloat(M),Y+=T.geometry.height+O);d?(null==g[pa]&&(g[pa]=[]),g[pa].push(T)):(H=null!=U?A.model.getCell(K+ha[U]):null,e.push(T),null!=H?(H.style=A.replacePlaceholders(H,J,n),A.addCell(T,H)):f.push(A.addCell(T)))}for(var sa=
+f.slice(),la=f.slice(),fa=0;fa<ka.length;fa++)for(var Ba=ka[fa],Z=0;Z<e.length;Z++){var T=e[Z],Ea=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&(A.setAttributeForCell(d,c.from,null),""!=e))for(var e=e.split(","),f=0;f<e.length;f++){var g=k[c.to][e[f]];if(null!=g){var l=c.label;null!=c.fromlabel&&(l=(d.getAttribute(c.fromlabel)||"")+(l||""));null!=c.sourcelabel&&(l=A.replacePlaceholders(d,c.sourcelabel,n)+(l||""));null!=c.tolabel&&(l=(l||"")+(g.getAttribute(c.tolabel)||
+""));null!=c.targetlabel&&(l=(l||"")+A.replacePlaceholders(g,c.targetlabel,n));var m="target"==c.placeholders==!c.invert?g:b,m=null!=c.style?A.replacePlaceholders(m,c.style,n):A.createCurrentEdgeStyle(),l=A.insertEdge(null,null,l||"",c.invert?g:b,c.invert?b:g,m);if(null!=c.labels)for(m=0;m<c.labels.length;m++){var p=c.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&
+(q.value=A.replacePlaceholders("target"==p.placeholders==!c.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(c.invert?b:g,sa)}}});Ea(T,T,Ba);if(null!=g[T.id])for(ja=0;ja<g[T.id].length;ja++)Ea(T,g[T.id][ja],Ba)}if(null!=ga)for(Z=0;Z<e.length;Z++)for(T=e[Z],ja=0;ja<ga.length;ja++)A.setAttributeForCell(T,mxUtils.trim(ga[ja]),null);if(0<f.length){var xa=new mxParallelEdgeLayout(A);xa.spacing=N;xa.checkOverlap=
+!0;var Fa=function(){0<xa.spacing&&xa.execute(A.getDefaultParent());for(var b=0;b<f.length;b++){var d=A.getCellGeometry(f[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==B&&(d.width=Math.round(A.snap(d.width)));"auto"==M&&(d.height=Math.round(A.snap(d.height)))}};if("["==da.charAt(0)){var Ja=D;A.view.validate();this.executeLayoutList(JSON.parse(da),function(){Fa();Ja()});D=null}else if("circle"==da){var ya=new mxCircleLayout(A);ya.disableEdgeStyle=!1;ya.resetEdges=!1;var Ia=ya.isVertexIgnored;
+ya.isVertexIgnored=function(b){return Ia.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){ya.execute(A.getDefaultParent());Fa()},!0,D);D=null}else if("horizontaltree"==da||"verticaltree"==da||"auto"==da&&la.length==2*f.length-1&&1==sa.length){A.view.validate();var za=new mxCompactTreeLayout(A,"horizontaltree"==da);za.levelDistance=O;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(A.getDefaultParent(),0<sa.length?sa[0]:null)},!0,D);D=null}else if("horizontalflow"==
+da||"verticalflow"==da||"auto"==da&&1==sa.length){A.view.validate();var wa=new mxHierarchicalLayout(A,"horizontalflow"==da?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=O;wa.parallelEdgeSpacing=N;wa.interRankCellSpacing=ia;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(A.getDefaultParent(),la);A.moveCells(la,I,ba)},!0,D);D=null}else if("organic"==da||"auto"==da&&la.length>f.length){A.view.validate();var va=new mxFastOrganicLayout(A);va.forceConstant=
+3*O;va.disableEdgeStyle=!1;va.resetEdges=!1;var Ca=va.isVertexIgnored;va.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){va.execute(A.getDefaultParent());Fa()},!0,D);D=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=D&&D()}}catch(X){this.handleError(X)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>
mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};
EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&
d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);
@@ -3702,7 +3702,7 @@ c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):""
"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};u&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,d){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(d||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==
g,!0,!1,!1,n,!0,!1,null,u,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.getIndexableText()+
" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var d={},c=document.createElement("div");c.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+
-IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var C=JSON.parse(decodeURIComponent(t.substring(1)));k[C[0]]={id:C[0],title:C[1],downloadUrl:C[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<
+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<
b.length;c++){var e=b[c];k[e.id]&&(d[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,c){mxEvent.addListener(c,"change",function(){this.checked?d[b.id]=b:delete d[b.id]})})(e,f)}},mxUtils.bind(this,function(b){g.innerHTML="";var d=document.createElement("div");d.style.padding="8px";d.style.textAlign="center";mxUtils.write(d,mxResources.get("error")+": ");mxUtils.write(d,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(d)}));c.appendChild(g);c=new CustomDialog(this,
c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,c;for(c in d)null==k[c]&&(b++,mxUtils.bind(this,function(d){this.remoteInvoke("getFileContent",[d.downloadUrl],null,mxUtils.bind(this,function(c){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,d))}catch(J){this.handleError(J,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(d[c]));
for(c in k)d[c]||this.closeLibrary(new RemoteLibrary(this,null,k[c]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.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"]}};
@@ -3722,31 +3722,31 @@ function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};
null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();
return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language",
"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,n,t,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,g,k,n,t,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
-return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,u,C,x,G,A,E,J,L,H){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,u,C,x,G,A,E,J,L,H)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
+return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,n,t,u,y,x,G,C,E,J,L,H){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,n,t,u,y,x,G,C,E,J,L,H)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=
function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=
urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k="<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;
var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(b,c,e,k,g,n){function t(){for(var b=A.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==A&&c++;E.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}C={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
-"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();C=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);C=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
+var CommentsWindow=function(b,c,e,k,g,n){function t(){for(var b=C.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==C&&c++;E.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(p.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,g,k,n){function B(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});G.appendChild(f);e&&(f.style.display="none")}function N(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(B,function(b){B.id=b;c.replies.push(B);p(x);g&&g()},function(c){A();m(x);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function A(){d(B,x,function(b){u()},!0)}var v=N().pdiv,B=b.newComment(e,b.getCurrentUser());B.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(B,c.replies,v,k+1);f?A():u()}if(n||!c.isResolved){E.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});G.appendChild(f);e&&(f.style.display="none")}function N(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(C,function(b){C.id=b;c.replies.push(C);p(x);g&&g()},function(c){v();m(x);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(C,x,function(b){u()},!0)}var B=N().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(C,c.replies,B,k+1);f?v():u()}if(n||!c.isResolved){E.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
var I=document.createElement("div");I.className="geCommentHeader";var S=document.createElement("img");S.className="geCommentUserImg";S.src=c.user.pictureUrl||Editor.userImage;I.appendChild(S);S=document.createElement("div");S.className="geCommentHeaderTxt";I.appendChild(S);var J=document.createElement("div");J.className="geCommentUsername";mxUtils.write(J,c.user.displayName||"");S.appendChild(J);J=document.createElement("div");J.className="geCommentDate";J.setAttribute("data-commentId",c.id);f(c,
J);S.appendChild(J);O.appendChild(I);I=document.createElement("div");I.className="geCommentTxt";mxUtils.write(I,c.content||"");O.appendChild(I);c.isLocked&&(O.style.opacity="0.5");I=document.createElement("div");I.className="geCommentActions";var G=document.createElement("ul");G.className="geCommentActionsList";I.appendChild(G);v||c.isLocked||0!=k&&!u||B(mxResources.get("reply"),function(){x("",!0)},c.isResolved);S=b.getCurrentUser();null==S||S.id!=c.user.id||v||c.isLocked||(B(mxResources.get("edit"),
function(){function e(){d(c,O,function(){l(O);c.editComment(c.content,function(){p(O)},function(c){m(O);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),B(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(O);c.deleteComment(function(b){if(!0===b){b=O.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=O.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.style.opacity="0.5"}else{d=N(c).replies;for(b=0;b<d.length;b++)A.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}E.style.display=0==A.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=k||B(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.style.opacity="0.5"}else{d=N(c).replies;for(b=0;b<d.length;b++)C.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}E.style.display=0==C.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=k||B(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=N(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);H||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(I);null!=g?A.insertBefore(O,g.nextSibling):A.appendChild(O);for(g=0;null!=c.replies&&g<c.replies.length;g++)I=c.replies[g],I.isResolved=c.isResolved,q(I,c.replies,null,k+1,n);null!=C&&(C.comment.id==c.id?(n=c.content,c.content=C.comment.content,d(c,O,C.saveCallback,C.deleteOnCancel),c.content=n):null==C.comment.id&&C.comment.pCommentId==c.id&&(A.appendChild(C.div),d(C.comment,C.div,C.saveCallback,C.deleteOnCancel)));return O}}
-var v=!b.canComment(),u=b.canReplyToReplies(),C=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",A=document.createElement("div");A.className="geCommentsList";A.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";A.style.bottom=parseInt(G)+7+"px";x.appendChild(A);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
+d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(I);null!=g?C.insertBefore(O,g.nextSibling):C.appendChild(O);for(g=0;null!=c.replies&&g<c.replies.length;g++)I=c.replies[g],I.isResolved=c.isResolved,q(I,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,O,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(C.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return O}}
+var v=!b.canComment(),u=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",C=document.createElement("div");C.className="geCommentsList";C.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";C.style.bottom=parseInt(G)+7+"px";x.appendChild(C);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(E,mxResources.get("noCommentsFound"));var J=document.createElement("div");J.className="geToolbarContainer geCommentsToolbar";J.style.height=G;J.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";J.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!v){var L=G.cloneNode();L.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';L.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(L,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});J.appendChild(L)}L=G.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
var H=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(b){this.className=(H=!H)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});J.appendChild(L);b.commentsRefreshNeeded()&&(L=G.cloneNode(),L.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',L.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(L.style.filter="invert(100%)"),mxEvent.addListener(L,"click",function(b){B();
-b.preventDefault();mxEvent.consume(b)}),J.appendChild(L));b.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),J.appendChild(G));x.appendChild(J);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=C)try{C.div=C.div.cloneNode(!0);
-var c=C.div.querySelector(".geCommentEditTxtArea"),e=C.div.querySelector(".geCommentEditBtns");C.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}A.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
-new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});A.innerHTML="";A.appendChild(E);E.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),q(K[b],K,null,0,H);null!=C&&null==C.comment.id&&null==C.comment.pCommentId&&(A.appendChild(C.div),d(C.comment,C.div,C.saveCallback,C.deleteOnCancel))},mxUtils.bind(this,function(b){A.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):A.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;J=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=A.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(J,6E4);this.refreshCommentsTime=J;this.window=
+b.preventDefault();mxEvent.consume(b)}),J.appendChild(L));b.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){n();b.preventDefault();mxEvent.consume(b)}),J.appendChild(G));x.appendChild(J);var K=[],B=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
+var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}C.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});C.innerHTML="";C.appendChild(E);E.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),q(K[b],K,null,0,H);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(C.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){C.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+": "+b.message:""));this.hasError=!0})):C.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});B();this.refreshComments=B;J=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=C.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(J,6E4);this.refreshCommentsTime=J;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,g,!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()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var M=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",M);this.destroy=function(){mxEvent.removeListener(window,"resize",M);this.window.destroy()}},ConfirmDialog=function(b,c,e,
k,g,n,t,d,f,l,m){var p=document.createElement("div");p.style.textAlign="center";m=null!=m?m:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=m+"px";q.style.lineHeight="1.2em";mxUtils.write(q,c);p.appendChild(q);null!=l&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),q.appendChild(c),p.appendChild(q));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
@@ -3822,31 +3822,31 @@ f=new EmbedDialog(this,this.getLinkForPage(b,c,f));this.showDialog(f.container,4
b)?e:void 0})),null!=k.relatedPage.root&&b.encodeCell(k.relatedPage.root,g));return g};b.beforeDecode=function(b,c,g){g.ui=b.ui;g.relatedPage=g.ui.getPageById(c.getAttribute("relatedPage"));if(null==g.relatedPage){var e=c.ownerDocument.createElement("diagram");e.setAttribute("id",c.getAttribute("relatedPage"));e.setAttribute("name",c.getAttribute("name"));g.relatedPage=new DiagramPage(e);e=c.getAttribute("viewState");null!=e&&(g.relatedPage.viewState=JSON.parse(e),c.removeAttribute("viewState"));
c=c.cloneNode(!0);e=c.firstChild;if(null!=e)for(g.relatedPage.root=b.decodeCell(e,!1),g=e.nextSibling,e.parentNode.removeChild(e),e=g;null!=e;){g=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var k=e.getAttribute("id");null==b.lookup(k)&&b.decodeCell(e)}e.parentNode.removeChild(e);e=g}}return c};b.afterDecode=function(b,c,g){g.index=g.previousIndex;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,n,t,d){e=null!=e?e:!1;null==n&&(n=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=n.slice(),g=0;g<n.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(n[g]),"treeFolding","0")&&this.foldTreeCell(c,n[g]);n=f;n=b.apply(this,arguments)}finally{this.model.endUpdate()}return n};Graph.prototype.foldTreeCell=
function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var g=0;g<e.length;g++)this.model.setVisible(e[g],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,f){return this.model.filterCells(this.getEdges(b,
-c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return C.isVertex(b)&&e(b)}function c(b){var c=
-!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=C.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=C.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
+c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return y.isVertex(b)&&e(b)}function c(b){var c=
+!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=u.cloneCells([f[0],b]);u.model.setTerminal(g[0],u.model.getTerminal(f[0],
!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;u.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=u.view.getState(b),n=u.view.scale;if(null!=m){var p=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?p.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*n:p.y+=(c?
-b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,A=l=f=0;A<q.length;A++){var v=u.model.getTerminal(q[A],!1);if(k==d(v)){var B=u.view.getState(v);v!=b&&null!=B&&(t&&c!=B.getCenterX()<m.getCenterX()||!t&&c!=B.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,B)&&(f=10+Math.max(f,(Math.min(p.x+p.width,B.x+B.width)-Math.max(p.x,B.x))/n),l=10+Math.max(l,(Math.min(p.y+
-p.height,B.y+B.height)-Math.max(p.y,B.y))/n))}}t?l=0:f=0;for(A=0;A<q.length;A++)if(v=u.model.getTerminal(q[A],!1),k==d(v)&&(B=u.view.getState(v),v!=b&&null!=B&&(t&&c!=B.getCenterX()<m.getCenterX()||!t&&c!=B.getCenterY()<m.getCenterY()))){var x=[];u.traverse(B.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&x.push(c);(null==c||d)&&x.push(b);return null==c||d});u.moveCells(x,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function l(b){u.model.beginUpdate();try{var c=
+b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<q.length;v++){var B=u.model.getTerminal(q[v],!1);if(k==d(B)){var C=u.view.getState(B);B!=b&&null!=C&&(t&&c!=C.getCenterX()<m.getCenterX()||!t&&c!=C.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,C)&&(f=10+Math.max(f,(Math.min(p.x+p.width,C.x+C.width)-Math.max(p.x,C.x))/n),l=10+Math.max(l,(Math.min(p.y+
+p.height,C.y+C.height)-Math.max(p.y,C.y))/n))}}t?l=0:f=0;for(v=0;v<q.length;v++)if(B=u.model.getTerminal(q[v],!1),k==d(B)&&(C=u.view.getState(B),B!=b&&null!=C&&(t&&c!=C.getCenterX()<m.getCenterX()||!t&&c!=C.getCenterY()<m.getCenterY()))){var x=[];u.traverse(C.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&x.push(c);(null==c||d)&&x.push(b);return null==c||d});u.moveCells(x,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function l(b){u.model.beginUpdate();try{var c=
d(b),e=u.getIncomingTreeEdges(b),f=u.cloneCells([e[0],b]);u.model.setTerminal(e[0],f[1],!1);u.model.setTerminal(f[0],f[1],!0);u.model.setTerminal(f[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(f,g)}finally{u.model.endUpdate()}}function m(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(V){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),A=u.view.translate,B=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
-(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-A.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-A.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
-(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/B-A.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function p(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
+if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(V){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,B=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
+(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/B-v.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function p(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
d.y-d.height})}return e}function q(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?v.actions.get("selectParent").funct():e==c?(f=u.getOutgoingTreeEdges(b),null!=f&&0<f.length&&u.setSelectionCell(u.model.getTerminal(f[0],!1))):(e=u.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=p(u.model.getTerminal(e[0],!0),f,b),e=u.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
-c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,C=u.getModel(),x=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
+c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,y=u.getModel(),x=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
0<u.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<u.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};v.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&
1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=u.getOutgoingTreeEdges(u.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+S");v.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);null!=b&&0<b.length&&u.setSelectionCell(u.model.getTerminal(b[0],
!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(b,c){var d=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))u.setSelectionCells(u.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];u.traverse(d,!0,function(b,d){var f=null!=d&&u.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}u.setSelectionCells(e)}},null,null,"Alt+Shift+D");
-var G=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];C.isEdge(k)&&e(k)&&(f.push(k),k=C.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
-f;return G.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var A=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=A.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
+var G=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
+f;return G.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var C=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=C.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var E=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
-!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var A=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=A){var B=u.view.getState(n);null!=B&&(d=(B.getCenterX()-A.getCenterX())/u.view.scale,e=(B.getCenterY()-A.getCenterY())/u.view.scale)}}}}m=E.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
+!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var B=u.view.getState(n);null!=B&&(d=(B.getCenterX()-v.getCenterX())/u.view.scale,e=(B.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=E.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==u.model.getParent(c[q]))p=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var J=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=J.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var L={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},H=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(u.getSelectionCell()):m(u.getSelectionCell()):13==c.which&&(d=f(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=L[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(q(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(F){v.handleError(F)}mxEvent.isConsumed(c)||H.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(c,e,g,k,n,p,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var A=d(c),B=A==mxConstants.DIRECTION_EAST||A==mxConstants.DIRECTION_WEST,v=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return A==e||0==t.length?m(c,e):B==v?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(d){var e=
+mxEvent.consume(c))}}catch(F){v.handleError(F)}mxEvent.isConsumed(c)||H.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(c,e,g,k,n,p,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),B=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==t.length?m(c,e):B==C?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(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(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};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 Q=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){Q.apply(this,
@@ -3901,31 +3901,31 @@ b.appendChild(c)}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("t
"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c));"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geMenuItem",c.style.marginLeft="6px",c.style.padding="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c));this.buttonContainer.appendChild(b);this.buttonContainer.style.top=
"6px"}};var p=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(b,c){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,b)){var d=mxUtils.getOffset(this.editorUi.picker);d.x+=this.editorUi.picker.offsetWidth+4;d.y+=b.offsetTop-c.height/2+16;return d}var e=p.apply(this,arguments),d=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);e.x+=d.x-16;e.y+=d.y;return e};var q=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=
function(b,c,d){var e=this.editorUi.editor.graph;b.smartSeparators=!0;q.apply(this,arguments);"1"==urlParams.sketch?e.isEnabled()&&(b.addSeparator(),1==e.getSelectionCount()&&this.addMenuItems(b,["-","lockUnlock"],null,d)):1==e.getSelectionCount()?(e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(b,e.isCellCollapsed(c)?["expand"]:["collapse"],null,d),this.addMenuItems(b,["collapsible","-","lockUnlock","enterGroup"],null,d),b.addSeparator(),this.addSubmenu("layout",b)):e.isSelectionEmpty()&&
-e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(b.addSeparator(),"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"]),(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"]),this.addMenuItems(b,["-","fullscreen"]))};
-var v=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){v.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=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);u.apply(this,arguments)};var C=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){C.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"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 x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";
-d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));
-f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});d.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text",
-"formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,
-mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],
-c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();"1"!=urlParams.sketch&&(d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),b.addSeparator(c));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),
-c):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&d.menus.addMenuItems(b,["-","save"],c),("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&d.menus.addMenuItems(b,["saveAndExit"],c),b.addSeparator(c)):(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,["-","findReplace","layers","tags"],c);"1"!=urlParams.sketch&&null!=
-e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));d.menus.addMenuItems(b,["-","pageSetup","pageScale"],c);mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);"1"==urlParams.sketch&&(b.addSeparator(c),d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),e=d.getCurrentFile(),null!=e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||
-/(\.svg)$/i.test(e)||this.addMenuItems(b,["properties"],c)),b.addSeparator(c));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?d.menus.addMenuItems(b,["-","exit"],c):d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&
-"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,
-c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);b.addSeparator(c);d.menus.addSubmenu("embed",b,c)})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,
-function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);b.addSeparator(c);d.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand".split(" "),c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],c);b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?
-(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,
-!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,
-mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var G=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=n.menus.get(b),f=u.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),t);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top=
-"6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));n.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
-"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin=
-"0px");null!=n.statusContainer?q.insertBefore(k,n.statusContainer):q.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
+e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(this.addMenuItems(b,["-","fullscreen"]),(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"]))};var v=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=
+function(b,c,d){v.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=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);u.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;
+EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"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 x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;
+d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});d.actions.put("importCsv",new Action(mxResources.get("csv")+
+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text","formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==
+urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",
+new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=
+function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();"1"!=urlParams.sketch&&(d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),b.addSeparator(c));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&d.menus.addMenuItems(b,["-","save"],c),("1"==
+urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&d.menus.addMenuItems(b,["saveAndExit"],c),b.addSeparator(c)):(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),
+d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,["-","findReplace","layers","tags"],c);"1"!=urlParams.sketch&&null!=e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||
+/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));d.menus.addMenuItems(b,["-","pageSetup","pageScale"],c);mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);"1"==urlParams.sketch&&(b.addSeparator(c),d.menus.addSubmenu("extras",b,c,mxResources.get("preferences")),e=d.getCurrentFile(),null!=e&&null!=d.fileNode&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["properties"],c)),b.addSeparator(c));
+b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?d.menus.addMenuItems(b,["-","exit"],c):d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,
+["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,
+["publishLink"],c);b.addSeparator(c);d.menus.addSubmenu("embed",b,c)})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,
+c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);b.addSeparator(c);d.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand".split(" "),c);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.menus.addMenuItems(b,
+["-","showStartScreen","search","scratchpad"],c);b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,
+["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",
+new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,
+function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var G=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=n.menus.get(b),f=u.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),t);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight=
+"6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));n.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",
+f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=
+n.statusContainer?q.insertBefore(k,n.statusContainer):q.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),p.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";
d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=n.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(d,n.statusContainer):q.appendChild(d);return d}function k(){for(var b=q.firstChild;null!=b;){var c=
b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}t=q.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));"1"==urlParams.sketch?ba.style.left=58>I.offsetTop-I.offsetHeight/2?"70px":"10px":(c=b?d("diagram",null,Editor.drawLogoImage):null,null!=c&&(k=c),g([k,f(mxResources.get("shapes"),n.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),
@@ -3938,7 +3938,7 @@ var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMi
this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var n=this,p=n.editor.graph;n.toolbar=this.createToolbar(n.createDiv("geToolbar"));n.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(n,q);n.statusContainer=n.createStatusContainer();n.statusContainer.style.position="relative";n.statusContainer.style.maxWidth="";n.statusContainer.style.marginTop=
"7px";n.statusContainer.style.marginLeft="6px";n.statusContainer.style.color="gray";n.statusContainer.style.cursor="default";var v=n.hideCurrentMenu;n.hideCurrentMenu=function(){v.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var x=n.descriptorChanged;n.descriptorChanged=function(){x.apply(this,arguments);var b=n.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");
c=mxResources.get(c);q.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else q.removeAttribute("title")};n.setStatusText(n.editor.getStatus());q.appendChild(n.statusContainer);n.buttonContainer=document.createElement("div");n.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";q.appendChild(n.buttonContainer);n.menubarContainer=n.buttonContainer;n.tabContainer=document.createElement("div");n.tabContainer.className=
-"geTabContainer";n.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=n.diagramContainer.parentNode,C=document.createElement("div");C.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";n.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=n.menus.get("viewZoom"),D="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,Y="1"==urlParams.sketch?
+"geTabContainer";n.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=n.diagramContainer.parentNode,y=document.createElement("div");y.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";n.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var A=n.menus.get("viewZoom"),D="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,Y="1"==urlParams.sketch?
document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,ba="1"==urlParams.sketch?document.createElement("div"):null,ca=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));p.refresh();p.view.validateBackground()});n.addListener("darkModeChanged",
ca);n.addListener("sketchModeChanged",ca);Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!p.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=n.hoverIcons){var da=n.hoverIcons.update;n.hoverIcons.update=function(){p.freehand.isDrawing()||da.apply(this,arguments)}}if(null!=p.freehand){var ka=p.freehand.createStyle;p.freehand.createStyle=
function(b){return ka.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){I.className="geToolbarContainer";Y.className="geToolbarContainer";ba.className="geToolbarContainer";q.className="geToolbarContainer";n.picker=I;var ma=!1;mxEvent.addListener(q,"mouseenter",function(){n.statusContainer.style.display="inline-block"});mxEvent.addListener(q,"mouseleave",function(){ma||(n.statusContainer.style.display="none")});var ga=mxUtils.bind(this,function(b){null!=n.notificationBtn&&(null!=b?n.notificationBtn.setAttribute("title",
@@ -3953,18 +3953,18 @@ n.statusContainer.style.textOverflow="ellipsis";n.buttonContainer.style.position
d.geometry.width=p.defaultEdgeLength+20;d.geometry.setTerminalPoint(new mxPoint(0,20),!0);d.geometry.setTerminalPoint(new mxPoint(d.geometry.width,20),!1);b=c(n.sidebar.createEdgeTemplateFromCells([d],d.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(n.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);
var e=n.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",D);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(n.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}I.appendChild(V)});mxEvent.addListener(V,"click",mxUtils.bind(this,function(){na?(mxUtils.setPrefixedStyle(I.style,"transform","translate(0, -50%)"),I.style.padding=
"8px 6px 4px",I.style.top="50%",I.style.bottom="",I.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),na=!1,U()):(I.innerHTML="",I.appendChild(V),mxUtils.setPrefixedStyle(I.style,"transform","translate(0, 0)"),I.style.top="",I.style.bottom="12px",I.style.padding="0px",I.style.height="24px",V.style.height="24px",V.style.backgroundImage="url("+Editor.plusImage+")",V.setAttribute("title",
-mxResources.get("insert")),V.style.width="24px",na=!0)}));U();n.addListener("darkModeChanged",U);n.addListener("sketchModeChanged",U)}else n.editor.addListener("statusChanged",mxUtils.bind(this,function(){n.setStatusText(n.editor.getStatus())}));if(null!=y){var ca=function(b){p.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?n.actions.get("customZoom").funct():n.actions.get("smartFit").funct()},R=n.actions.get("zoomIn"),ra=n.actions.get("zoomOut"),Z=n.actions.get("resetView"),fa=n.actions.get("fullscreen");
-n.actions.get("toggleDarkMode");var ha=n.actions.get("undo"),qa=n.actions.get("redo"),T=f("",ha.funct,null,mxResources.get("undo")+" ("+ha.shortcut+")",ha,Editor.undoImage),pa=f("",qa.funct,null,mxResources.get("redo")+" ("+qa.shortcut+")",qa,Editor.redoImage);if(null!=Y){var aa=n.actions.get("delete"),ja=f("",aa.funct,null,mxResources.get("delete"),aa,Editor.trashImage);ja.style.opacity="0.1";ba.appendChild(ja);aa.addListener("stateChanged",function(){ja.style.opacity=aa.enabled?"":"0.1"});y=function(){T.style.display=
-0<n.editor.undoManager.history.length||p.isEditing()?"inline-block":"none";pa.style.display=T.style.display;T.style.opacity=ha.enabled?"":"0.1";pa.style.opacity=qa.enabled?"":"0.1"};ba.appendChild(T);ba.appendChild(pa);ha.addListener("stateChanged",y);qa.addListener("stateChanged",y);y();null!=urlParams.layers&&(y=n.actions.get("layers"),y=f("",y.funct,null,mxResources.get("layers"),y,Editor.layersImage),y.style.opacity="0.4",Y.appendChild(y));null!=urlParams.tags&&(y=n.actions.get("tags"),y=f("",
-y.funct,null,mxResources.get("tags"),y,Editor.tagsImage),y.style.opacity="0.4",Y.appendChild(y));y=n.actions.get("outline");y=f("",y.funct,null,mxResources.get("outline"),y,Editor.outlineImage);Y.appendChild(y);y=f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",ra,Editor.zoomOutImage);Y.appendChild(y);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display=
+mxResources.get("insert")),V.style.width="24px",na=!0)}));U();n.addListener("darkModeChanged",U);n.addListener("sketchModeChanged",U)}else n.editor.addListener("statusChanged",mxUtils.bind(this,function(){n.setStatusText(n.editor.getStatus())}));if(null!=A){var ca=function(b){p.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?n.actions.get("customZoom").funct():n.actions.get("smartFit").funct()},R=n.actions.get("zoomIn"),ra=n.actions.get("zoomOut"),Z=n.actions.get("resetView"),fa=n.actions.get("fullscreen");
+n.actions.get("toggleDarkMode");var ha=n.actions.get("undo"),qa=n.actions.get("redo"),T=f("",ha.funct,null,mxResources.get("undo")+" ("+ha.shortcut+")",ha,Editor.undoImage),pa=f("",qa.funct,null,mxResources.get("redo")+" ("+qa.shortcut+")",qa,Editor.redoImage);if(null!=Y){var aa=n.actions.get("delete"),ja=f("",aa.funct,null,mxResources.get("delete"),aa,Editor.trashImage);ja.style.opacity="0.1";ba.appendChild(ja);aa.addListener("stateChanged",function(){ja.style.opacity=aa.enabled?"":"0.1"});A=function(){T.style.display=
+0<n.editor.undoManager.history.length||p.isEditing()?"inline-block":"none";pa.style.display=T.style.display;T.style.opacity=ha.enabled?"":"0.1";pa.style.opacity=qa.enabled?"":"0.1"};ba.appendChild(T);ba.appendChild(pa);ha.addListener("stateChanged",A);qa.addListener("stateChanged",A);A();null!=urlParams.layers&&(A=n.actions.get("layers"),A=f("",A.funct,null,mxResources.get("layers"),A,Editor.layersImage),A.style.opacity="0.4",Y.appendChild(A));null!=urlParams.tags&&(A=n.actions.get("tags"),A=f("",
+A.funct,null,mxResources.get("tags"),A,Editor.tagsImage),A.style.opacity="0.4",Y.appendChild(A));A=n.actions.get("outline");A=f("",A.funct,null,mxResources.get("outline"),A,Editor.outlineImage);Y.appendChild(A);A=f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",ra,Editor.zoomOutImage);Y.appendChild(A);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display=
"inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";Y.appendChild(P);mxEvent.addListener(P,"click",ca);ca=f("",R.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",R,Editor.zoomInImage);Y.appendChild(ca);var W=this.createPageMenuTab(!1);W.style.display="none";
W.style.position="";W.style.marginLeft="";W.style.top="";W.style.left="";W.style.height="100%";W.style.lineHeight="";W.style.borderStyle="none";W.style.padding="3px 0";W.style.margin="0px";W.style.background="";W.style.border="";W.style.boxShadow="none";W.style.verticalAlign="top";W.firstChild.style.height="100%";W.firstChild.style.opacity="0.6";W.firstChild.style.margin="0px";Y.appendChild(W);n.addListener("fileDescriptorChanged",function(){W.style.display="1"==urlParams.pages||null!=n.pages&&1<
n.pages.length?"inline-block":"none"});n.tabContainer.style.visibility="hidden";q.style.cssText="position:absolute;right:12px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";ba.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";
-Y.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";C.appendChild(ba);C.appendChild(Y);I.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";C.appendChild(I);window.setTimeout(function(){mxUtils.setPrefixedStyle(I.style,
-"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(C)}else{f("",fa.funct,null,mxResources.get("fullscreen"),fa,Editor.fullscreenImage);var ta=f("",ca,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,Editor.zoomFitImage);q.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=u.addMenu("100%",y.funct);P.setAttribute("title",mxResources.get("zoom")+
+Y.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";y.appendChild(ba);y.appendChild(Y);I.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";y.appendChild(I);window.setTimeout(function(){mxUtils.setPrefixedStyle(I.style,
+"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(y)}else{f("",fa.funct,null,mxResources.get("fullscreen"),fa,Editor.fullscreenImage);var ta=f("",ca,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,Editor.zoomFitImage);q.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=u.addMenu("100%",A.funct);P.setAttribute("title",mxResources.get("zoom")+
" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(n.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(n.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
-"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";C.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*n.editor.graph.view.scale)+"%"});n.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);n.editor.addListener("resetGraphView",c);n.editor.addListener("pageSelected",c)})(P);var sa=n.setGraphEnabled;n.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
-this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==Y?this.tabContainerHeight+"px":"0px")}}C.appendChild(q);C.appendChild(n.diagramContainer);l.appendChild(C);n.updateTabContainer();null==Y&&C.appendChild(n.tabContainer);var la=null;k();mxEvent.addListener(window,"resize",function(){k();null!=n.sidebarWindow&&n.sidebarWindow.window.fit();null!=n.formatWindow&&n.formatWindow.window.fit();null!=n.actions.outlineWindow&&n.actions.outlineWindow.window.fit();
+"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";y.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*n.editor.graph.view.scale)+"%"});n.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);n.editor.addListener("resetGraphView",c);n.editor.addListener("pageSelected",c)})(P);var sa=n.setGraphEnabled;n.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
+this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==Y?this.tabContainerHeight+"px":"0px")}}y.appendChild(q);y.appendChild(n.diagramContainer);l.appendChild(y);n.updateTabContainer();null==Y&&y.appendChild(n.tabContainer);var la=null;k();mxEvent.addListener(window,"resize",function(){k();null!=n.sidebarWindow&&n.sidebarWindow.window.fit();null!=n.formatWindow&&n.formatWindow.window.fit();null!=n.actions.outlineWindow&&n.actions.outlineWindow.window.fit();
null!=n.actions.layersWindow&&n.actions.layersWindow.window.fit();null!=n.menus.tagsWindow&&n.menus.tagsWindow.window.fit();null!=n.menus.findWindow&&n.menus.findWindow.window.fit();null!=n.menus.findReplaceWindow&&n.menus.findReplaceWindow.window.fit()})}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\n');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="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><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="#000000"/><add as="fontColor" value="#000000"/></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="#ffffff"/><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="#ffffff"/><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="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><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="#ffffff"/></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=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="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><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="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></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="#2a2a2a"/><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="#2a2a2a"/><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="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><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="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
@@ -4005,9 +4005,9 @@ function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cur
e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var k=null,g=null,n=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);k=window.setTimeout(mxUtils.bind(this,
function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";g=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),n())}));mxEvent.addListener(e,mxClient.IS_POINTER?
"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,f=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():t(30))}})}for(var l=this.toolbarItems,m=0,p=null,q=null,v=null,u=null,C=0;C<l.length;C++){var x=l[C];if("pages"==x){u=c.ownerDocument.createElement("div");
-u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var G=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");G.style.borderRightStyle="none";G.style.paddingLeft="0px";G.style.paddingRight="0px";e.appendChild(u);var A=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
-1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");A.style.paddingLeft="0px";A.style.paddingRight="0px";x=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";G.style.display=u.style.display;A.style.display=u.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
+this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():t(30))}})}for(var l=this.toolbarItems,m=0,p=null,q=null,v=null,u=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){u=c.ownerDocument.createElement("div");
+u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var G=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");G.style.borderRightStyle="none";G.style.paddingLeft="0px";G.style.paddingRight="0px";e.appendChild(u);var C=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");C.style.paddingLeft="0px";C.style.paddingRight="0px";x=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";G.style.display=u.style.display;C.style.display=u.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var E=this.graph.getModel(),J=b(mxUtils.bind(this,function(b){if(null!=p)p.parentNode.removeChild(p),
p=null;else{p=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});b=J.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor="#eee";p.style.fontFamily=Editor.defaultHtmlFont;p.style.fontSize=
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index 3aedc4a4..322a4c70 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"15.3.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/"),
+var mxClient={VERSION:"15.3.4",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),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]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index 84fd61ef..1882d54e 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 i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(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:"7ab3c1d876728eda6eb6655f7d446de2"},{url:"js/extensions.min.js",revision:"86e02cae3cde5ed3af4ffd256c6bcf57"},{url:"js/stencils.min.js",revision:"8ada746d21157d3d47e6ad3abbbcc3ab"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"28ab148081b0ccd22ad2db634d538b6b"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"6b64770d730b2848ed0021d766e6b507"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"77427462d26edffec48051812b9cf844"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"375a89b2a867264a395f384d00eeba13"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{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:"ec6e55011746305549024292f46270bd"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"74878fb4834967aa4a68647cab7888c1"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"293aa21acaf0a3349686f420b2be874a"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8ce5887817b32603d1dcd23a1011989d"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"374099e93482baae432490d9e55e4e24"},{url:"connect/confluence/includeDiagram.html",revision:"538252ed4fed6d5e9f4e53b35954c116"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_am.txt",revision:"ff59ef2ea422e962065b978f74f1989e"},{url:"resources/dia_ar.txt",revision:"b53a2876e65d205d42c0217216db0a0b"},{url:"resources/dia_bg.txt",revision:"5ae6ea7a2b816b32ded88cb15651dbfc"},{url:"resources/dia_bn.txt",revision:"f8775fef4398d0863d1c95b92f778f14"},{url:"resources/dia_bs.txt",revision:"1a5bbe8e6e02b215c7457d9735ada682"},{url:"resources/dia_ca.txt",revision:"d8ac61cb5b3e5d47f9ce8160c8b2f057"},{url:"resources/dia_cs.txt",revision:"aeaa9d93c19d60a9ab385a21d57f025c"},{url:"resources/dia_da.txt",revision:"5e0221a99a3fdf557b5ccf72965d99b2"},{url:"resources/dia_de.txt",revision:"d3ad299dc8cfbd2a34479edfafce74ad"},{url:"resources/dia_el.txt",revision:"80761a88228f85296bfc029bf5340718"},{url:"resources/dia_eo.txt",revision:"4544b6600298fe72d2d516fd135c54fa"},{url:"resources/dia_es.txt",revision:"863e0e73d4cdf95093461ef0157e13e5"},{url:"resources/dia_et.txt",revision:"3a47c1b462102c60e47e0f7d6e07d379"},{url:"resources/dia_eu.txt",revision:"92c451283a83cae2d83460b1b0aaf1c4"},{url:"resources/dia_fa.txt",revision:"c56a53dac116441fac2a6e6a110b4fcf"},{url:"resources/dia_fi.txt",revision:"fcc968a8202ebe596bb4efa31d5c55b7"},{url:"resources/dia_fil.txt",revision:"0c98b10b2ce7660502fab8f8a09216c0"},{url:"resources/dia_fr.txt",revision:"550ba55018af500d82b2ade74f49d6a6"},{url:"resources/dia_gl.txt",revision:"d9dedee9a17ce0e98cac6a641dbd1b17"},{url:"resources/dia_gu.txt",revision:"6d6d7e768e1d255dcb9f9abf87676787"},{url:"resources/dia_he.txt",revision:"404b9e323e5bbbecb63ea4a58385431a"},{url:"resources/dia_hi.txt",revision:"8c4436fda7e9278685d9d5d6e0942ae9"},{url:"resources/dia_hr.txt",revision:"38cf52a7e23c4e8796d0cbb7ea217f7e"},{url:"resources/dia_hu.txt",revision:"e17887d5e7057c80ec1da14fe7749c52"},{url:"resources/dia_id.txt",revision:"32c8349f2744c3b6023fd17742eb1c2c"},{url:"resources/dia_it.txt",revision:"57eba100f012d139d00543c31060cf04"},{url:"resources/dia_ja.txt",revision:"cbb7bea7bd120272c6dfe0d6f0ca85f4"},{url:"resources/dia_kn.txt",revision:"ca9045d8ab0d3c8448228187c8ba77cd"},{url:"resources/dia_ko.txt",revision:"ea4948e5456ac276658b0071172dee82"},{url:"resources/dia_lt.txt",revision:"05955be58d94abc2707dea99394a60db"},{url:"resources/dia_lv.txt",revision:"47aa1bcdd23457cd5f3026db7a357fc9"},{url:"resources/dia_ml.txt",revision:"5735f8afcd3fb73882147629d044e368"},{url:"resources/dia_mr.txt",revision:"8e891bbae07ac6fbe9038e8d19fb66fd"},{url:"resources/dia_ms.txt",revision:"ea1992800627d8e54c54d54d1078cd50"},{url:"resources/dia_my.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_nl.txt",revision:"a158a142f848a44f4b9a86b2c71de770"},{url:"resources/dia_no.txt",revision:"a73fe6de8d13ff09b57022c6152de435"},{url:"resources/dia_pl.txt",revision:"a731cde706b7b10c2bb9b8b804ecf99e"},{url:"resources/dia_pt-br.txt",revision:"099ff3baec465f1f42dd417d4f3d6a03"},{url:"resources/dia_pt.txt",revision:"5fdec4aa7a49475cc6d3a8b4a2a8ce75"},{url:"resources/dia_ro.txt",revision:"e2485ba528fffc006ddc16a2bdbba588"},{url:"resources/dia_ru.txt",revision:"4e4dff4df4bb635eab4648a31718bb71"},{url:"resources/dia_si.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_sk.txt",revision:"aa39fa602751e960c408b51bc4d1e9a3"},{url:"resources/dia_sl.txt",revision:"a1e9ea18592a3520a564da53754435f1"},{url:"resources/dia_sr.txt",revision:"ee7f392d230f3acf9ee64e59912d2240"},{url:"resources/dia_sv.txt",revision:"d1af4adc3abc689e2b2877348fe3a80e"},{url:"resources/dia_sw.txt",revision:"ee11057cc33d2db3915810afa98e4fb8"},{url:"resources/dia_ta.txt",revision:"64633496007987935476811363899867"},{url:"resources/dia_te.txt",revision:"b67de98cc3819f31d6aedc4a8e332d3f"},{url:"resources/dia_th.txt",revision:"bf3564b735dddb73bafa110e1ba4f364"},{url:"resources/dia_tr.txt",revision:"e66e3a8530b0bda46ff6de26598a637b"},{url:"resources/dia_uk.txt",revision:"1ea94afcd9c9383c784ceae2896c8af4"},{url:"resources/dia_vi.txt",revision:"2ea8a953b560713a201dff1d8d3917dd"},{url:"resources/dia_zh-tw.txt",revision:"7a19eef01a4ee231cc05d3b3833bba4f"},{url:"resources/dia_zh.txt",revision:"f609cb57ae40941ae6c8165f89d7aed0"},{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 i=Promise.resolve();return a[e]||(i=new Promise((async i=>{if("document"in self){const a=document.createElement("script");a.src=e,document.head.appendChild(a),a.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!a[e])throw new Error(`Module ${e} didn’t register its module`);return a[e]}))},i=(i,a)=>{Promise.all(i.map(e)).then((e=>a(1===e.length?e[0]:e)))},a={require:Promise.resolve(i)};self.define=(i,r,c)=>{a[i]||(a[i]=Promise.resolve().then((()=>{let a={};const s={uri:location.origin+i.slice(1)};return Promise.all(r.map((i=>{switch(i){case"exports":return a;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return a.default||(a.default=i),a}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(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:"88c821b5aca2a00d86ad83280143cd39"},{url:"js/extensions.min.js",revision:"86e02cae3cde5ed3af4ffd256c6bcf57"},{url:"js/stencils.min.js",revision:"8ada746d21157d3d47e6ad3abbbcc3ab"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"28ab148081b0ccd22ad2db634d538b6b"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"6b64770d730b2848ed0021d766e6b507"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"52a489a7a4045f102bef077cb8ece8c9"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"375a89b2a867264a395f384d00eeba13"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{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:"ec6e55011746305549024292f46270bd"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"74878fb4834967aa4a68647cab7888c1"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"293aa21acaf0a3349686f420b2be874a"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8ce5887817b32603d1dcd23a1011989d"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"374099e93482baae432490d9e55e4e24"},{url:"connect/confluence/includeDiagram.html",revision:"538252ed4fed6d5e9f4e53b35954c116"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_am.txt",revision:"ff59ef2ea422e962065b978f74f1989e"},{url:"resources/dia_ar.txt",revision:"b53a2876e65d205d42c0217216db0a0b"},{url:"resources/dia_bg.txt",revision:"5ae6ea7a2b816b32ded88cb15651dbfc"},{url:"resources/dia_bn.txt",revision:"f8775fef4398d0863d1c95b92f778f14"},{url:"resources/dia_bs.txt",revision:"1a5bbe8e6e02b215c7457d9735ada682"},{url:"resources/dia_ca.txt",revision:"d8ac61cb5b3e5d47f9ce8160c8b2f057"},{url:"resources/dia_cs.txt",revision:"aeaa9d93c19d60a9ab385a21d57f025c"},{url:"resources/dia_da.txt",revision:"5e0221a99a3fdf557b5ccf72965d99b2"},{url:"resources/dia_de.txt",revision:"d3ad299dc8cfbd2a34479edfafce74ad"},{url:"resources/dia_el.txt",revision:"80761a88228f85296bfc029bf5340718"},{url:"resources/dia_eo.txt",revision:"4544b6600298fe72d2d516fd135c54fa"},{url:"resources/dia_es.txt",revision:"863e0e73d4cdf95093461ef0157e13e5"},{url:"resources/dia_et.txt",revision:"3a47c1b462102c60e47e0f7d6e07d379"},{url:"resources/dia_eu.txt",revision:"92c451283a83cae2d83460b1b0aaf1c4"},{url:"resources/dia_fa.txt",revision:"c56a53dac116441fac2a6e6a110b4fcf"},{url:"resources/dia_fi.txt",revision:"fcc968a8202ebe596bb4efa31d5c55b7"},{url:"resources/dia_fil.txt",revision:"0c98b10b2ce7660502fab8f8a09216c0"},{url:"resources/dia_fr.txt",revision:"550ba55018af500d82b2ade74f49d6a6"},{url:"resources/dia_gl.txt",revision:"d9dedee9a17ce0e98cac6a641dbd1b17"},{url:"resources/dia_gu.txt",revision:"6d6d7e768e1d255dcb9f9abf87676787"},{url:"resources/dia_he.txt",revision:"404b9e323e5bbbecb63ea4a58385431a"},{url:"resources/dia_hi.txt",revision:"8c4436fda7e9278685d9d5d6e0942ae9"},{url:"resources/dia_hr.txt",revision:"38cf52a7e23c4e8796d0cbb7ea217f7e"},{url:"resources/dia_hu.txt",revision:"e17887d5e7057c80ec1da14fe7749c52"},{url:"resources/dia_id.txt",revision:"32c8349f2744c3b6023fd17742eb1c2c"},{url:"resources/dia_it.txt",revision:"57eba100f012d139d00543c31060cf04"},{url:"resources/dia_ja.txt",revision:"cbb7bea7bd120272c6dfe0d6f0ca85f4"},{url:"resources/dia_kn.txt",revision:"ca9045d8ab0d3c8448228187c8ba77cd"},{url:"resources/dia_ko.txt",revision:"ea4948e5456ac276658b0071172dee82"},{url:"resources/dia_lt.txt",revision:"05955be58d94abc2707dea99394a60db"},{url:"resources/dia_lv.txt",revision:"47aa1bcdd23457cd5f3026db7a357fc9"},{url:"resources/dia_ml.txt",revision:"5735f8afcd3fb73882147629d044e368"},{url:"resources/dia_mr.txt",revision:"8e891bbae07ac6fbe9038e8d19fb66fd"},{url:"resources/dia_ms.txt",revision:"ea1992800627d8e54c54d54d1078cd50"},{url:"resources/dia_my.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_nl.txt",revision:"a158a142f848a44f4b9a86b2c71de770"},{url:"resources/dia_no.txt",revision:"a73fe6de8d13ff09b57022c6152de435"},{url:"resources/dia_pl.txt",revision:"a731cde706b7b10c2bb9b8b804ecf99e"},{url:"resources/dia_pt-br.txt",revision:"099ff3baec465f1f42dd417d4f3d6a03"},{url:"resources/dia_pt.txt",revision:"5fdec4aa7a49475cc6d3a8b4a2a8ce75"},{url:"resources/dia_ro.txt",revision:"e2485ba528fffc006ddc16a2bdbba588"},{url:"resources/dia_ru.txt",revision:"4e4dff4df4bb635eab4648a31718bb71"},{url:"resources/dia_si.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_sk.txt",revision:"aa39fa602751e960c408b51bc4d1e9a3"},{url:"resources/dia_sl.txt",revision:"a1e9ea18592a3520a564da53754435f1"},{url:"resources/dia_sr.txt",revision:"ee7f392d230f3acf9ee64e59912d2240"},{url:"resources/dia_sv.txt",revision:"d1af4adc3abc689e2b2877348fe3a80e"},{url:"resources/dia_sw.txt",revision:"ee11057cc33d2db3915810afa98e4fb8"},{url:"resources/dia_ta.txt",revision:"64633496007987935476811363899867"},{url:"resources/dia_te.txt",revision:"b67de98cc3819f31d6aedc4a8e332d3f"},{url:"resources/dia_th.txt",revision:"bf3564b735dddb73bafa110e1ba4f364"},{url:"resources/dia_tr.txt",revision:"e66e3a8530b0bda46ff6de26598a637b"},{url:"resources/dia_uk.txt",revision:"1ea94afcd9c9383c784ceae2896c8af4"},{url:"resources/dia_vi.txt",revision:"2ea8a953b560713a201dff1d8d3917dd"},{url:"resources/dia_zh-tw.txt",revision:"7a19eef01a4ee231cc05d3b3833bba4f"},{url:"resources/dia_zh.txt",revision:"f609cb57ae40941ae6c8165f89d7aed0"},{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 2acc80d4..951ea713 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":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/72da3a2d31f4016e28712383ed697730/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/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\": \"7ab3c1d876728eda6eb6655f7d446de2\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"86e02cae3cde5ed3af4ffd256c6bcf57\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"8ada746d21157d3d47e6ad3abbbcc3ab\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"28ab148081b0ccd22ad2db634d538b6b\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"6b64770d730b2848ed0021d766e6b507\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\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\": \"77427462d26edffec48051812b9cf844\"\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\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"375a89b2a867264a395f384d00eeba13\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\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\": \"ec6e55011746305549024292f46270bd\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"74878fb4834967aa4a68647cab7888c1\"\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\": \"293aa21acaf0a3349686f420b2be874a\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8ce5887817b32603d1dcd23a1011989d\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\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\": \"374099e93482baae432490d9e55e4e24\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"538252ed4fed6d5e9f4e53b35954c116\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"ff59ef2ea422e962065b978f74f1989e\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"b53a2876e65d205d42c0217216db0a0b\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"5ae6ea7a2b816b32ded88cb15651dbfc\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"f8775fef4398d0863d1c95b92f778f14\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"1a5bbe8e6e02b215c7457d9735ada682\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"d8ac61cb5b3e5d47f9ce8160c8b2f057\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"aeaa9d93c19d60a9ab385a21d57f025c\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"5e0221a99a3fdf557b5ccf72965d99b2\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"d3ad299dc8cfbd2a34479edfafce74ad\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"80761a88228f85296bfc029bf5340718\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"4544b6600298fe72d2d516fd135c54fa\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"863e0e73d4cdf95093461ef0157e13e5\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"3a47c1b462102c60e47e0f7d6e07d379\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"92c451283a83cae2d83460b1b0aaf1c4\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"c56a53dac116441fac2a6e6a110b4fcf\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"fcc968a8202ebe596bb4efa31d5c55b7\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"0c98b10b2ce7660502fab8f8a09216c0\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"550ba55018af500d82b2ade74f49d6a6\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"d9dedee9a17ce0e98cac6a641dbd1b17\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"6d6d7e768e1d255dcb9f9abf87676787\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"404b9e323e5bbbecb63ea4a58385431a\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"8c4436fda7e9278685d9d5d6e0942ae9\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"38cf52a7e23c4e8796d0cbb7ea217f7e\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"e17887d5e7057c80ec1da14fe7749c52\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"32c8349f2744c3b6023fd17742eb1c2c\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"57eba100f012d139d00543c31060cf04\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"cbb7bea7bd120272c6dfe0d6f0ca85f4\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"ca9045d8ab0d3c8448228187c8ba77cd\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"ea4948e5456ac276658b0071172dee82\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"05955be58d94abc2707dea99394a60db\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"47aa1bcdd23457cd5f3026db7a357fc9\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"5735f8afcd3fb73882147629d044e368\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"8e891bbae07ac6fbe9038e8d19fb66fd\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"ea1992800627d8e54c54d54d1078cd50\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a158a142f848a44f4b9a86b2c71de770\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"a73fe6de8d13ff09b57022c6152de435\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"a731cde706b7b10c2bb9b8b804ecf99e\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"099ff3baec465f1f42dd417d4f3d6a03\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"5fdec4aa7a49475cc6d3a8b4a2a8ce75\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e2485ba528fffc006ddc16a2bdbba588\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"4e4dff4df4bb635eab4648a31718bb71\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"aa39fa602751e960c408b51bc4d1e9a3\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"a1e9ea18592a3520a564da53754435f1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"ee7f392d230f3acf9ee64e59912d2240\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"d1af4adc3abc689e2b2877348fe3a80e\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"ee11057cc33d2db3915810afa98e4fb8\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"64633496007987935476811363899867\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"b67de98cc3819f31d6aedc4a8e332d3f\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"bf3564b735dddb73bafa110e1ba4f364\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"e66e3a8530b0bda46ff6de26598a637b\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"1ea94afcd9c9383c784ceae2896c8af4\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"2ea8a953b560713a201dff1d8d3917dd\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"7a19eef01a4ee231cc05d3b3833bba4f\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f609cb57ae40941ae6c8165f89d7aed0\"\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"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,mCACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/624d8287a1ae089f5ca52b6865d0e967/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/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\": \"88c821b5aca2a00d86ad83280143cd39\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"86e02cae3cde5ed3af4ffd256c6bcf57\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"8ada746d21157d3d47e6ad3abbbcc3ab\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"28ab148081b0ccd22ad2db634d538b6b\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"6b64770d730b2848ed0021d766e6b507\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\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\": \"52a489a7a4045f102bef077cb8ece8c9\"\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\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"375a89b2a867264a395f384d00eeba13\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\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\": \"ec6e55011746305549024292f46270bd\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"74878fb4834967aa4a68647cab7888c1\"\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\": \"293aa21acaf0a3349686f420b2be874a\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8ce5887817b32603d1dcd23a1011989d\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\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\": \"374099e93482baae432490d9e55e4e24\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"538252ed4fed6d5e9f4e53b35954c116\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"ff59ef2ea422e962065b978f74f1989e\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"b53a2876e65d205d42c0217216db0a0b\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"5ae6ea7a2b816b32ded88cb15651dbfc\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"f8775fef4398d0863d1c95b92f778f14\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"1a5bbe8e6e02b215c7457d9735ada682\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"d8ac61cb5b3e5d47f9ce8160c8b2f057\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"aeaa9d93c19d60a9ab385a21d57f025c\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"5e0221a99a3fdf557b5ccf72965d99b2\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"d3ad299dc8cfbd2a34479edfafce74ad\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"80761a88228f85296bfc029bf5340718\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"4544b6600298fe72d2d516fd135c54fa\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"863e0e73d4cdf95093461ef0157e13e5\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"3a47c1b462102c60e47e0f7d6e07d379\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"92c451283a83cae2d83460b1b0aaf1c4\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"c56a53dac116441fac2a6e6a110b4fcf\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"fcc968a8202ebe596bb4efa31d5c55b7\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"0c98b10b2ce7660502fab8f8a09216c0\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"550ba55018af500d82b2ade74f49d6a6\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"d9dedee9a17ce0e98cac6a641dbd1b17\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"6d6d7e768e1d255dcb9f9abf87676787\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"404b9e323e5bbbecb63ea4a58385431a\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"8c4436fda7e9278685d9d5d6e0942ae9\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"38cf52a7e23c4e8796d0cbb7ea217f7e\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"e17887d5e7057c80ec1da14fe7749c52\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"32c8349f2744c3b6023fd17742eb1c2c\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"57eba100f012d139d00543c31060cf04\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"cbb7bea7bd120272c6dfe0d6f0ca85f4\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"ca9045d8ab0d3c8448228187c8ba77cd\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"ea4948e5456ac276658b0071172dee82\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"05955be58d94abc2707dea99394a60db\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"47aa1bcdd23457cd5f3026db7a357fc9\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"5735f8afcd3fb73882147629d044e368\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"8e891bbae07ac6fbe9038e8d19fb66fd\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"ea1992800627d8e54c54d54d1078cd50\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a158a142f848a44f4b9a86b2c71de770\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"a73fe6de8d13ff09b57022c6152de435\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"a731cde706b7b10c2bb9b8b804ecf99e\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"099ff3baec465f1f42dd417d4f3d6a03\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"5fdec4aa7a49475cc6d3a8b4a2a8ce75\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e2485ba528fffc006ddc16a2bdbba588\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"4e4dff4df4bb635eab4648a31718bb71\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"aa39fa602751e960c408b51bc4d1e9a3\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"a1e9ea18592a3520a564da53754435f1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"ee7f392d230f3acf9ee64e59912d2240\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"d1af4adc3abc689e2b2877348fe3a80e\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"ee11057cc33d2db3915810afa98e4fb8\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"64633496007987935476811363899867\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"b67de98cc3819f31d6aedc4a8e332d3f\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"bf3564b735dddb73bafa110e1ba4f364\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"e66e3a8530b0bda46ff6de26598a637b\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"1ea94afcd9c9383c784ceae2896c8af4\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"2ea8a953b560713a201dff1d8d3917dd\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"7a19eef01a4ee231cc05d3b3833bba4f\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f609cb57ae40941ae6c8165f89d7aed0\"\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"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,mCACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
diff --git a/src/main/webapp/styles/grapheditor.css b/src/main/webapp/styles/grapheditor.css
index 4ccd8251..3b5e4806 100644
--- a/src/main/webapp/styles/grapheditor.css
+++ b/src/main/webapp/styles/grapheditor.css
@@ -797,6 +797,9 @@ html td.mxWindowTitle {
color:rgb(112, 112, 112);
padding:4px;
}
+table.geProperties {
+ table-layout:fixed;
+}
table.geProperties tr td {
height:21px;
}
@@ -824,7 +827,10 @@ table.geProperties tr td {
}
.gePropRowCell {
border-left: 1px solid #f3f3f3;
- width: 50%;
+ white-space:nowrap;
+ text-overflow:ellipsis;
+ overflow:hidden;
+ max-width: 50%;
}
.gePropRow>.gePropRowCell {
background: #fff;