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-07-22 20:13:12 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-07-22 20:13:12 +0300
commit649abe9b246ecf9b4261a10ac8382e3c206131aa (patch)
tree43dfc48f06dc86e1de43278d0937492e8da0dfe4
parentd60ab053c39cf9b9925dd329306536c00c364c84 (diff)
14.9.2 releasev14.9.2
-rw-r--r--ChangeLog8
-rw-r--r--VERSION2
-rw-r--r--src/main/java/com/mxgraph/online/AbsAuthServlet.java2
-rw-r--r--src/main/webapp/js/PreConfig.js3
-rw-r--r--src/main/webapp/js/app.min.js769
-rw-r--r--src/main/webapp/js/diagramly/DrawioFile.js2
-rw-r--r--src/main/webapp/js/diagramly/LocalFile.js21
-rw-r--r--src/main/webapp/js/grapheditor/EditorUi.js2
-rw-r--r--src/main/webapp/js/grapheditor/Format.js7
-rw-r--r--src/main/webapp/js/viewer-static.min.js870
-rw-r--r--src/main/webapp/js/viewer.min.js870
-rw-r--r--src/main/webapp/mxgraph/mxClient.js21
-rw-r--r--src/main/webapp/resources/dia.txt1
-rw-r--r--src/main/webapp/resources/dia_am.txt1
-rw-r--r--src/main/webapp/resources/dia_ar.txt1
-rw-r--r--src/main/webapp/resources/dia_bg.txt1
-rw-r--r--src/main/webapp/resources/dia_bn.txt1
-rw-r--r--src/main/webapp/resources/dia_bs.txt1
-rw-r--r--src/main/webapp/resources/dia_ca.txt1
-rw-r--r--src/main/webapp/resources/dia_cs.txt1
-rw-r--r--src/main/webapp/resources/dia_da.txt1
-rw-r--r--src/main/webapp/resources/dia_de.txt1
-rw-r--r--src/main/webapp/resources/dia_el.txt1
-rw-r--r--src/main/webapp/resources/dia_eo.txt1
-rw-r--r--src/main/webapp/resources/dia_es.txt1
-rw-r--r--src/main/webapp/resources/dia_et.txt1
-rw-r--r--src/main/webapp/resources/dia_eu.txt1
-rw-r--r--src/main/webapp/resources/dia_fa.txt1
-rw-r--r--src/main/webapp/resources/dia_fi.txt1
-rw-r--r--src/main/webapp/resources/dia_fil.txt1
-rw-r--r--src/main/webapp/resources/dia_fr.txt1
-rw-r--r--src/main/webapp/resources/dia_gl.txt1
-rw-r--r--src/main/webapp/resources/dia_gu.txt1
-rw-r--r--src/main/webapp/resources/dia_he.txt1
-rw-r--r--src/main/webapp/resources/dia_hi.txt1
-rw-r--r--src/main/webapp/resources/dia_hr.txt1
-rw-r--r--src/main/webapp/resources/dia_hu.txt1
-rw-r--r--src/main/webapp/resources/dia_i18n.txt1
-rw-r--r--src/main/webapp/resources/dia_id.txt1
-rw-r--r--src/main/webapp/resources/dia_it.txt1
-rw-r--r--src/main/webapp/resources/dia_ja.txt1
-rw-r--r--src/main/webapp/resources/dia_kn.txt1
-rw-r--r--src/main/webapp/resources/dia_ko.txt1
-rw-r--r--src/main/webapp/resources/dia_lt.txt1
-rw-r--r--src/main/webapp/resources/dia_lv.txt1
-rw-r--r--src/main/webapp/resources/dia_ml.txt1
-rw-r--r--src/main/webapp/resources/dia_mr.txt1
-rw-r--r--src/main/webapp/resources/dia_ms.txt1
-rw-r--r--src/main/webapp/resources/dia_my.txt1
-rw-r--r--src/main/webapp/resources/dia_nl.txt1
-rw-r--r--src/main/webapp/resources/dia_no.txt1
-rw-r--r--src/main/webapp/resources/dia_pl.txt1
-rw-r--r--src/main/webapp/resources/dia_pt-br.txt1
-rw-r--r--src/main/webapp/resources/dia_pt.txt1
-rw-r--r--src/main/webapp/resources/dia_ro.txt1
-rw-r--r--src/main/webapp/resources/dia_ru.txt1
-rw-r--r--src/main/webapp/resources/dia_si.txt1
-rw-r--r--src/main/webapp/resources/dia_sk.txt1
-rw-r--r--src/main/webapp/resources/dia_sl.txt1
-rw-r--r--src/main/webapp/resources/dia_sr.txt1
-rw-r--r--src/main/webapp/resources/dia_sv.txt1
-rw-r--r--src/main/webapp/resources/dia_sw.txt1
-rw-r--r--src/main/webapp/resources/dia_ta.txt1
-rw-r--r--src/main/webapp/resources/dia_te.txt1
-rw-r--r--src/main/webapp/resources/dia_th.txt1
-rw-r--r--src/main/webapp/resources/dia_tr.txt1
-rw-r--r--src/main/webapp/resources/dia_uk.txt1
-rw-r--r--src/main/webapp/resources/dia_vi.txt1
-rw-r--r--src/main/webapp/resources/dia_zh-tw.txt1
-rw-r--r--src/main/webapp/resources/dia_zh.txt1
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
72 files changed, 1366 insertions, 1273 deletions
diff --git a/ChangeLog b/ChangeLog
index 33664f98..ae1f3fc1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+22-JUL-2021: 14.9.2
+
+- [conf cloud] Fixes scroll bars with hidden toolbar
+- [conf cloud] Fixes incorrect height of simple viewer
+- Adds DRAWIO_LIGHTBOX_URL https://github.com/jgraph/drawio/issues/2149
+- Creates draft while saving local file to fix possible data loss
+- Adds support for radial gradients https://github.com/jgraph/drawio/issues/1472
+
21-JUL-2021: 14.9.1
- [conf cloud] Fixes pending updates of embedded macros
diff --git a/VERSION b/VERSION
index 385495e9..94c62177 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-14.9.1 \ No newline at end of file
+14.9.2 \ No newline at end of file
diff --git a/src/main/java/com/mxgraph/online/AbsAuthServlet.java b/src/main/java/com/mxgraph/online/AbsAuthServlet.java
index e6596374..b067f440 100644
--- a/src/main/java/com/mxgraph/online/AbsAuthServlet.java
+++ b/src/main/java/com/mxgraph/online/AbsAuthServlet.java
@@ -350,6 +350,7 @@ abstract public class AbsAuthServlet extends HttpServlet
catch (Exception e)
{
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ log.log(Level.SEVERE, "AUTH-SERVLET: [" + request.getRemoteAddr()+ "] ERROR: " + e.getMessage());
}
}
@@ -565,6 +566,7 @@ abstract public class AbsAuthServlet extends HttpServlet
response.status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
e.printStackTrace();
System.err.println(details);
+ log.log(Level.SEVERE, "AUTH-SERVLET: [" + authSrvUrl+ "] ERROR: " + e.getMessage() + " -> " + details.toString());
}
if (DEBUG)
diff --git a/src/main/webapp/js/PreConfig.js b/src/main/webapp/js/PreConfig.js
index 78ebf7a1..c1240409 100644
--- a/src/main/webapp/js/PreConfig.js
+++ b/src/main/webapp/js/PreConfig.js
@@ -7,6 +7,7 @@ window.EXPORT_URL = 'REPLACE_WITH_YOUR_IMAGE_SERVER';
window.PLANT_URL = 'REPLACE_WITH_YOUR_PLANTUML_SERVER';
window.DRAWIO_BASE_URL = null; // Replace with path to base of deployment, e.g. https://www.example.com/folder
window.DRAWIO_VIEWER_URL = null; // Replace your path to the viewer js, e.g. https://www.example.com/js/viewer.min.js
+window.DRAWIO_LIGHTBOX_URL = null; // Replace with your lightbox URL, eg. https://www.example.com
window.DRAW_MATH_URL = 'math';
window.DRAWIO_CONFIG = null; // Replace with your custom draw.io configurations. For more details, https://www.diagrams.net/doc/faq/configure-diagram-editor
-urlParams['sync'] = 'manual'; \ No newline at end of file
+urlParams['sync'] = 'manual';
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index ba1ef57e..57d5d2ef 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");(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:"14.9.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.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:"14.9.2",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"),
@@ -339,12 +339,12 @@ STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"en
STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",
STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",
FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",
-ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,
-DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",
-PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};
-mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;
-mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};
-mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
+ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",
+DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",
+PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};
+mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;
+mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};
+mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
mxMouseEvent.prototype.consume=function(a){(null!=a?a:null!=this.evt.touches||mxEvent.isMouseEvent(this.evt))&&this.evt.preventDefault&&this.evt.preventDefault();mxClient.IS_IE&&(this.evt.returnValue=!0);this.consumed=!0};function mxEventSource(a){this.setEventSource(a)}mxEventSource.prototype.eventListeners=null;mxEventSource.prototype.eventsEnabled=!0;mxEventSource.prototype.eventSource=null;mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled};
mxEventSource.prototype.setEventsEnabled=function(a){this.eventsEnabled=a};mxEventSource.prototype.getEventSource=function(){return this.eventSource};mxEventSource.prototype.setEventSource=function(a){this.eventSource=a};mxEventSource.prototype.addListener=function(a,b){null==this.eventListeners&&(this.eventListeners=[]);this.eventListeners.push(a);this.eventListeners.push(b)};
mxEventSource.prototype.removeListener=function(a){if(null!=this.eventListeners)for(var b=0;b<this.eventListeners.length;)this.eventListeners[b+1]==a?this.eventListeners.splice(b,2):b+=2};
@@ -541,10 +541,11 @@ mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};mxSvgCanvas2D.prototype.getAlternateText=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=f?this.foAltText:null};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){a=this.getAlternateText(a,b,c,d,e,f,g,k,l,m,n,p,q);d=this.state;return null!=a&&0<d.fontSize?(k=k==mxConstants.ALIGN_TOP?1:k==mxConstants.ALIGN_BOTTOM?0:.3,e=g==mxConstants.ALIGN_RIGHT?"end":g==mxConstants.ALIGN_LEFT?"start":"middle",g=this.createElement("text"),g.setAttribute("x",Math.round(b+d.dx)),g.setAttribute("y",Math.round(c+d.dy+k*d.fontSize)),g.setAttribute("fill",d.fontColor||"black"),g.setAttribute("font-family",
d.fontFamily),g.setAttribute("font-size",Math.round(d.fontSize)+"px"),"start"!=e&&g.setAttribute("text-anchor",e),(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&g.setAttribute("font-weight","bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&g.setAttribute("font-style","italic"),b=[],(d.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(d.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),
-0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
+0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};
+mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":e==mxConstants.DIRECTION_RADIAL?c="r":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
-mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
-e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
+mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement(e==mxConstants.DIRECTION_RADIAL?"radialGradient":"linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");
+c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&(!a||null==d.fillColor)&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=
c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
@@ -2078,11 +2079,11 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var f=[],g=0;g<
d.length;g++)null!=a.view.getState(d[g])&&f.push(d[g]);a.setSelectionCells(f)}};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,c,d,b,f,e,h,g,k,l,m){var n=k?57:0,p=d,r=b,u=k?0:64,v=mxUtils.getDocumentSize();null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,w=Math.max(1,Math.round((v.width-d-u)/2)),x=Math.max(1,Math.round((t-b-a.footerHeight)/3));c.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-u):d;b=Math.min(b,t-u);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",
+function Dialog(a,c,d,b,f,e,h,g,k,l,n){var m=k?57:0,p=d,r=b,u=k?0:64,v=mxUtils.getDocumentSize();null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,w=Math.max(1,Math.round((v.width-d-u)/2)),x=Math.max(1,Math.round((t-b-a.footerHeight)/3));c.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-u):d;b=Math.min(b,t-u);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",
this.bg.style.background=Dialog.backdropColor,this.bg.style.height=t+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));v=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=v.x+"px";this.bg.style.top=v.y+"px";w+=v.x;x+=v.y;f&&document.body.appendChild(this.bg);var B=a.createDiv(k?"geTransDialog":"geDialog");f=this.getPosition(w,x,d,b);w=f.x;x=f.y;B.style.width=d+"px";B.style.height=b+"px";B.style.left=w+"px";B.style.top=x+"px";B.style.zIndex=
-this.zIndex;B.appendChild(c);document.body.appendChild(B);!g&&c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=x+14+"px",e.style.left=w+d+38-n+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var E=!1;
+this.zIndex;B.appendChild(c);document.body.appendChild(B);!g&&c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=x+14+"px",e.style.left=w+d+38-m+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!n)){var E=!1;
mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){E=!0}),null,mxUtils.bind(this,function(b){E&&(a.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,r=b=e.h)}e=mxUtils.getDocumentSize();t=e.height;this.bg.style.height=t+"px";w=Math.max(1,Math.round((e.width-d-u)/2));x=Math.max(1,Math.round((t-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;b=Math.min(r,t-u);e=this.getPosition(w,x,d,
-b);w=e.x;x=e.y;B.style.left=w+"px";B.style.top=x+"px";B.style.width=d+"px";B.style.height=b+"px";!g&&c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=x+14+"px",this.dialogImg.style.left=w+d+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=B;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+b);w=e.x;x=e.y;B.style.left=w+"px";B.style.top=x+"px";B.style.width=d+"px";B.style.height=b+"px";!g&&c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=x+14+"px",this.dialogImg.style.left=w+d+38-m+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=B;a.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+
@@ -2091,47 +2092,47 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
"/locked.png";
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,c){return new mxPoint(a,c)};Dialog.prototype.close=function(a,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(a,c,d,b,f,e,h,g,k,l,m){k=null!=k?k:!0;var n=document.createElement("div");n.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);n.appendChild(p)}c=
-document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=d;n.appendChild(c);d=document.createElement("div");d.style.marginTop="12px";d.style.textAlign="center";null!=e&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();e()}),c.className="geBtn",d.appendChild(c),d.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",d.appendChild(l));var r=mxUtils.button(b,function(){k&&a.hideDialog();null!=f&&f()});
-r.className="geBtn";d.appendChild(r);null!=h&&(b=mxUtils.button(h,function(){k&&a.hideDialog();null!=g&&g()}),b.className="geBtn gePrimaryBtn",d.appendChild(b));this.init=function(){r.focus()};n.appendChild(d);this.container=n},PrintDialog=function(a,c){this.create(a,c)};
-PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(n.value)/100;isNaN(c)&&(c=1,n.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var h=g.checked?1:parseInt(m.value);isNaN(h)||(f=mxUtils.getScaleForPageCount(h,d,e))}d.getGraphBounds();var k=h=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),h-=c.x*e.width,k-=c.y*e.height):
+var ErrorDialog=function(a,c,d,b,f,e,h,g,k,l,n){k=null!=k?k:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);m.appendChild(p)}c=
+document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=d;m.appendChild(c);d=document.createElement("div");d.style.marginTop="12px";d.style.textAlign="center";null!=e&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();e()}),c.className="geBtn",d.appendChild(c),d.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=n&&n()}),l.className="geBtn",d.appendChild(l));var r=mxUtils.button(b,function(){k&&a.hideDialog();null!=f&&f()});
+r.className="geBtn";d.appendChild(r);null!=h&&(b=mxUtils.button(h,function(){k&&a.hideDialog();null!=g&&g()}),b.className="geBtn gePrimaryBtn",d.appendChild(b));this.init=function(){r.focus()};m.appendChild(d);this.container=m},PrintDialog=function(a,c){this.create(a,c)};
+PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(m.value)/100;isNaN(c)&&(c=1,m.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var h=g.checked?1:parseInt(n.value);isNaN(h)||(f=mxUtils.getScaleForPageCount(h,d,e))}d.getGraphBounds();var k=h=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),h-=c.x*e.width,k-=c.y*e.height):
b=!0;b=PrintDialog.createPrintPreview(d,f,e,0,h,k,b);b.open();a&&PrintDialog.printPreview(b)}var d=a.editor.graph,b,f,e=document.createElement("table");e.style.width="100%";e.style.height="100%";var h=document.createElement("tbody");b=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");f=document.createElement("td");f.setAttribute("colspan","2");f.style.fontSize="10pt";f.appendChild(g);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
f.appendChild(k);mxEvent.addListener(k,"click",function(a){g.checked=!g.checked;l.checked=!g.checked;mxEvent.consume(a)});mxEvent.addListener(g,"change",function(){l.checked=!g.checked});b.appendChild(f);h.appendChild(b);b=b.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(l);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");f.appendChild(k);mxEvent.addListener(k,
-"click",function(a){l.checked=!l.checked;g.checked=!l.checked;mxEvent.consume(a)});b.appendChild(f);var m=document.createElement("input");m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.setAttribute("size","4");m.setAttribute("disabled","disabled");m.style.width="50px";f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(m);mxUtils.write(f," "+mxResources.get("pages")+" (max)");b.appendChild(f);h.appendChild(b);mxEvent.addListener(l,"change",
-function(){l.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");g.checked=!l.checked});b=b.cloneNode(!1);f=document.createElement("td");mxUtils.write(f,mxResources.get("pageScale")+":");b.appendChild(f);f=document.createElement("td");var n=document.createElement("input");n.setAttribute("value","100 %");n.setAttribute("size","5");n.style.width="50px";f.appendChild(n);b.appendChild(f);h.appendChild(b);b=document.createElement("tr");f=document.createElement("td");f.colSpan=2;
+"click",function(a){l.checked=!l.checked;g.checked=!l.checked;mxEvent.consume(a)});b.appendChild(f);var n=document.createElement("input");n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.setAttribute("size","4");n.setAttribute("disabled","disabled");n.style.width="50px";f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(n);mxUtils.write(f," "+mxResources.get("pages")+" (max)");b.appendChild(f);h.appendChild(b);mxEvent.addListener(l,"change",
+function(){l.checked?n.removeAttribute("disabled"):n.setAttribute("disabled","disabled");g.checked=!l.checked});b=b.cloneNode(!1);f=document.createElement("td");mxUtils.write(f,mxResources.get("pageScale")+":");b.appendChild(f);f=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";f.appendChild(m);b.appendChild(f);h.appendChild(b);b=document.createElement("tr");f=document.createElement("td");f.colSpan=2;
f.style.paddingTop="20px";f.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&f.appendChild(k);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});p.className="geBtn";f.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});p.className="geBtn gePrimaryBtn";f.appendChild(p);a.editor.cancelFirst||
f.appendChild(k);b.appendChild(f);h.appendChild(b);e.appendChild(h);this.container=e};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(d){}};
PrintDialog.createPrintPreview=function(a,c,d,b,f,e,h){c=new mxPrintPreview(a,c,d,b,f,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=h;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var g=c.writeHead;c.writeHead=function(a){g.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==r?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(p.setAttribute("title",r.src),p.style.fontSize="11px",p.innerHTML=mxUtils.htmlEntities(r.src.substring(0,42))+"...")}var b=a.editor.graph,f,
+var PageSetupDialog=function(a){function c(){null==n||n==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=n,l.style.backgroundImage="")}function d(){null==r?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(p.setAttribute("title",r.src),p.style.fontSize="11px",p.innerHTML=mxUtils.htmlEntities(r.src.substring(0,42))+"...")}var b=a.editor.graph,f,
e,h=document.createElement("table");h.style.width="100%";h.style.height="100%";var g=document.createElement("tbody");f=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");f.appendChild(e);e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",b.pageFormat);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");
-e=document.createElement("td");mxUtils.write(e,mxResources.get("background")+":");f.appendChild(e);e=document.createElement("td");e.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="18px";l.style.height="18px";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";var m=b.background;c();mxEvent.addListener(l,"click",function(b){a.pickColor(m||"none",function(a){m=
-a;c()});mxEvent.consume(b)});e.appendChild(l);mxUtils.write(e,mxResources.get("gridSize")+":");var n=document.createElement("input");n.setAttribute("type","number");n.setAttribute("min","0");n.style.width="40px";n.style.marginLeft="6px";n.value=b.getGridSize();e.appendChild(n);mxEvent.addListener(n,"change",function(){var a=parseInt(n.value);n.value=Math.max(1,isNaN(a)?b.getGridSize():a)});f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,
+e=document.createElement("td");mxUtils.write(e,mxResources.get("background")+":");f.appendChild(e);e=document.createElement("td");e.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="18px";l.style.height="18px";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";var n=b.background;c();mxEvent.addListener(l,"click",function(b){a.pickColor(n||"none",function(a){n=
+a;c()});mxEvent.consume(b)});e.appendChild(l);mxUtils.write(e,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=b.getGridSize();e.appendChild(m);mxEvent.addListener(m,"change",function(){var a=parseInt(m.value);m.value=Math.max(1,isNaN(a)?b.getGridSize():a)});f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,
mxResources.get("image")+":");f.appendChild(e);e=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var r=b.backgroundImage;mxEvent.addListener(p,"click",function(b){a.showBackgroundImageDialog(function(a,b){b||(r=a,d())},r);mxEvent.consume(b)});d();e.appendChild(p);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align",
-"right");var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&e.appendChild(u);var v=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(n.value);isNaN(c)||b.gridSize===c||b.setGridSize(c);c=new ChangePageSetup(a,m,r,k.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==
+"right");var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&e.appendChild(u);var v=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(m.value);isNaN(c)||b.gridSize===c||b.setGridSize(c);c=new ChangePageSetup(a,n,r,k.get());c.ignoreColor=b.background==n;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==
c.previousFormat.height&&c.ignoreColor&&c.ignoreImage||b.model.execute(c)});v.className="geBtn gePrimaryBtn";e.appendChild(v);a.editor.cancelFirst||e.appendChild(u);f.appendChild(e);g.appendChild(f);h.appendChild(g);this.container=h};
-PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||n!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<u.length;b++)c=u[b],x?"custom"==c.key&&(g.value=c.key,x=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
-d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(k.style.display="",m.style.display="none"):(n.value=d.width/100,p.value=d.height/100,e.setAttribute("checked","checked"),
-g.value="custom",k.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",c);h.setAttribute("type","radio");h.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";
-k.style.height="24px";e.style.marginRight="6px";k.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);h.style.marginLeft="10px";h.style.marginRight="6px";k.appendChild(h);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));k.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var n=document.createElement("input");
-n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in");k.style.display="none";m.style.display="none";for(var r={},u=PageSetupDialog.getFormats(),v=0;v<u.length;v++){var t=u[v];r[t.key]=t;var w=document.createElement("option");w.setAttribute("value",t.key);mxUtils.write(w,t.title);g.appendChild(w)}var x=!1;f();a.appendChild(g);mxUtils.br(a);
-a.appendChild(k);a.appendChild(m);var B=d,E=function(a,c){var e=r[g.value];null!=e.format?(n.value=e.format.width/100,p.value=e.format.height/100,m.style.display="none",k.style.display=""):(k.style.display="none",m.style.display="");e=parseFloat(n.value);if(isNaN(e)||0>=e)n.value=d.width/100;e=parseFloat(p.value);if(isNaN(e)||0>=e)p.value=d.height/100;e=new mxRectangle(0,0,Math.floor(100*parseFloat(n.value)),Math.floor(100*parseFloat(p.value)));"custom"!=g.value&&h.checked&&(e=new mxRectangle(0,0,
-e.height,e.width));c&&x||e.width==B.width&&e.height==B.height||(B=e,null!=b&&b(B))};mxEvent.addListener(c,"click",function(a){e.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){h.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(n,"blur",E);mxEvent.addListener(n,"click",E);mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(h,"change",E);mxEvent.addListener(e,"change",E);mxEvent.addListener(g,"change",function(a){x="custom"==g.value;
-E(a,!0)});E();return{set:function(a){d=a;f(null,null,!0)},get:function(){return B},widthInput:n,heightInput:p}};
+PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||m!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<u.length;b++)c=u[b],x?"custom"==c.key&&(g.value=c.key,x=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
+d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(k.style.display="",n.style.display="none"):(m.value=d.width/100,p.value=d.height/100,e.setAttribute("checked","checked"),
+g.value="custom",k.style.display="none",n.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",c);h.setAttribute("type","radio");h.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";
+k.style.height="24px";e.style.marginRight="6px";k.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);h.style.marginLeft="10px";h.style.marginRight="6px";k.appendChild(h);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));k.appendChild(l);var n=document.createElement("div");n.style.marginLeft="4px";n.style.width="210px";n.style.height="24px";var m=document.createElement("input");
+m.setAttribute("size","7");m.style.textAlign="right";n.appendChild(m);mxUtils.write(n," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";n.appendChild(p);mxUtils.write(n," in");k.style.display="none";n.style.display="none";for(var r={},u=PageSetupDialog.getFormats(),v=0;v<u.length;v++){var t=u[v];r[t.key]=t;var w=document.createElement("option");w.setAttribute("value",t.key);mxUtils.write(w,t.title);g.appendChild(w)}var x=!1;f();a.appendChild(g);mxUtils.br(a);
+a.appendChild(k);a.appendChild(n);var B=d,E=function(a,c){var e=r[g.value];null!=e.format?(m.value=e.format.width/100,p.value=e.format.height/100,n.style.display="none",k.style.display=""):(k.style.display="none",n.style.display="");e=parseFloat(m.value);if(isNaN(e)||0>=e)m.value=d.width/100;e=parseFloat(p.value);if(isNaN(e)||0>=e)p.value=d.height/100;e=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),Math.floor(100*parseFloat(p.value)));"custom"!=g.value&&h.checked&&(e=new mxRectangle(0,0,
+e.height,e.width));c&&x||e.width==B.width&&e.height==B.height||(B=e,null!=b&&b(B))};mxEvent.addListener(c,"click",function(a){e.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){h.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(m,"blur",E);mxEvent.addListener(m,"click",E);mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(h,"change",E);mxEvent.addListener(e,"change",E);mxEvent.addListener(g,"change",function(a){x="custom"==g.value;
+E(a,!0)});E();return{set:function(a){d=a;f(null,null,!0)},get:function(){return B},widthInput:m,heightInput:p}};
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(a,c,d,b,f,e,h,g,k,l,m,n){k=null!=k?k:!0;var p,r,u=document.createElement("table"),v=document.createElement("tbody");u.style.marginTop="8px";p=document.createElement("tr");r=document.createElement("td");r.style.whiteSpace="nowrap";r.style.fontSize="10pt";r.style.width=m?"80px":"120px";mxUtils.write(r,(f||mxResources.get("filename"))+":");p.appendChild(r);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width=null!=n?n+
+var FilenameDialog=function(a,c,d,b,f,e,h,g,k,l,n,m){k=null!=k?k:!0;var p,r,u=document.createElement("table"),v=document.createElement("tbody");u.style.marginTop="8px";p=document.createElement("tr");r=document.createElement("td");r.style.whiteSpace="nowrap";r.style.fontSize="10pt";r.style.width=n?"80px":"120px";mxUtils.write(r,(f||mxResources.get("filename"))+":");p.appendChild(r);var t=document.createElement("input");t.setAttribute("value",c||"");t.style.marginLeft="4px";t.style.width=null!=m?m+
"px":"180px";var w=mxUtils.button(d,function(){if(null==e||e(t.value))k&&a.hideDialog(),b(t.value)});w.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==h)if(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=u.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=t,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(t.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),w.click());a.stopPropagation();a.preventDefault()}))}}};r=document.createElement("td");r.style.whiteSpace=
-"nowrap";r.appendChild(t);p.appendChild(r);if(null!=f||null==h)v.appendChild(p),null!=m&&(null!=a.editor.diagramFileTypes&&(p=FilenameDialog.createFileTypes(a,t,a.editor.diagramFileTypes),p.style.marginLeft="6px",p.style.width="74px",r.appendChild(p),t.style.width=null!=n?n-40+"px":"140px"),r.appendChild(FilenameDialog.createTypeHint(a,t,m)));null!=h&&(p=document.createElement("tr"),r=document.createElement("td"),r.colSpan=2,r.appendChild(h),p.appendChild(r),v.appendChild(p));p=document.createElement("tr");
-r=document.createElement("td");r.colSpan=2;r.style.paddingTop="20px";r.style.whiteSpace="nowrap";r.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});m.className="geBtn";a.editor.cancelFirst&&r.appendChild(m);null!=g&&(n=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),n.className="geBtn",r.appendChild(n));mxEvent.addListener(t,"keypress",function(a){13==a.keyCode&&w.click()});r.appendChild(w);a.editor.cancelFirst||
-r.appendChild(m);p.appendChild(r);v.appendChild(p);u.appendChild(v);this.container=u};FilenameDialog.filenameHelpLink=null;
+"nowrap";r.appendChild(t);p.appendChild(r);if(null!=f||null==h)v.appendChild(p),null!=n&&(null!=a.editor.diagramFileTypes&&(p=FilenameDialog.createFileTypes(a,t,a.editor.diagramFileTypes),p.style.marginLeft="6px",p.style.width="74px",r.appendChild(p),t.style.width=null!=m?m-40+"px":"140px"),r.appendChild(FilenameDialog.createTypeHint(a,t,n)));null!=h&&(p=document.createElement("tr"),r=document.createElement("td"),r.colSpan=2,r.appendChild(h),p.appendChild(r),v.appendChild(p));p=document.createElement("tr");
+r=document.createElement("td");r.colSpan=2;r.style.paddingTop="20px";r.style.whiteSpace="nowrap";r.setAttribute("align","right");n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});n.className="geBtn";a.editor.cancelFirst&&r.appendChild(n);null!=g&&(m=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),m.className="geBtn",r.appendChild(m));mxEvent.addListener(t,"keypress",function(a){13==a.keyCode&&w.click()});r.appendChild(w);a.editor.cancelFirst||
+r.appendChild(n);p.appendChild(r);v.appendChild(p);u.appendChild(v);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,c,d){var b=document.createElement("img");b.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(b,70);var f=function(){b.setAttribute("src",Editor.helpImage);b.setAttribute("title",mxResources.get("help"));for(var a=0;a<d.length;a++)if(0<d[a].ext.length&&c.value.toLowerCase().substring(c.value.length-d[a].ext.length-1)=="."+d[a].ext){b.setAttribute("src",
mxClient.imageBasePath+"/warning.png");b.setAttribute("title",mxResources.get(d[a].title));break}};mxEvent.addListener(c,"keyup",f);mxEvent.addListener(c,"change",f);mxEvent.addListener(b,"click",function(c){var d=b.getAttribute("title");b.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=d&&a.showError(null,d,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
mxEvent.consume(c)});f();return b};
FilenameDialog.createFileTypes=function(a,c,d){var b=document.createElement("select");for(a=0;a<d.length;a++){var f=document.createElement("option");f.setAttribute("value",a);mxUtils.write(f,mxResources.get(d[a].description)+" (."+d[a].extension+")");b.appendChild(f)}mxEvent.addListener(b,"change",function(a){a=d[b.value].extension;var e=c.value.lastIndexOf(".");0<e?(a=d[b.value].extension,c.value=c.value.substring(0,e+1)+a):c.value=c.value+"."+a;"createEvent"in document?(a=document.createEvent("HTMLEvents"),
-a.initEvent("change",!1,!0),c.dispatchEvent(a)):c.fireEvent("onchange")});a=function(a){var e=c.value.lastIndexOf(".");a=0;if(0<e)for(var e=c.value.toLowerCase().substring(e+1),g=0;g<d.length;g++)if(e==d[g].extension){a=g;break}b.value=a};mxEvent.addListener(c,"change",a);mxEvent.addListener(c,"keyup",a);a();return b};
+a.initEvent("change",!1,!0),c.dispatchEvent(a)):c.fireEvent("onchange")});a=function(a){var e=c.value.lastIndexOf(".");a=0;if(0<e)for(var e=c.value.toLowerCase().substring(e+1),f=0;f<d.length;f++)if(e==d[f].extension){a=f;break}b.value=a};mxEvent.addListener(c,"change",a);mxEvent.addListener(c,"keyup",a);a();return b};
(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,
this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(b){a.dblClick(b)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(b){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(b))}),mxUtils.bind(this,function(b){null!=
a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(b)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(b))}),mxUtils.bind(this,function(b){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(b))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}};
@@ -2145,19 +2146,19 @@ Math.round(h.y+(c+1)*k.height)),new mxPoint(Math.round(w),Math.round(h.y+(c+1)*k
a(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,d){for(var e=0;e<b.length;e++){if(this.graph.isTableCell(b[e])||this.graph.isTableRow(b[e]))return!1;if(this.graph.getModel().isVertex(b[e])){var f=this.graph.getCellGeometry(b[e]);if(null!=f&&f.relative)return!1}}return c.apply(this,arguments)};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
d.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),p=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+p*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-p)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
-this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,n){var g=f.apply(this,arguments);null==n||n||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
+this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var f=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,e,m){var g=f.apply(this,arguments);null==m||m||mxEvent.addListener(g,"mousedown",function(a){mxEvent.consume(a)});return g};var e=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
function(a,b,c){var d,f=this.graph.model.getParent(a);if(b)d=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),d=!this.graph.model.isEdge(f)&&!this.graph.isSiblingSelected(a)&&(null!=d&&d.relative||!this.graph.isContainer(f)||this.graph.isPart(a));else if(d=e.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))d=f,this.graph.isTable(d)||(d=this.graph.model.getParent(d)),d=!this.graph.selectionCellsHandler.isHandled(d)||this.graph.isCellSelected(d)&&this.graph.isToggleEvent(c.getEvent())||
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(f);return d};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a),d=this.graph.view.getState(c),e=this.graph.isCellSelected(a);null!=d&&(b.isVertex(c)||b.isEdge(c));){var f=this.graph.isCellSelected(c),e=e||f;if(f||!e&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=c;c=b.getParent(c)}return a}})();EditorUi=function(a,c,d){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=c||document.body;var b=this.editor.graph;b.lightbox=d;this.initialDefaultVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.initialDefaultEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=
mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!b.standalone){var f="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
-e="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=b.view.getState(a);if(null!=c){var d=a.clone();d.style="";var e=b.getCellStyle(d);a=[];var d=[],f;for(f in c.style)e[f]!=c.style[f]&&(a.push(c.style[f]),d.push(f));for(var g=b.getModel().getStyle(c.cell),k=null!=g?g.split(";"):[],g=0;g<k.length;g++){var h=
-k[g],m=h.indexOf("=");if(0<=m){f=h.substring(0,m);var l=h.substring(m+1);null!=e[f]&&"none"==l&&(a.push(l),d.push(f))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(R){this.handleError(R)}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
-"keys",[],"values",[],"cells",[]))};var h=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<h.length;c++)0>mxUtils.indexOf(f,h[c])&&f.push(h[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),k=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<k.length;c++)for(d=
-0;d<k[c].length;d++)f.push(k[c][d]);for(c=0;c<e.length;c++)0>mxUtils.indexOf(f,e[c])&&f.push(e[c]);var l=function(a,c,d,g,h,m,l){g=null!=g?g:b.currentVertexStyle;h=null!=h?h:b.currentEdgeStyle;d=null!=d?d:b.getModel();if(l){l=[];for(var p=0;p<a.length;p++)l=l.concat(d.getDescendants(a[p]));a=l}d.beginUpdate();try{for(p=0;p<a.length;p++){var n=a[p],r;if(c)r=["fontSize","fontFamily","fontColor"];else{var u=d.getStyle(n),aa=null!=u?u.split(";"):[];r=f.slice();for(var t=0;t<aa.length;t++){var v=aa[t],
-P=v.indexOf("=");if(0<=P){var w=v.substring(0,P),y=mxUtils.indexOf(r,w);0<=y&&r.splice(y,1);for(l=0;l<k.length;l++){var x=k[l];if(0<=mxUtils.indexOf(x,w))for(var Z=0;Z<x.length;Z++){var A=mxUtils.indexOf(r,x[Z]);0<=A&&r.splice(A,1)}}}}}var E=d.isEdge(n);l=E?h:g;for(var G=d.getStyle(n),t=0;t<r.length;t++){var w=r[t],M=l[w];null!=M&&("shape"!=w||E)&&(!E||m||0>mxUtils.indexOf(e,w))&&(G=mxUtils.setStyle(G,w,M))}Editor.simpleLabels&&(G=mxUtils.setStyle(mxUtils.setStyle(G,"html",null),"whiteSpace",null));
-d.setStyle(n,G)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){l(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){l(b.getProperty("cells"),!0)});this.insertHandler=l;this.createDivs();this.createUi();this.refresh();var m=mxUtils.bind(this,function(a){null==a&&(a=window.event);return b.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=m,this.menubarContainer.onmousedown=m,this.toolbarContainer.onselectstart=
-m,this.toolbarContainer.onmousedown=m,this.diagramContainer.onselectstart=m,this.diagramContainer.onmousedown=m,this.sidebarContainer.onselectstart=m,this.sidebarContainer.onmousedown=m,this.formatContainer.onselectstart=m,this.formatContainer.onmousedown=m,this.footerContainer.onselectstart=m,this.footerContainer.onmousedown=m,null!=this.tabContainer&&(this.tabContainer.onselectstart=m));!this.editor.chromeless||this.editor.editable?(c=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=
-b;){if("geHint"==b.className)return!0;b=b.parentNode}}return m(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=b.graphHandler){var n=
-b.graphHandler.start;b.graphHandler.start=function(){null!=A.hoverIcons&&A.hoverIcons.reset();n.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var p=
+e="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=b.view.getState(a);if(null!=c){var d=a.clone();d.style="";var e=b.getCellStyle(d);a=[];var d=[],f;for(f in c.style)e[f]!=c.style[f]&&(a.push(c.style[f]),d.push(f));for(var g=b.getModel().getStyle(c.cell),h=null!=g?g.split(";"):[],g=0;g<h.length;g++){var k=
+h[g],l=k.indexOf("=");if(0<=l){f=k.substring(0,l);var n=k.substring(l+1);null!=e[f]&&"none"==n&&(a.push(n),d.push(f))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(R){this.handleError(R)}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
+"keys",[],"values",[],"cells",[]))};var h=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<h.length;c++)0>mxUtils.indexOf(f,h[c])&&f.push(h[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),k=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(c=
+0;c<k.length;c++)for(d=0;d<k[c].length;d++)f.push(k[c][d]);for(c=0;c<e.length;c++)0>mxUtils.indexOf(f,e[c])&&f.push(e[c]);var l=function(a,c,d,g,h,l,n){g=null!=g?g:b.currentVertexStyle;h=null!=h?h:b.currentEdgeStyle;d=null!=d?d:b.getModel();if(n){n=[];for(var m=0;m<a.length;m++)n=n.concat(d.getDescendants(a[m]));a=n}d.beginUpdate();try{for(m=0;m<a.length;m++){var p=a[m],r;if(c)r=["fontSize","fontFamily","fontColor"];else{var u=d.getStyle(p),ba=null!=u?u.split(";"):[];r=f.slice();for(var t=0;t<ba.length;t++){var v=
+ba[t],P=v.indexOf("=");if(0<=P){var w=v.substring(0,P),y=mxUtils.indexOf(r,w);0<=y&&r.splice(y,1);for(n=0;n<k.length;n++){var x=k[n];if(0<=mxUtils.indexOf(x,w))for(var Z=0;Z<x.length;Z++){var A=mxUtils.indexOf(r,x[Z]);0<=A&&r.splice(A,1)}}}}}var E=d.isEdge(p);n=E?h:g;for(var G=d.getStyle(p),t=0;t<r.length;t++){var w=r[t],M=n[w];null!=M&&("shape"!=w||E)&&(!E||l||0>mxUtils.indexOf(e,w))&&(G=mxUtils.setStyle(G,w,M))}Editor.simpleLabels&&(G=mxUtils.setStyle(mxUtils.setStyle(G,"html",null),"whiteSpace",
+null));d.setStyle(p,G)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){l(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){l(b.getProperty("cells"),!0)});this.insertHandler=l;this.createDivs();this.createUi();this.refresh();var n=mxUtils.bind(this,function(a){null==a&&(a=window.event);return b.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=n,this.menubarContainer.onmousedown=n,this.toolbarContainer.onselectstart=
+n,this.toolbarContainer.onmousedown=n,this.diagramContainer.onselectstart=n,this.diagramContainer.onmousedown=n,this.sidebarContainer.onselectstart=n,this.sidebarContainer.onmousedown=n,this.formatContainer.onselectstart=n,this.formatContainer.onmousedown=n,this.footerContainer.onselectstart=n,this.footerContainer.onmousedown=n,null!=this.tabContainer&&(this.tabContainer.onselectstart=n));!this.editor.chromeless||this.editor.editable?(c=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=
+b;){if("geHint"==b.className)return!0;b=b.parentNode}}return n(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=b.graphHandler){var m=
+b.graphHandler.start;b.graphHandler.start=function(){null!=A.hoverIcons&&A.hoverIcons.reset();m.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var p=
!1,r=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return p||r.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||b.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(p=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor=
"";p=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var u=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=function(a){return u.apply(this,arguments)||p||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var v=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return v.apply(this,
arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var t=b.isZoomWheelEvent;b.isZoomWheelEvent=function(){return p||t.apply(this,arguments)};var w=!1,x=null,B=null,E=null,H=mxUtils.bind(this,function(){if(null!=this.toolbar&&w!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
@@ -2165,8 +2166,8 @@ c.push(a));a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==E)this.t
null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=A.toolbar&&(A.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),A.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var y=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){try{y.apply(this,arguments),H()}catch(P){A.handleError(P)}};
b.container.setAttribute("tabindex","0");b.container.style.cursor="default";if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(L){}var G=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();G.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};b.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var d=[c.getProperty("cell")];c.getProperty("terminalInserted")&&(d.push(c.getProperty("terminal")),window.setTimeout(function(){null!=A.hoverIcons&&A.hoverIcons.update(b.view.getState(d[d.length-1]))},0));l(d)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),
-k=!1,l=!1;if(0<d.length)for(var m=0;m<d.length&&(k=b.getModel().isVertex(d[m])||k,!(l=b.getModel().isEdge(d[m])||l)||!k);m++);else l=k=!0;for(var d=c.getProperty("keys"),p=c.getProperty("values"),m=0;m<d.length;m++){var n=0<=mxUtils.indexOf(h,d[m]);if("strokeColor"!=d[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(e,d[m]))l||0<=mxUtils.indexOf(g,d[m])?null==p[m]?delete b.currentEdgeStyle[d[m]]:b.currentEdgeStyle[d[m]]=p[m]:k&&0<=mxUtils.indexOf(f,d[m])&&(null==p[m]?delete b.currentVertexStyle[d[m]]:
-b.currentVertexStyle[d[m]]=p[m]);else if(0<=mxUtils.indexOf(f,d[m])){if(k||n)null==p[m]?delete b.currentVertexStyle[d[m]]:b.currentVertexStyle[d[m]]=p[m];if(l||n||0<=mxUtils.indexOf(g,d[m]))null==p[m]?delete b.currentEdgeStyle[d[m]]:b.currentEdgeStyle[d[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
+k=!1,n=!1;if(0<d.length)for(var l=0;l<d.length&&(k=b.getModel().isVertex(d[l])||k,!(n=b.getModel().isEdge(d[l])||n)||!k);l++);else n=k=!0;for(var d=c.getProperty("keys"),m=c.getProperty("values"),l=0;l<d.length;l++){var p=0<=mxUtils.indexOf(h,d[l]);if("strokeColor"!=d[l]||null!=m[l]&&"none"!=m[l])if(0<=mxUtils.indexOf(e,d[l]))n||0<=mxUtils.indexOf(g,d[l])?null==m[l]?delete b.currentEdgeStyle[d[l]]:b.currentEdgeStyle[d[l]]=m[l]:k&&0<=mxUtils.indexOf(f,d[l])&&(null==m[l]?delete b.currentVertexStyle[d[l]]:
+b.currentVertexStyle[d[l]]=m[l]);else if(0<=mxUtils.indexOf(f,d[l])){if(k||p)null==m[l]?delete b.currentVertexStyle[d[l]]:b.currentVertexStyle[d[l]]=m[l];if(n||p||0<=mxUtils.indexOf(g,d[l]))null==m[l]?delete b.currentEdgeStyle[d[l]]:b.currentEdgeStyle[d[l]]=m[l]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
@@ -2180,12 +2181,12 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"
arguments);d.updateActionStates()};a.editLink=d.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
EditorUi.prototype.installShapePicker=function(){var a=this.editor.graph,c=this;a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){"mouseDown"==b.getProperty("eventName")&&c.hideShapePicker()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){c.hideShapePicker(!0)}));a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){c.hideShapePicker(!0)}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){c.hideShapePicker(!0)}));var d=
a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return d.apply(this,arguments)||null!=c.shapePicker};var b=a.dblClick;a.dblClick=function(d,e){if(this.isEnabled())if(null!=e||null==c.sidebar||mxEvent.isShiftDown(d)||a.isCellLocked(a.getDefaultParent()))b.apply(this,arguments);else{mxEvent.consume(d);var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d));window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.x,f.y)}),30)}};if(null!=
-this.hoverIcons){var f=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();f.apply(this,arguments)};var e=this.hoverIcons.execute;this.hoverIcons.execute=function(b,d,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?e.apply(this,arguments):this.graph.connectVertex(b.cell,d,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(e,g,k){var h=a.getCompositeParent(b.cell);e=a.getCellGeometry(h);for(f.consume();null!=h&&a.model.isVertex(h)&&null!=
-e&&e.relative;)cell=h,h=a.model.getParent(cell),e=a.getCellGeometry(h);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.getGraphX(),f.getGraphY(),h,mxUtils.bind(this,function(b){k(b);null!=c.hoverIcons&&c.hoverIcons.update(a.view.getState(b))}),d)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,g,this)}))}}};
+this.hoverIcons){var f=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();f.apply(this,arguments)};var e=this.hoverIcons.execute;this.hoverIcons.execute=function(b,d,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?e.apply(this,arguments):this.graph.connectVertex(b.cell,d,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(e,g,h){var k=a.getCompositeParent(b.cell);e=a.getCellGeometry(k);for(f.consume();null!=k&&a.model.isVertex(k)&&null!=
+e&&e.relative;)cell=k,k=a.model.getParent(cell),e=a.getCellGeometry(k);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.getGraphX(),f.getGraphY(),k,mxUtils.bind(this,function(b){h(b);null!=c.hoverIcons&&c.hoverIcons.update(a.view.getState(b))}),d)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,g,this)}))}}};
EditorUi.prototype.showShapePicker=function(a,c,d,b,f){a=this.createShapePicker(a,c,d,b,f,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(d));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),c=this.editor.graph,c.popupMenuHandler.hideMenu(),c.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=b,this.shapePicker=a)};
-EditorUi.prototype.createShapePicker=function(a,c,d,b,f,e,h){var g=null;if(null!=h&&0<h.length){var k=this,l=this.editor.graph,g=document.createElement("div");f=l.view.getState(d);var m=null==d||null!=f&&l.isTransparentState(f)?null:l.copyStyle(d);d=6>h.length?35*h.length:140;g.className="geToolbarContainer geSidebarContainer geSidebar";g.style.cssText="position:absolute;left:"+a+"px;top:"+c+"px;width:"+d+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
-mxPopupMenu.prototype.zIndex+1+";";mxUtils.setPrefixedStyle(g.style,"transform","translate(-22px,-22px)");null!=l.background&&l.background!=mxConstants.NONE&&(g.style.backgroundColor=l.background);l.container.appendChild(g);d=mxUtils.bind(this,function(d){var f=document.createElement("a");f.className="geItem";f.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";g.appendChild(f);null!=m&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(m,[d]):k.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,f,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(f,"click",function(){var f=l.cloneCell(d);if(null!=b)b(f);else{f.geometry.x=l.snap(Math.round(a/l.view.scale)-l.view.translate.x-d.geometry.width/2);f.geometry.y=l.snap(Math.round(c/l.view.scale)-l.view.translate.y-d.geometry.height/2);l.model.beginUpdate();try{l.addCell(f)}finally{l.model.endUpdate()}l.setSelectionCell(f);
+EditorUi.prototype.createShapePicker=function(a,c,d,b,f,e,h){var g=null;if(null!=h&&0<h.length){var k=this,l=this.editor.graph,g=document.createElement("div");f=l.view.getState(d);var n=null==d||null!=f&&l.isTransparentState(f)?null:l.copyStyle(d);d=6>h.length?35*h.length:140;g.className="geToolbarContainer geSidebarContainer geSidebar";g.style.cssText="position:absolute;left:"+a+"px;top:"+c+"px;width:"+d+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
+mxPopupMenu.prototype.zIndex+1+";";mxUtils.setPrefixedStyle(g.style,"transform","translate(-22px,-22px)");null!=l.background&&l.background!=mxConstants.NONE&&(g.style.backgroundColor=l.background);l.container.appendChild(g);d=mxUtils.bind(this,function(d){var f=document.createElement("a");f.className="geItem";f.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";g.appendChild(f);null!=n&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(n,[d]):k.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,f,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(f,"click",function(){var f=l.cloneCell(d);if(null!=b)b(f);else{f.geometry.x=l.snap(Math.round(a/l.view.scale)-l.view.translate.x-d.geometry.width/2);f.geometry.y=l.snap(Math.round(c/l.view.scale)-l.view.translate.y-d.geometry.height/2);l.model.beginUpdate();try{l.addCell(f)}finally{l.model.endUpdate()}l.setSelectionCell(f);
l.scrollCellToVisible(f);l.startEditingAtCell(f);null!=k.hoverIcons&&k.hoverIcons.update(l.view.getState(f))}null!=e&&e()})});for(f=0;f<h.length;f++)d(h[f]);h=g.offsetTop+g.clientHeight-(l.container.scrollTop+l.container.offsetHeight);0<h&&(g.style.top=Math.max(l.container.scrollTop+22,c-h)+"px");h=g.offsetLeft+g.clientWidth-(l.container.scrollLeft+l.container.offsetWidth);0<h&&(g.style.left=Math.max(l.container.scrollLeft+22,a-h)+"px")}return g};
EditorUi.prototype.getCellsForShapePicker=function(a){var c=mxUtils.bind(this,function(a,b,c,e){return this.editor.graph.createVertex(null,null,e||"",0,0,b||120,c||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):c("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),c("whiteSpace=wrap;html=1;"),c("rounded=1;whiteSpace=wrap;html=1;"),c("ellipse;whiteSpace=wrap;html=1;"),c("rhombus;whiteSpace=wrap;html=1;",80,80),c("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
c("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),c("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),c("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),c("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),c("triangle;whiteSpace=wrap;html=1;",60,80),c("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80),c("shape=tape;whiteSpace=wrap;html=1;",120,100),c("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
@@ -2200,26 +2201,26 @@ EditorUi.prototype.getCssClassForMarker=function(a,c,d,b){return"flexArrow"==c?n
d==mxConstants.ARROW_DIAMOND_THIN?"1"==b?"geSprite geSprite-"+a+"thindiamond":"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==d?"geSprite geSprite-"+a+"openasync":"dash"==d?"geSprite geSprite-"+a+"dash":"cross"==d?"geSprite geSprite-"+a+"cross":"async"==d?"1"==b?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==d||"circlePlus"==d?"1"==b||"circle"==d?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==d?"geSprite geSprite-"+a+"erone":"ERmandOne"==
d?"geSprite geSprite-"+a+"eronetoone":"ERmany"==d?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==d?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==d?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==d?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,c=this.actions.get("paste"),d=this.actions.get("pasteHere");c.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));d.setEnabled(c.isEnabled())};
-EditorUi.prototype.initClipboard=function(){var a=this,c=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var c=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var c=c||b.getSelectionCells(),c=b.getExportableCells(b.model.getTopmostCells(c)),d={},e=b.createCellLookup(c),f=b.cloneCells(c,null,d),m=new mxGraphModel,n=m.getChildAt(m.getRoot(),
-0),p=0;p<f.length;p++){m.add(n,f[p]);var r=b.view.getState(c[p]);if(null!=r){var u=b.getCellGeometry(f[p]);null!=u&&u.relative&&!m.isEdge(c[p])&&null==e[mxObjectIdentity.get(m.getParent(c[p]))]&&(u.offset=null,u.relative=!1,u.x=r.x/r.view.scale-r.view.translate.x,u.y=r.y/r.view.scale-r.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(d,e),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return c};var d=mxClipboard.paste;mxClipboard.paste=function(b){var c=
+EditorUi.prototype.initClipboard=function(){var a=this,c=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var c=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var c=c||b.getSelectionCells(),c=b.getExportableCells(b.model.getTopmostCells(c)),d={},e=b.createCellLookup(c),f=b.cloneCells(c,null,d),n=new mxGraphModel,m=n.getChildAt(n.getRoot(),
+0),p=0;p<f.length;p++){n.add(m,f[p]);var r=b.view.getState(c[p]);if(null!=r){var u=b.getCellGeometry(f[p]);null!=u&&u.relative&&!n.isEdge(c[p])&&null==e[mxObjectIdentity.get(n.getParent(c[p]))]&&(u.offset=null,u.relative=!1,u.x=r.x/r.view.scale-r.view.translate.x,u.y=r.y/r.view.scale-r.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(d,e),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return c};var d=mxClipboard.paste;mxClipboard.paste=function(b){var c=
null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):c=d.apply(this,arguments);a.updatePasteActionStates();return c};var b=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){b.apply(this,arguments);a.updatePasteActionStates()};var f=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){f.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),b=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,
-this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;e=null!=e?e:0;var f=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),g=mxUtils.hasScrollbars(a.container),k=a.view.translate,h=a.view.scale,m=mxRectangle.fromRectangle(f);
-m.x=m.x/h-k.x;m.y=m.y/h-k.y;m.width/=h;m.height/=h;var k=a.container.scrollTop,l=a.container.scrollLeft,p=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)p+=3;var n=a.container.offsetWidth-p,p=a.container.offsetHeight-p;b=b?Math.max(.3,Math.min(c||1,n/m.width)):h;c=(n-b*m.width)/2/b;var r=0==this.lightboxVerticalDivider?0:(p-b*m.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),r=Math.max(r,0));if(g||f.width<n||f.height<p)a.view.scaleAndTranslate(b,Math.floor(c-
-m.x),Math.floor(r-m.y)),a.container.scrollTop=k*b/h,a.container.scrollLeft=l*b/h;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/h),Math.floor(f.y+e/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;e=null!=e?e:0;var f=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),g=mxUtils.hasScrollbars(a.container),k=a.view.translate,h=a.view.scale,l=mxRectangle.fromRectangle(f);
+l.x=l.x/h-k.x;l.y=l.y/h-k.y;l.width/=h;l.height/=h;var k=a.container.scrollTop,n=a.container.scrollLeft,m=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)m+=3;var p=a.container.offsetWidth-m,m=a.container.offsetHeight-m;b=b?Math.max(.3,Math.min(c||1,p/l.width)):h;c=(p-b*l.width)/2/b;var r=0==this.lightboxVerticalDivider?0:(m-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),r=Math.max(r,0));if(g||f.width<p||f.height<m)a.view.scaleAndTranslate(b,Math.floor(c-
+l.x),Math.floor(r-l.y)),a.container.scrollTop=k*b/h,a.container.scrollLeft=n*b/h;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/h),Math.floor(f.y+e/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(b){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(b){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var f=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var e=mxUtils.bind(this,function(){var b=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
"0":this.chromelessToolbar.style.bottom=(null!=b?parseInt(b["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",e);e();var h=0,e=mxUtils.bind(this,function(a,b,c){h++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",c);a=document.createElement("img");a.setAttribute("border","0");
a.setAttribute("src",b);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=f.backBtn&&e(mxUtils.bind(this,function(a){window.location.href=f.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var g=e(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),k=document.createElement("div");k.style.display="inline-block";
-k.style.verticalAlign="top";k.style.fontFamily="Helvetica,Arial";k.style.marginTop="8px";k.style.fontSize="14px";k.style.color="#ffffff";this.chromelessToolbar.appendChild(k);var l=e(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(k.innerHTML="",mxUtils.write(k,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
-this.pages.length))});g.style.paddingLeft="0px";g.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",g.style.display="",k.style.display="inline-block"):(l.style.display="none",g.style.display="none",k.style.display="none");m()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",m)}e(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
+k.style.verticalAlign="top";k.style.fontFamily="Helvetica,Arial";k.style.marginTop="8px";k.style.fontSize="14px";k.style.color="#ffffff";this.chromelessToolbar.appendChild(k);var l=e(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(k.innerHTML="",mxUtils.write(k,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
+this.pages.length))});g.style.paddingLeft="0px";g.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",g.style.display="",k.style.display="inline-block"):(l.style.display="none",g.style.display="none",k.style.display="none");n()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",n)}e(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(b){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,r=null,u=mxUtils.bind(this,
function(a){null!=p&&(window.clearTimeout(p),p=null);null!=r&&(window.clearTimeout(r),r=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;r=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";r=null}),600)}),a||200)}),v=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),p=null);null!=r&&(window.clearTimeout(r),r=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
a||30)});if("1"==urlParams.layers){this.layersDialog=null;var t=e(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=t.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);
this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){t.style.display=1<w.getChildCount(w.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():
-"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(n=0;n<this.lightboxToolbarActions.length;n++){var x=this.lightboxToolbarActions[n];x.elem=e(x.fn,x.icon,x.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),
+"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(m=0;m<this.lightboxToolbarActions.length;m++){var x=this.lightboxToolbarActions[m];x.elem=e(x.fn,x.icon,x.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),
Editor.refreshLargeImage,mxResources.get("refresh",null,"Refresh"));null!=f.fullscreenBtn&&window.self!==window.top&&e(mxUtils.bind(this,function(b){f.fullscreenBtn.url?a.openLink(f.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(b)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(f.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&e(mxUtils.bind(this,function(a){"1"==urlParams.close||
f.closeBtn?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||v(30),u())}));mxEvent.addListener(this.chromelessToolbar,
mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():v(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():v(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||v(30)}));var B=a.getTolerance();a.addMouseListener({startX:0,
@@ -2228,8 +2229,8 @@ u():v(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(thi
this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;if(null==g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==c?H.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=
Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=a.view.getBackgroundPane(),I=a.view.getDrawPane();a.cumulativeZoomFactor=1;var y=null,G=null,L=null,O=null,P=null,M=function(b){null!=y&&window.clearTimeout(y);window.setTimeout(function(){if(!a.isMouseDown||O)y=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),I.style.transformOrigin="",A.style.transformOrigin="",mxClient.IS_SF?(I.style.transform="scale(1)",A.style.transform="scale(1)",window.setTimeout(function(){I.style.transform="";A.style.transform=""},0)):(I.style.transform="",A.style.transform=""),a.view.getDecoratorPane().style.opacity="",
-a.view.getOverlayPane().style.opacity="");var b=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=G&&(g=a.container.offsetWidth/2-G.x+e.x,k=a.container.offsetHeight/2-G.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=L&&(g+=b.x-L.x,k+=b.y-L.y),null!=c&&d.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=P&&I.setAttribute("filter",P);a.cumulativeZoomFactor=1;P=O=G=L=y=null}),null!=b?b:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},X=Date.now();a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(G=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-X)){X=Date.now();b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
+a.view.getOverlayPane().style.opacity="");var b=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,h=0;null!=G&&(g=a.container.offsetWidth/2-G.x+e.x,h=a.container.offsetHeight/2-G.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=L&&(g+=b.x-L.x,h+=b.y-L.y),null!=c&&d.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),h*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==h||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
+1),a.container.scrollTop-=h*(a.cumulativeZoomFactor-1)));null!=P&&I.setAttribute("filter",P);a.cumulativeZoomFactor=1;P=O=G=L=y=null}),null!=b?b:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},W=Date.now();a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(G=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-W)){W=Date.now();b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*
this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==P&&""!=I.getAttribute("filter")&&(P=I.getAttribute("filter"),I.removeAttribute("filter"));L=new mxPoint(a.container.scrollLeft,a.container.scrollTop);b=c?a.container.scrollLeft+a.container.clientWidth/2:G.x+a.container.scrollLeft-a.container.offsetLeft;var f=c?a.container.scrollTop+a.container.clientHeight/2:G.y+a.container.scrollTop-a.container.offsetTop;I.style.transformOrigin=b+"px "+f+"px";I.style.transform="scale("+
this.cumulativeZoomFactor+")";A.style.transformOrigin=b+"px "+f+"px";A.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(b=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(b.style,"transform-origin",(c?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":G.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(c?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":G.y+
@@ -2278,10 +2279,10 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var c=document.createElement("div");c.className=a;return c};
-EditorUi.prototype.addSplitHandler=function(a,c,d,b){function f(a){if(null!=h){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,g+(c?e.x-h.x:h.y-e.y)-d));mxEvent.consume(a);g!=m()&&(k=!0,l=null)}}function e(a){f(a);h=g=null}var h=null,g=null,k=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var b=parseInt(c?a.style.left:a.style.bottom);c||(b=b+d-this.footerHeight);return b});mxEvent.addGestureListeners(a,function(a){h=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));g=m();k=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!k&&this.hsplitClickEnabled){var c=null!=l?l-d:0;l=m();b(c);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,f,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,f,e)})};
+EditorUi.prototype.addSplitHandler=function(a,c,d,b){function f(a){if(null!=h){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,g+(c?e.x-h.x:h.y-e.y)-d));mxEvent.consume(a);g!=n()&&(k=!0,l=null)}}function e(a){f(a);h=g=null}var h=null,g=null,k=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var n=mxUtils.bind(this,function(){var b=parseInt(c?a.style.left:a.style.bottom);c||(b=b+d-this.footerHeight);return b});mxEvent.addGestureListeners(a,function(a){h=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));g=n();k=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!k&&this.hsplitClickEnabled){var c=null!=l?l-d:0;l=n();b(c);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,f,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,f,e)})};
EditorUi.prototype.handleError=function(a,c,d,b,f){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=c){f=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok");c=null!=c?c:mxResources.get("error");null!=a&&null!=a.message&&(f=mxUtils.htmlEntities(a.message));this.showError(c,f,e,d,null,null,null,null,null,null,null,null,b?d:null)}else null!=d&&d()};
-EditorUi.prototype.showError=function(a,c,d,b,f,e,h,g,k,l,m,n,p){a=new ErrorDialog(this,a,c,d||mxResources.get("ok"),b,f,e,h,n,g,k);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(a.container,l||340,m||100+20*c,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,c,d,b,f,e,h,g,k,l){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,c,d,b,f,e,h,g,k,l);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(a,c,d,b,f,e,h,g,k,l,n,m,p){a=new ErrorDialog(this,a,c,d||mxResources.get("ok"),b,f,e,h,m,g,k);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(a.container,l||340,n||100+20*c,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,c,d,b,f,e,h,g,k,l){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,c,d,b,f,e,h,g,k,l);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,c,d){null!=this.dialogs&&0<this.dialogs.length&&(null==d||d==this.dialog.container.firstChild)&&(d=this.dialogs.pop(),0==d.close(a,c)?this.dialogs.push(d):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var c=a.getSelectionCells(),d=new mxDictionary,b=[],f=0;f<c.length;f++){var e=a.isTableCell(c[f])?a.model.getParent(c[f]):c[f];null==e||d.get(e)||(d.put(e,!0),b.push(e))}a.setSelectionCells(a.duplicateCells(b,!1))}catch(h){this.handleError(h)}};
EditorUi.prototype.pickColor=function(a,c){var d=this.editor.graph,b=d.cellEditor.saveSelection(),f=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),e=new ColorDialog(this,a||"none",function(a){d.cellEditor.restoreSelection(b);c(a)},function(){d.cellEditor.restoreSelection(b)});this.showDialog(e.container,230,f,!0,!1);e.init()};
@@ -2289,7 +2290,7 @@ EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind
EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=null;try{var d=a.indexOf("&lt;mxGraphModel ");if(0<=d){var b=a.lastIndexOf("&lt;/mxGraphModel&gt;");b>d&&(c=a.substring(d,b+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(f){}return c};
EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){null!=c?a(c):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){if(null!=c){var b=decodeURIComponent(c);this.isCompatibleString(b)&&(c=b)}a(c)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,c){navigator.clipboard.read().then(mxUtils.bind(this,function(d){if(null!=d&&0<d.length&&"html"==c&&0<=mxUtils.indexOf(d[0].types,"text/html"))d[0].getType("text/html").then(mxUtils.bind(this,function(b){b.text().then(mxUtils.bind(this,function(b){try{var c=this.parseHtmlData(b),d="text/plain"!=c.getAttribute("data-type")?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);try{var f=d.lastIndexOf("%3E");
-0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(m){}try{var k=c.getElementsByTagName("span"),l=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(d);this.isCompatibleString(l)&&(d=l)}catch(m){}}catch(m){}a(this.isCompatibleString(d)?d:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=d&&0<d.length&&"text"==c&&0<=mxUtils.indexOf(d[0].types,"text/plain"))d[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
+0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(n){}try{var k=c.getElementsByTagName("span"),l=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(d);this.isCompatibleString(l)&&(d=l)}catch(n){}}catch(n){}a(this.isCompatibleString(d)?d:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=d&&0<d.length&&"text"==c&&0<=mxUtils.indexOf(d[0].types,"text/plain"))d[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
else a(null)}))["catch"](function(c){a(null)})};
EditorUi.prototype.parseHtmlData=function(a){var c=null;if(null!=a&&0<a.length){var d="<meta "==a.substring(0,6),c=document.createElement("div");c.innerHTML=(d?'<meta charset="utf-8">':"")+this.editor.graph.sanitizeHtml(a);asHtml=!0;a=c.getElementsByTagName("style");if(null!=a)for(;0<a.length;)a[0].parentNode.removeChild(a[0]);null!=c.firstChild&&c.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=c.firstChild.nextSibling&&c.firstChild.nextSibling.nodeType==mxConstants.NODETYPE_ELEMENT&&"META"==
c.firstChild.nodeName&&"A"==c.firstChild.nextSibling.nodeName&&null==c.firstChild.nextSibling.nextSibling&&(a=null==c.firstChild.nextSibling.innerText?mxUtils.getTextContent(c.firstChild.nextSibling):c.firstChild.nextSibling.innerText,a==c.firstChild.nextSibling.getAttribute("href")&&(mxUtils.setTextContent(c,a),asHtml=!1));d=d&&null!=c.firstChild?c.firstChild.nextSibling:c.firstChild;null!=d&&null==d.nextSibling&&d.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==d.nodeName?(a=d.getAttribute("src"),
@@ -2311,8 +2312,8 @@ b.model.isVertex(g)&&0>mxUtils.indexOf(e,g)&&k.push(g)):k.push(e[f]);0<k.length&
mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&e.apply(this,arguments)};f.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==d.dialogs||0==d.dialogs.length)};f.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var h=[],g=
null,k={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},l=f.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var e=d.actions.get(d.altShiftActions[a.keyCode]);if(null!=e)return e.funct}if(null!=k[a.keyCode]&&!b.isSelectionEmpty())if(!this.isControlDown(a)&&mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=
b.connectVertex(b.getSelectionCell(),k[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=d.hoverIcons&&d.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){c(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return l.apply(this,
-arguments)};f.bindAction=mxUtils.bind(this,function(a,b,c,d){var e=this.actions.get(c);null!=e&&(c=function(){e.isEnabled()&&e.funct()},b?d?f.bindControlShiftKey(a,c):f.bindControlKey(a,c):d?f.bindShiftKey(a,c):f.bindKey(a,c))});var m=this,n=f.escape;f.escape=function(a){n.apply(this,arguments)};f.enter=function(){};f.bindControlShiftKey(36,function(){b.exitGroup()});f.bindControlShiftKey(35,function(){b.enterGroup()});f.bindShiftKey(36,function(){b.home()});f.bindKey(35,function(){b.refresh()});
-f.bindAction(107,!0,"zoomIn");f.bindAction(109,!0,"zoomOut");f.bindAction(80,!0,"print");f.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)f.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),f.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),f.bindControlKey(13,function(){m.ctrlEnter()}),f.bindAction(8,!1,"delete"),f.bindAction(8,!0,"deleteAll"),f.bindAction(8,!1,"deleteLabels",!0),f.bindAction(46,!1,"delete"),f.bindAction(46,!0,"deleteAll"),
+arguments)};f.bindAction=mxUtils.bind(this,function(a,b,c,d){var e=this.actions.get(c);null!=e&&(c=function(){e.isEnabled()&&e.funct()},b?d?f.bindControlShiftKey(a,c):f.bindControlKey(a,c):d?f.bindShiftKey(a,c):f.bindKey(a,c))});var n=this,m=f.escape;f.escape=function(a){m.apply(this,arguments)};f.enter=function(){};f.bindControlShiftKey(36,function(){b.exitGroup()});f.bindControlShiftKey(35,function(){b.enterGroup()});f.bindShiftKey(36,function(){b.home()});f.bindKey(35,function(){b.refresh()});
+f.bindAction(107,!0,"zoomIn");f.bindAction(109,!0,"zoomOut");f.bindAction(80,!0,"print");f.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)f.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),f.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),f.bindControlKey(13,function(){n.ctrlEnter()}),f.bindAction(8,!1,"delete"),f.bindAction(8,!0,"deleteAll"),f.bindAction(8,!1,"deleteLabels",!0),f.bindAction(46,!1,"delete"),f.bindAction(46,!0,"deleteAll"),
f.bindAction(46,!1,"deleteLabels",!0),f.bindAction(36,!1,"resetView"),f.bindAction(72,!0,"fitWindow",!0),f.bindAction(74,!0,"fitPage"),f.bindAction(74,!0,"fitTwoPages",!0),f.bindAction(48,!0,"customZoom"),f.bindAction(82,!0,"turn"),f.bindAction(82,!0,"clearDefaultStyle",!0),f.bindAction(83,!0,"save"),f.bindAction(83,!0,"saveAs",!0),f.bindAction(65,!0,"selectAll"),f.bindAction(65,!0,"selectNone",!0),f.bindAction(73,!0,"selectVertices",!0),f.bindAction(69,!0,"selectEdges",!0),f.bindAction(69,!0,"editStyle"),
f.bindAction(66,!0,"bold"),f.bindAction(66,!0,"toBack",!0),f.bindAction(70,!0,"toFront",!0),f.bindAction(68,!0,"duplicate"),f.bindAction(68,!0,"setAsDefaultStyle",!0),f.bindAction(90,!0,"undo"),f.bindAction(89,!0,"autosize",!0),f.bindAction(88,!0,"cut"),f.bindAction(67,!0,"copy"),f.bindAction(86,!0,"paste"),f.bindAction(71,!0,"group"),f.bindAction(77,!0,"editData"),f.bindAction(71,!0,"grid",!0),f.bindAction(73,!0,"italic"),f.bindAction(76,!0,"lockUnlock"),f.bindAction(76,!0,"layers",!0),f.bindAction(80,
!0,"formatPanel",!0),f.bindAction(85,!0,"underline"),f.bindAction(85,!0,"ungroup",!0),f.bindAction(190,!0,"superscript"),f.bindAction(188,!0,"subscript"),f.bindAction(13,!1,"keyPressEnter"),f.bindKey(113,function(){b.isEnabled()&&b.startEditingAtCell()});mxClient.IS_WIN?f.bindAction(89,!0,"redo"):f.bindAction(90,!0,"redo",!0);return f};
@@ -2349,16 +2350,16 @@ Sidebar.prototype.addEntries=function(a){for(var c=0;c<a.length;c++)mxUtils.bind
mxUtils.bind(this,function(){var b=this.editorUi.stringToCells(Graph.decompress(a.xml));return this.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(a[c])};Sidebar.prototype.setCurrentSearchEntryLibrary=function(a,c){this.currentSearchEntryLibrary=null!=a?{id:a,lib:c}:null};
Sidebar.prototype.addEntry=function(a,c){if(null!=this.taglist&&null!=a&&0<a.length){null!=this.currentSearchEntryLibrary&&(c.parentLibraries=[this.currentSearchEntryLibrary]);for(var d=a.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),b=[],f={},e=0;e<d.length;e++){null==f[d[e]]&&(f[d[e]]=!0,b.push(d[e]));var h=d[e].replace(/\.*\d*$/,"");h!=d[e]&&null==f[h]&&(f[h]=!0,b.push(h))}for(e=0;e<b.length;e++)this.addEntryForTag(b[e],c)}return c};
Sidebar.prototype.addEntryForTag=function(a,c){if(null!=a&&1<a.length){var d=this.taglist[a];"object"!==typeof d&&(d={entries:[]},this.taglist[a]=d);d.entries.push(c)}};
-Sidebar.prototype.searchEntries=function(a,c,d,b,f){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");f=new mxDictionary;var h=(d+1)*c;a=[];for(var g=0,k=0;k<e.length;k++)if(0<e[k].length){var l=this.taglist[e[k]],m=new mxDictionary;if(null!=l){var n=l.entries;a=[];for(var p=0;p<n.length;p++)if(l=n[p],0==g==(null==f.get(l))&&(m.put(l,l),a.push(l),k==e.length-1&&a.length==h)){b(a.slice(d*c,h),h,!0,e);return}}else a=[];f=m;g++}f=a.length;b(a.slice(d*c,(d+1)*c),f,!1,e)}else b([],null,
+Sidebar.prototype.searchEntries=function(a,c,d,b,f){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");f=new mxDictionary;var h=(d+1)*c;a=[];for(var g=0,k=0;k<e.length;k++)if(0<e[k].length){var l=this.taglist[e[k]],n=new mxDictionary;if(null!=l){var m=l.entries;a=[];for(var p=0;p<m.length;p++)if(l=m[p],0==g==(null==f.get(l))&&(n.put(l,l),a.push(l),k==e.length-1&&a.length==h)){b(a.slice(d*c,h),h,!0,e);return}}else a=[];f=n;g++}f=a.length;b(a.slice(d*c,(d+1)*c),f,!1,e)}else b([],null,
null,e)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for(var c=[],d={},b=0;b<a.length;b++)null==d[a[b]]&&(d[a[b]]="1",c.push(a[b]));return c.join(" ")}return null};Sidebar.prototype.cloneCell=function(a,c){var d=a.clone();null!=c&&(d.value=c);return d};Sidebar.prototype.showPopupMenuForEntry=function(a,c,d){};
Sidebar.prototype.addSearchPalette=function(a){var c=document.createElement("div");c.style.visibility="hidden";this.container.appendChild(c);var d=document.createElement("div");d.className="geSidebar";d.style.boxSizing="border-box";d.style.overflow="hidden";d.style.width="100%";d.style.padding="8px";d.style.paddingTop="14px";d.style.paddingBottom="0px";a||(d.style.display="none");var b=document.createElement("div");b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.paddingBottom="8px";
b.style.cursor="default";var f=document.createElement("input");f.setAttribute("placeholder",mxResources.get("searchShapes"));f.setAttribute("type","text");f.style.fontSize="12px";f.style.overflow="hidden";f.style.boxSizing="border-box";f.style.border="solid 1px #d5d5d5";f.style.borderRadius="4px";f.style.width="100%";f.style.outline="none";f.style.padding="6px";f.style.paddingRight="20px";b.appendChild(f);var e=document.createElement("img");e.setAttribute("src",Sidebar.prototype.searchImage);e.setAttribute("title",
mxResources.get("search"));e.style.position="relative";e.style.left="-18px";e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var h;b.appendChild(e);d.appendChild(b);var g=document.createElement("center"),k=mxUtils.button(mxResources.get("moreResults"),function(){h()});k.style.display="none";k.style.lineHeight="normal";k.style.fontSize="12px";k.style.padding="6px 12px 6px 12px";k.style.marginTop="4px";k.style.marginBottom="8px";g.style.paddingTop="4px";g.style.paddingBottom=
-"4px";g.appendChild(k);d.appendChild(g);var l="",m=!1,n=!1,p=0,r={},u=12,v=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),k.style.display="none",l=f.value="",v());f.focus()});h=mxUtils.bind(this,
-function(){u=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(v(),l=f.value,r={},n=!1,p=0),!m&&!n)){k.setAttribute("disabled","true");k.style.display="";k.style.cursor="wait";k.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,u,p,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;p++;this.insertSearchHint(d,l,u,p,b,c,e,f);
+"4px";g.appendChild(k);d.appendChild(g);var l="",n=!1,m=!1,p=0,r={},u=12,v=mxUtils.bind(this,function(){n=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),k.style.display="none",l=f.value="",v());f.focus()});h=mxUtils.bind(this,
+function(){u=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(v(),l=f.value,r={},m=!1,p=0),!n&&!m)){k.setAttribute("disabled","true");k.style.display="";k.style.cursor="wait";k.innerHTML=mxResources.get("loading")+"...";n=!0;var a={};this.currentSearch=a;this.searchEntries(l,u,p,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];n=!1;p++;this.insertSearchHint(d,l,u,p,b,c,e,f);
0==b.length&&1==p&&(l="");null!=g.parentNode&&g.parentNode.removeChild(g);for(c=0;c<b.length;c++)mxUtils.bind(this,function(a){try{var b=a();null==r[b.innerHTML]?(r[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],d.appendChild(b)):null!=a.parentLibraries&&(r[b.innerHTML]=r[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=r[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(I){}})(b[c]);
-e?(k.removeAttribute("disabled"),k.innerHTML=mxResources.get("moreResults")):(k.innerHTML=mxResources.get("reset"),k.style.display="none",n=!0);k.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){k.style.cursor=""}))}}else v(),l=f.value="",r={},k.style.display="none",n=!1,f.focus()});this.searchShapes=function(a){f.value=a;h()};mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(h(),mxEvent.consume(a))}));mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==
-f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(n=!0,k.style.display="none"):f.value!=l?(k.style.display="none",n=!1):m||(k.style.display=n?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&
+e?(k.removeAttribute("disabled"),k.innerHTML=mxResources.get("moreResults")):(k.innerHTML=mxResources.get("reset"),k.style.display="none",m=!0);k.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){k.style.cursor=""}))}}else v(),l=f.value="",r={},k.style.display="none",m=!1,f.focus()});this.searchShapes=function(a){f.value=a;h()};mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(h(),mxEvent.consume(a))}));mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==
+f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(m=!0,k.style.display="none"):f.value!=l?(k.style.display="none",m=!1):n||(k.style.display=m?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&
a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
Sidebar.prototype.insertSearchHint=function(a,c,d,b,f,e,h,g){0==f.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
Sidebar.prototype.addGeneralPalette=function(a){this.setCurrentSearchEntryLibrary("general","general");var c=this,d=new mxCell("List Item",new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");d.vertex=!0;var b=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",
@@ -2474,51 +2475,51 @@ mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(g=this.graph.
this.sidebarTitles&&null!=f&&0!=h&&(b.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),c.style.paddingTop="4px",mxUtils.write(c,f),b.appendChild(c));return a};
Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var c=document.createElement("div");c.setAttribute("title",a);c.style.textOverflow="ellipsis";c.style.whiteSpace="nowrap";c.style.textAlign="center";c.style.overflow="hidden";c.style.width="100%";c.style.padding="14px 0";mxUtils.write(c,a);return c})};
Sidebar.prototype.createItem=function(a,c,d,b,f,e,h,g){g=null!=g?g:!0;var k=document.createElement("a");k.className="geItem";k.style.overflow="hidden";var l=2*this.thumbBorder;k.style.width=this.thumbWidth+l+"px";k.style.height=this.thumbHeight+l+"px";k.style.padding=this.thumbPadding+"px";mxEvent.addListener(k,"click",function(a){mxEvent.consume(a)});a=this.graph.cloneCells(a);this.editorUi.insertHandler(a,null,this.graph.model,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,
-"1"==urlParams.sketch,"1"==urlParams.sketch);this.createThumb(a,this.thumbWidth,this.thumbHeight,k,c,d,b,f,e);var m=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(k,this.createDropHandler(a,!0,h,m),this.createDragPreview(f,e),a,m),this.addClickHandler(k,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(k,this.createDropHandler(a,!1,h,m),this.createDragPreview(f,
-e),a,m),this.addClickHandler(k,b,a));!mxClient.IS_IOS&&g&&mxEvent.addGestureListeners(k,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(k,a,m.width,m.height,c,d)}));return k};
+"1"==urlParams.sketch,"1"==urlParams.sketch);this.createThumb(a,this.thumbWidth,this.thumbHeight,k,c,d,b,f,e);var n=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(k,this.createDropHandler(a,!0,h,n),this.createDragPreview(f,e),a,n),this.addClickHandler(k,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(k,this.createDropHandler(a,!1,h,n),this.createDragPreview(f,
+e),a,n),this.addClickHandler(k,b,a));!mxClient.IS_IOS&&g&&mxEvent.addGestureListeners(k,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(k,a,n.width,n.height,c,d)}));return k};
Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),h="shadow dashed dashPattern fontFamily fontSize fontColor align startFill startSize endFill endSize strokeColor strokeWidth fillColor gradientColor html part noEdgeStyle edgeStyle elbow childLayout recursiveResize container collapsible connectable comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),g=
-0;g<c.length;g++){var k=c[g];if(d.getModel().isVertex(k)==d.getModel().isVertex(a)||d.getModel().isEdge(k)==d.getModel().isEdge(a)){var l=d.getCurrentCellStyle(c[g]);d.getModel().setStyle(k,e);if("1"==mxUtils.getValue(l,"composite","0"))for(var m=d.model.getChildCount(k);0<=m;m--)d.model.remove(d.model.getChildAt(k,m));"umlLifeline"==l[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[k]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],
-[k]));for(m=0;m<h.length;m++){var n=l[h[m]];null!=n&&d.setCellStyles(h[m],n,[k])}f.push(k)}}}finally{d.model.endUpdate()}return f};
-Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,h,g,k,l){for(l=l?null:mxEvent.isTouchEvent(e)||mxEvent.isPenEvent(e)?document.elementFromPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)):mxEvent.getSource(e);null!=l&&l!=this.container;)l=l.parentNode;if(null==l&&f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();l=null==h||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(h,a,e);var m=null;null==h||l||(h=null);if(!f.isCellLocked(h||
-f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);k=Math.round(k);if(c&&f.isSplitTarget(h,a,e)){var n=f.view.scale,p=f.view.translate,r=(g+p.x)*n,u=(k+p.y)*n,v=f.cloneCells(a);f.splitEdge(h,v,null,g-b.width/2,k-b.height/2,r,u);m=v}else 0<a.length&&(m=f.importCells(a,g,k,h));if(null!=f.layoutManager){var t=f.layoutManager.getLayout(h);if(null!=t)for(n=f.view.scale,p=f.view.translate,r=(g+p.x)*n,u=(k+p.y)*n,h=0;h<m.length;h++)t.moveCell(m[h],r,u)}!d||null!=e&&mxEvent.isShiftDown(e)||
-f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(w){this.editorUi.handleError(w)}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=m&&1==m.length&&window.setTimeout(function(){f.startEditing(m[0])},0)}}mxEvent.consume(e)}})};
+0;g<c.length;g++){var k=c[g];if(d.getModel().isVertex(k)==d.getModel().isVertex(a)||d.getModel().isEdge(k)==d.getModel().isEdge(a)){var l=d.getCurrentCellStyle(c[g]);d.getModel().setStyle(k,e);if("1"==mxUtils.getValue(l,"composite","0"))for(var n=d.model.getChildCount(k);0<=n;n--)d.model.remove(d.model.getChildAt(k,n));"umlLifeline"==l[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[k]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],
+[k]));for(n=0;n<h.length;n++){var m=l[h[n]];null!=m&&d.setCellStyles(h[n],m,[k])}f.push(k)}}}finally{d.model.endUpdate()}return f};
+Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,h,g,k,l){for(l=l?null:mxEvent.isTouchEvent(e)||mxEvent.isPenEvent(e)?document.elementFromPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)):mxEvent.getSource(e);null!=l&&l!=this.container;)l=l.parentNode;if(null==l&&f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();l=null==h||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(h,a,e);var n=null;null==h||l||(h=null);if(!f.isCellLocked(h||
+f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);k=Math.round(k);if(c&&f.isSplitTarget(h,a,e)){var m=f.view.scale,p=f.view.translate,r=(g+p.x)*m,u=(k+p.y)*m,v=f.cloneCells(a);f.splitEdge(h,v,null,g-b.width/2,k-b.height/2,r,u);n=v}else 0<a.length&&(n=f.importCells(a,g,k,h));if(null!=f.layoutManager){var t=f.layoutManager.getLayout(h);if(null!=t)for(m=f.view.scale,p=f.view.translate,r=(g+p.x)*m,u=(k+p.y)*m,h=0;h<n.length;h++)t.moveCell(n[h],r,u)}!d||null!=e&&mxEvent.isShiftDown(e)||
+f.fireEvent(new mxEventObject("cellsInserted","cells",n))}catch(w){this.editorUi.handleError(w)}finally{f.model.endUpdate()}null!=n&&0<n.length&&(f.scrollCellToVisible(n[0]),f.setSelectionCells(n));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=n&&1==n.length&&window.setTimeout(function(){f.startEditing(n[0])},0)}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var d=document.createElement("div");d.className="geDragPreview";d.style.width=a+"px";d.style.height=c+"px";return d};
-Sidebar.prototype.dropAndConnect=function(a,c,d,b,f){var e=this.getDropAndConnectGeometry(a,c[b],d,c),h=[];if(null!=e){var g=this.editorUi.editor.graph,k=null;g.model.beginUpdate();try{var l=g.getCellGeometry(a),m=g.getCellGeometry(c[b]),n=g.model.getParent(a),p=!0;if(null!=g.layoutManager){var r=g.layoutManager.getLayout(n);null!=r&&r.constructor==mxStackLayout&&(p=!1)}var h=g.model.isEdge(a)?null:g.view.getState(n),u=r=0;if(null!=h){var v=h.origin,r=v.x,u=v.y,t=e.getTerminalPoint(!1);null!=t&&(t.x+=
-v.x,t.y+=v.y)}var w=!g.isTableRow(a)&&!g.isTableCell(a)&&(g.model.isEdge(a)||null!=l&&!l.relative&&p),x=g.getCellAt((e.x+r+g.view.translate.x)*g.view.scale,(e.y+u+g.view.translate.y)*g.view.scale,null,null,null,function(a,b,c){return!g.isContainer(a.cell)});if(null!=x&&x!=n)h=g.view.getState(x),null!=h&&(v=h.origin,n=x,w=!0,g.model.isEdge(a)||(e.x-=v.x-r,e.y-=v.y-u));else if(!p||g.isTableRow(a)||g.isTableCell(a))e.x+=r,e.y+=u;r=m.x;u=m.y;g.model.isEdge(c[b])&&(u=r=0);h=c=g.importCells(c,e.x-(w?r:
-0),e.y-(w?u:0),w?n:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var B=g.getCellGeometry(c[b]);B.points=null;if(null!=B.getTerminalPoint(!1))B.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(w&&g.model.isVertex(n)){var E=g.view.getState(n),v=E.cell!=g.view.currentRoot?E.origin:new mxPoint(0,0);g.cellsMoved(c,v.x,v.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),r=e.x-Math.round(m.x),u=e.y-Math.round(m.y),
-e.x=Math.round(m.x),e.y=Math.round(m.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,r,u,null,null,!0),h=c.slice(),k=1==h.length?h[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||g.fireEvent(new mxEventObject("cellsInserted","cells",c))}catch(H){this.editorUi.handleError(H)}finally{g.model.endUpdate()}g.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=k&&window.setTimeout(function(){g.startEditing(k)},0)}return h};
+Sidebar.prototype.dropAndConnect=function(a,c,d,b,f){var e=this.getDropAndConnectGeometry(a,c[b],d,c),h=[];if(null!=e){var g=this.editorUi.editor.graph,k=null;g.model.beginUpdate();try{var l=g.getCellGeometry(a),n=g.getCellGeometry(c[b]),m=g.model.getParent(a),p=!0;if(null!=g.layoutManager){var r=g.layoutManager.getLayout(m);null!=r&&r.constructor==mxStackLayout&&(p=!1)}var h=g.model.isEdge(a)?null:g.view.getState(m),u=r=0;if(null!=h){var v=h.origin,r=v.x,u=v.y,t=e.getTerminalPoint(!1);null!=t&&(t.x+=
+v.x,t.y+=v.y)}var w=!g.isTableRow(a)&&!g.isTableCell(a)&&(g.model.isEdge(a)||null!=l&&!l.relative&&p),x=g.getCellAt((e.x+r+g.view.translate.x)*g.view.scale,(e.y+u+g.view.translate.y)*g.view.scale,null,null,null,function(a,b,c){return!g.isContainer(a.cell)});if(null!=x&&x!=m)h=g.view.getState(x),null!=h&&(v=h.origin,m=x,w=!0,g.model.isEdge(a)||(e.x-=v.x-r,e.y-=v.y-u));else if(!p||g.isTableRow(a)||g.isTableCell(a))e.x+=r,e.y+=u;r=n.x;u=n.y;g.model.isEdge(c[b])&&(u=r=0);h=c=g.importCells(c,e.x-(w?r:
+0),e.y-(w?u:0),w?m:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var B=g.getCellGeometry(c[b]);B.points=null;if(null!=B.getTerminalPoint(!1))B.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(w&&g.model.isVertex(m)){var E=g.view.getState(m),v=E.cell!=g.view.currentRoot?E.origin:new mxPoint(0,0);g.cellsMoved(c,v.x,v.y,null,null,!0)}}else n=g.getCellGeometry(c[b]),r=e.x-Math.round(n.x),u=e.y-Math.round(n.y),
+e.x=Math.round(n.x),e.y=Math.round(n.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,r,u,null,null,!0),h=c.slice(),k=1==h.length?h[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||g.fireEvent(new mxEventObject("cellsInserted","cells",c))}catch(H){this.editorUi.handleError(H)}finally{g.model.endUpdate()}g.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=k&&window.setTimeout(function(){g.startEditing(k)},0)}return h};
Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,h=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
g=g.clone(),g.x=(a.x-e.translate.x)/e.scale,g.y=(a.y-e.translate.y)/e.scale),e=f.defaultEdgeLength,f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=b.getTerminalPoint(!1)?(c=b.getTerminalPoint(!0),f=b.getTerminalPoint(!1),e=f.x-c.x,c=f.y-c.y,e=Math.sqrt(e*e+c*c),b.x=g.getCenterX(),b.y=g.getCenterY(),b.width=1,b.height=1,d==mxConstants.DIRECTION_NORTH?(b.height=e,b.y=g.y-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1)):d==mxConstants.DIRECTION_EAST?(b.width=e,b.x=g.x+g.width,b.setTerminalPoint(new mxPoint(b.x+
b.width,b.y),!1)):d==mxConstants.DIRECTION_SOUTH?(b.height=e,b.y=g.y+g.height,b.setTerminalPoint(new mxPoint(b.x,b.y+b.height),!1)):d==mxConstants.DIRECTION_WEST&&(b.width=e,b.x=g.x-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1))):(!h&&45<b.width&&45<b.height&&45<g.width&&45<g.height&&(b.width*=g.height/b.height,b.height=g.height),b.x=g.x+g.width/2-b.width/2,b.y=g.y+g.height/2-b.height/2,d==mxConstants.DIRECTION_NORTH?b.y=b.y-g.height/2-b.height/2-e:d==mxConstants.DIRECTION_EAST?b.x=b.x+g.width/2+
b.width/2+e:d==mxConstants.DIRECTION_SOUTH?b.y=b.y+g.height/2+b.height/2+e:d==mxConstants.DIRECTION_WEST&&(b.x=b.x-g.width/2-b.width/2-e),f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=c.getTerminal(!1)&&(g=f.getCellGeometry(c.getTerminal(!1)),null!=g&&(d==mxConstants.DIRECTION_NORTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()+g.height/2):d==mxConstants.DIRECTION_EAST?(b.x-=g.getCenterX()-g.width/2,b.y-=g.getCenterY()):d==mxConstants.DIRECTION_SOUTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()-g.height/
2):d==mxConstants.DIRECTION_WEST&&(b.x-=g.getCenterX()+g.width/2,b.y-=g.getCenterY()))))));return b};Sidebar.prototype.isDropStyleEnabled=function(a,c){var d=!0;if(null!=c&&1==a.length){var b=this.graph.getCellStyle(a[c]);null!=b&&(d=mxUtils.getValue(b,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(b,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE)}return d};
Sidebar.prototype.isDropStyleTargetIgnored=function(a){return this.graph.isSwimlane(a.cell)||this.graph.isTableCell(a.cell)||this.graph.isTableRow(a.cell)||this.graph.isTable(a.cell)};
-Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;c=mxUtils.createImage(a.src);c.style.width=a.width+"px";c.style.height=a.height+"px";null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function h(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),M=d):mxUtils.setOpacity(d,d==y?30:20));return c}for(var g=this.editorUi,k=g.editor.graph,l=null,m=
-null,n=this,p=0;p<b.length&&(null==m&&k.model.isVertex(b[p])?m=p:null==l&&k.model.isEdge(b[p])&&null==k.model.getTerminal(b[p],!0)&&(l=p),null==m||null==l);p++);var r=this.isDropStyleEnabled(b,m),u=mxUtils.makeDraggable(a,k,mxUtils.bind(this,function(a,d,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=x&&M==y){var k=a.isCellSelected(x.cell)?a.getSelectionCells():[x.cell],k=this.updateShapes(a.model.isEdge(x.cell)?b[0]:b[m],k);a.setSelectionCells(k)}else null!=
-b&&null!=M&&null!=t&&M!=y?(k=a.model.isEdge(t.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(t.cell,b,P,k,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,k.autoscroll,!0,!0);k.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||k.isCellLocked(k.getDefaultParent())||(k.stopEditing(),
-v.apply(this,arguments))};var t=null,w=null,x=null,B=!1,E=e(this.triangleUp,mxResources.get("connect")),H=e(this.triangleRight,mxResources.get("connect")),A=e(this.triangleDown,mxResources.get("connect")),I=e(this.triangleLeft,mxResources.get("connect")),y=e(this.refreshTarget,mxResources.get("replace")),G=null,L=e(this.roundDrop),O=e(this.roundDrop),P=mxConstants.DIRECTION_NORTH,M=null,X=u.createPreviewElement;u.createPreviewElement=function(a){var b=X.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
-"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var aa=u.dragEnter;u.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");aa.apply(this,arguments)};var Z=u.dragExit;u.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");Z.apply(this,arguments)};u.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=M&&this.currentGuide.hide();if(null!=this.previewElement){var d=
-a.view;if(null!=x&&M==y)this.previewElement.style.display=a.model.isEdge(x.cell)?"none":"",this.previewElement.style.left=x.x+"px",this.previewElement.style.top=x.y+"px",this.previewElement.style.width=x.width+"px",this.previewElement.style.height=x.height+"px";else if(null!=t&&null!=M){null!=u.currentHighlight&&null!=u.currentHighlight.state&&u.currentHighlight.hide();var e=a.model.isEdge(t.cell)||null==l?m:l,g=n.getDropAndConnectGeometry(t.cell,b[e],P,b),k=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
+Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;c=mxUtils.createImage(a.src);c.style.width=a.width+"px";c.style.height=a.height+"px";null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function h(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),M=d):mxUtils.setOpacity(d,d==y?30:20));return c}for(var g=this.editorUi,k=g.editor.graph,l=null,n=
+null,m=this,p=0;p<b.length&&(null==n&&k.model.isVertex(b[p])?n=p:null==l&&k.model.isEdge(b[p])&&null==k.model.getTerminal(b[p],!0)&&(l=p),null==n||null==l);p++);var r=this.isDropStyleEnabled(b,n),u=mxUtils.makeDraggable(a,k,mxUtils.bind(this,function(a,d,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=x&&M==y){var k=a.isCellSelected(x.cell)?a.getSelectionCells():[x.cell],k=this.updateShapes(a.model.isEdge(x.cell)?b[0]:b[n],k);a.setSelectionCells(k)}else null!=
+b&&null!=M&&null!=t&&M!=y?(k=a.model.isEdge(t.cell)||null==l?n:l,a.setSelectionCells(this.dropAndConnect(t.cell,b,P,k,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,k.autoscroll,!0,!0);k.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||k.isCellLocked(k.getDefaultParent())||(k.stopEditing(),
+v.apply(this,arguments))};var t=null,w=null,x=null,B=!1,E=e(this.triangleUp,mxResources.get("connect")),H=e(this.triangleRight,mxResources.get("connect")),A=e(this.triangleDown,mxResources.get("connect")),I=e(this.triangleLeft,mxResources.get("connect")),y=e(this.refreshTarget,mxResources.get("replace")),G=null,L=e(this.roundDrop),O=e(this.roundDrop),P=mxConstants.DIRECTION_NORTH,M=null,W=u.createPreviewElement;u.createPreviewElement=function(a){var b=W.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
+"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var ba=u.dragEnter;u.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");ba.apply(this,arguments)};var Z=u.dragExit;u.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");Z.apply(this,arguments)};u.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=M&&this.currentGuide.hide();if(null!=this.previewElement){var d=
+a.view;if(null!=x&&M==y)this.previewElement.style.display=a.model.isEdge(x.cell)?"none":"",this.previewElement.style.left=x.x+"px",this.previewElement.style.top=x.y+"px",this.previewElement.style.width=x.width+"px",this.previewElement.style.height=x.height+"px";else if(null!=t&&null!=M){null!=u.currentHighlight&&null!=u.currentHighlight.state&&u.currentHighlight.hide();var e=a.model.isEdge(t.cell)||null==l?n:l,g=m.getDropAndConnectGeometry(t.cell,b[e],P,b),k=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
h=a.getCellGeometry(b[e]),p=a.model.getParent(t.cell),r=d.translate.x*d.scale,v=d.translate.y*d.scale;null!=k&&!k.relative&&a.model.isVertex(p)&&p!=d.currentRoot&&(v=d.getState(p),r=v.x,v=v.y);k=h.x;h=h.y;a.model.isEdge(b[e])&&(h=k=0);this.previewElement.style.left=(g.x-k)*d.scale+r+"px";this.previewElement.style.top=(g.y-h)*d.scale+v+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=
-u.currentHighlight.state&&a.model.isEdge(u.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var U=(new Date).getTime(),T=0,Q=null,R=this.editorUi.editor.graph.getCellStyle(b[0]);
-u.getDropTarget=mxUtils.bind(this,function(a,c,d,e){var f=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=f&&!this.graph.isCellConnectable(f)&&!this.graph.model.isEdge(f)){var g=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(g)&&this.graph.isCellConnectable(g)&&(f=g)}a.isCellLocked(f)&&(f=null);var k=a.view.getState(f),g=M=null;Q!=k?(U=(new Date).getTime(),T=0,Q=k,null!=this.updateThread&&window.clearTimeout(this.updateThread),
-null!=k&&(this.updateThread=window.setTimeout(function(){null==M&&(Q=k,u.getDropTarget(a,c,d,e))},this.dropTargetDelay+10))):T=(new Date).getTime()-U;if(r&&2500>T&&null!=k&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(R,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(k.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,
-mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(R,mxConstants.STYLE_SHAPE)||1500<T||a.model.isEdge(k.cell))&&T>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(k)&&(a.model.isVertex(k.cell)&&null!=m||a.model.isEdge(k.cell)&&a.model.isEdge(b[0]))){if(a.isCellEditable(k.cell)){x=k;var l=a.model.isEdge(k.cell)?a.view.getPoint(k):new mxPoint(k.getCenterX(),k.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/
-2,this.refreshTarget.width,this.refreshTarget.height);y.style.left=Math.floor(l.x)+"px";y.style.top=Math.floor(l.y)+"px";null==G&&(a.container.appendChild(y),G=y.parentNode);h(c,d,l,y)}}else null==x||!mxUtils.contains(x,c,d)||1500<T&&!mxEvent.isShiftDown(e)?(x=null,null!=G&&(y.parentNode.removeChild(y),G=null)):null!=x&&null!=G&&(l=a.model.isEdge(x.cell)?a.view.getPoint(x):new mxPoint(x.getCenterX(),x.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,
-this.refreshTarget.height),h(c,d,l,y));if(B&&null!=t&&!mxEvent.isAltDown(e)&&null==M){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var n=t.absolutePoints;null!=L.parentNode&&(l=n[0],g.add(h(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=O.parentNode&&(n=n[n.length-1],g.add(h(c,d,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),O)))}else l=
-mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(l=mxRectangle.fromRectangle(t.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(t.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&
-null!=n.rotationShape.boundingBox&&l.add(n.rotationShape.boundingBox)),g.add(h(c,d,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),g.add(h(c,d,new mxRectangle(l.x+l.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),H)),g.add(h(c,d,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),A)),g.add(h(c,d,
-new mxRectangle(l.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),I));null!=g&&g.grow(10)}P=mxConstants.DIRECTION_NORTH;M==H?P=mxConstants.DIRECTION_EAST:M==A||M==O?P=mxConstants.DIRECTION_SOUTH:M==I&&(P=mxConstants.DIRECTION_WEST);null!=x&&M==y&&(k=x);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=t&&5E3<=T||t!=k&&(null==g||!mxUtils.contains(g,c,d)||500<
-T&&null==M&&l))if(B=!1,t=5E3>T&&T>this.dropTargetDelay||a.model.isEdge(f)?k:null,null!=t&&l){g=[L,O,E,H,A,I];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(n=k.absolutePoints,null!=n&&(l=n[0],n=n[n.length-1],g=a.tolerance,new mxRectangle(c-g,d-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",O.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",O.style.top=Math.floor(n.y-
-this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(O))):(l=mxRectangle.fromRectangle(k),null!=k.shape&&null!=k.shape.boundingBox&&(l=mxRectangle.fromRectangle(k.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(k.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,
-null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&l.add(n.rotationShape.boundingBox)),E.style.left=Math.floor(k.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(l.y-this.triangleUp.height)+"px",H.style.left=Math.floor(l.x+l.width)+"px",H.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",A.style.left=E.style.left,A.style.top=Math.floor(l.y+
+u.currentHighlight.state&&a.model.isEdge(u.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var T=(new Date).getTime(),S=0,Q=null,R=this.editorUi.editor.graph.getCellStyle(b[0]);
+u.getDropTarget=mxUtils.bind(this,function(a,c,d,e){var f=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=f&&!this.graph.isCellConnectable(f)&&!this.graph.model.isEdge(f)){var g=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(g)&&this.graph.isCellConnectable(g)&&(f=g)}a.isCellLocked(f)&&(f=null);var k=a.view.getState(f),g=M=null;Q!=k?(T=(new Date).getTime(),S=0,Q=k,null!=this.updateThread&&window.clearTimeout(this.updateThread),
+null!=k&&(this.updateThread=window.setTimeout(function(){null==M&&(Q=k,u.getDropTarget(a,c,d,e))},this.dropTargetDelay+10))):S=(new Date).getTime()-T;if(r&&2500>S&&null!=k&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(R,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(k.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(k.style,
+mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(R,mxConstants.STYLE_SHAPE)||1500<S||a.model.isEdge(k.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(k)&&(a.model.isVertex(k.cell)&&null!=n||a.model.isEdge(k.cell)&&a.model.isEdge(b[0]))){if(a.isCellEditable(k.cell)){x=k;var l=a.model.isEdge(k.cell)?a.view.getPoint(k):new mxPoint(k.getCenterX(),k.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/
+2,this.refreshTarget.width,this.refreshTarget.height);y.style.left=Math.floor(l.x)+"px";y.style.top=Math.floor(l.y)+"px";null==G&&(a.container.appendChild(y),G=y.parentNode);h(c,d,l,y)}}else null==x||!mxUtils.contains(x,c,d)||1500<S&&!mxEvent.isShiftDown(e)?(x=null,null!=G&&(y.parentNode.removeChild(y),G=null)):null!=x&&null!=G&&(l=a.model.isEdge(x.cell)?a.view.getPoint(x):new mxPoint(x.getCenterX(),x.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,
+this.refreshTarget.height),h(c,d,l,y));if(B&&null!=t&&!mxEvent.isAltDown(e)&&null==M){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var m=t.absolutePoints;null!=L.parentNode&&(l=m[0],g.add(h(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=O.parentNode&&(m=m[m.length-1],g.add(h(c,d,new mxRectangle(m.x-this.roundDrop.width/2,m.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),O)))}else l=
+mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(l=mxRectangle.fromRectangle(t.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),m=this.graph.selectionCellsHandler.getHandler(t.cell),null!=m&&(l.x-=m.horizontalOffset/2,l.y-=m.verticalOffset/2,l.width+=m.horizontalOffset,l.height+=m.verticalOffset,null!=m.rotationShape&&null!=m.rotationShape.node&&"hidden"!=m.rotationShape.node.style.visibility&&"none"!=m.rotationShape.node.style.display&&
+null!=m.rotationShape.boundingBox&&l.add(m.rotationShape.boundingBox)),g.add(h(c,d,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),g.add(h(c,d,new mxRectangle(l.x+l.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),H)),g.add(h(c,d,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),A)),g.add(h(c,d,
+new mxRectangle(l.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),I));null!=g&&g.grow(10)}P=mxConstants.DIRECTION_NORTH;M==H?P=mxConstants.DIRECTION_EAST:M==A||M==O?P=mxConstants.DIRECTION_SOUTH:M==I&&(P=mxConstants.DIRECTION_WEST);null!=x&&M==y&&(k=x);l=(null==n||a.isCellConnectable(b[n]))&&(a.model.isEdge(f)&&null!=n||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=t&&5E3<=S||t!=k&&(null==g||!mxUtils.contains(g,c,d)||500<
+S&&null==M&&l))if(B=!1,t=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(f)?k:null,null!=t&&l){g=[L,O,E,H,A,I];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(m=k.absolutePoints,null!=m&&(l=m[0],m=m[m.length-1],g=a.tolerance,new mxRectangle(c-g,d-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",O.style.left=Math.floor(m.x-this.roundDrop.width/2)+"px",O.style.top=Math.floor(m.y-
+this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(O))):(l=mxRectangle.fromRectangle(k),null!=k.shape&&null!=k.shape.boundingBox&&(l=mxRectangle.fromRectangle(k.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),m=this.graph.selectionCellsHandler.getHandler(k.cell),null!=m&&(l.x-=m.horizontalOffset/2,l.y-=m.verticalOffset/2,l.width+=m.horizontalOffset,l.height+=m.verticalOffset,
+null!=m.rotationShape&&null!=m.rotationShape.node&&"hidden"!=m.rotationShape.node.style.visibility&&"none"!=m.rotationShape.node.style.display&&null!=m.rotationShape.boundingBox&&l.add(m.rotationShape.boundingBox)),E.style.left=Math.floor(k.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(l.y-this.triangleUp.height)+"px",H.style.left=Math.floor(l.x+l.width)+"px",H.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",A.style.left=E.style.left,A.style.top=Math.floor(l.y+
l.height)+"px",I.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",I.style.top=H.style.top,"eastwest"!=k.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(A)),a.container.appendChild(H),a.container.appendChild(I));null!=k&&(w=a.selectionCellsHandler.getHandler(k.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));B=!0}else for(g=[L,O,E,H,A,I],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);B||null==w||w.setHandlesVisible(!0);
f=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=x&&M==y?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=M||!a.isSplitTarget(f,b,e))){for(;null!=f&&!a.isValidDropTarget(f,b,e)&&g.isVertex(g.getParent(f));)f=g.getParent(f);null!=f&&(a.view.currentRoot==f||!a.isValidRoot(f)&&0==a.getModel().getChildCount(f)||a.isCellLocked(f)||g.isEdge(f)||!a.isValidDropTarget(f,b,e))&&(f=null)}a.isCellLocked(f)&&(f=null);return f});u.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
arguments);for(var a=[L,O,y,E,H,A,I],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=w&&w.reset();M=G=x=t=w=null};return u};
Sidebar.prototype.itemClicked=function(a,c,d,b){b=this.editorUi.editor.graph;b.container.focus();if(mxEvent.isAltDown(d)&&1==b.getSelectionCount()&&b.model.isVertex(b.getSelectionCell())){c=null;for(var f=0;f<a.length&&null==c;f++)b.model.isVertex(a[f])&&(c=f);null!=c&&(b.setSelectionCells(this.dropAndConnect(b.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,c,d)),b.scrollCellToVisible(b.getSelectionCell()))}else mxEvent.isShiftDown(d)&&!b.isSelectionEmpty()?(d=b.getEditableCells(b.getSelectionCells()),this.updateShapes(a[0],d),b.scrollCellToVisible(d)):(a=mxEvent.isAltDown(d)?b.getFreeInsertPoint():b.getCenterInsertPoint(b.getBoundingBoxFromGeometry(a,!0)),c.drop(b,d,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,c,d){var b=c.mouseDown,f=c.mouseMove,e=c.mouseUp,h=this.editorUi.editor.graph.tolerance,g=null,k=this;c.mouseDown=function(c){b.apply(this,arguments);g=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};c.mouseMove=function(b){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=g&&(Math.abs(g.x-mxEvent.getClientX(b))>h||Math.abs(g.y-mxEvent.getClientY(b))>
-h)&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100));f.apply(this,arguments)};c.mouseUp=function(b){try{mxEvent.isPopupTrigger(b)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||k.itemClicked(d,c,b,a),e.apply(c,arguments),mxUtils.setOpacity(a,100),g=null,k.currentElt=a}catch(m){c.reset(),k.editorUi.handleError(m)}}};
+h)&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100));f.apply(this,arguments)};c.mouseUp=function(b){try{mxEvent.isPopupTrigger(b)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||k.itemClicked(d,c,b,a),e.apply(c,arguments),mxUtils.setOpacity(a,100),g=null,k.currentElt=a}catch(n){c.reset(),k.editorUi.handleError(n)}}};
Sidebar.prototype.createVertexTemplateEntry=function(a,c,d,b,f,e,h,g){g=null!=g&&0<g.length?g:null!=f?f.toLowerCase():"";return this.addEntry(g,mxUtils.bind(this,function(){return this.createVertexTemplate(a,c,d,b,f,e,h)}))};Sidebar.prototype.createVertexTemplate=function(a,c,d,b,f,e,h,g,k){a=[new mxCell(null!=b?b:"",new mxGeometry(0,0,c,d),a)];a[0].vertex=!0;return this.createVertexTemplateFromCells(a,c,d,f,e,h,g,k)};
Sidebar.prototype.createVertexTemplateFromData=function(a,c,d,b,f,e,h,g){a=mxUtils.parseXml(Graph.decompress(a));var k=new mxCodec(a),l=new mxGraphModel;k.decode(a.documentElement,l);a=this.graph.cloneCells(l.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,c,d,b,f,e,h,g)};Sidebar.prototype.createVertexTemplateFromCells=function(a,c,d,b,f,e,h,g){return this.createItem(a,b,f,e,c,d,h,g)};
Sidebar.prototype.createEdgeTemplateEntry=function(a,c,d,b,f,e,h,g,k){h=null!=h&&0<h.length?h:f.toLowerCase();return this.addEntry(h,mxUtils.bind(this,function(){return this.createEdgeTemplate(a,c,d,b,f,e,g,k)}))};
@@ -2530,33 +2531,33 @@ Sidebar.prototype.addFoldingHandler=function(a,c,d){var b=!1;if(!mxClient.IS_IE|
Sidebar.prototype.removePalette=function(a){var c=this.palettes[a];if(null!=c){this.palettes[a]=null;for(a=0;a<c.length;a++)this.container.removeChild(c[a]);return!0}return!1};
Sidebar.prototype.addImagePalette=function(a,c,d,b,f,e,h){for(var g=[],k=0;k<f.length;k++)mxUtils.bind(this,function(a,c,e){if(null==e){e=a.lastIndexOf("/");var f=a.lastIndexOf(".");e=a.substring(0<=e?e+1:0,0<=f?f:a.length).replace(/[-_]/g," ")}g.push(this.createVertexTemplateEntry("image;html=1;image="+d+a+b,this.defaultImageWidth,this.defaultImageHeight,"",c,null!=c,null,this.filterTags(e)))})(f[k],null!=e?e[k]:null,null!=h?h[f[k]]:null);this.addPaletteFunctions(a,c,!1,g)};
Sidebar.prototype.getTagsForStencil=function(a,c,d){a=a.split(".");for(var b=1;b<a.length;b++)a[b]=a[b].replace(/_/g," ");a.push(c.replace(/_/g," "));null!=d&&a.push(d);return a.slice(1,a.length)};
-Sidebar.prototype.addStencilPalette=function(a,c,d,b,f,e,h,g,k,l){h=null!=h?h:1;if(this.addStencilsToIndex){var m=[];if(null!=k)for(l=0;l<k.length;l++)m.push(k[l]);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(a,c,d,e,k){if(null==f||0>mxUtils.indexOf(f,c)){d=this.getTagsForStencil(a,c);var l=null!=g?g[c]:null;null!=l&&d.push(l);m.push(this.createVertexTemplateEntry("shape="+a+c.toLowerCase()+b,Math.round(e*h),Math.round(k*h),"",c.replace(/_/g," "),null,null,this.filterTags(d.join(" "))))}}),
-!0,!0);this.addPaletteFunctions(a,c,!1,m)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==b&&(b="");null!=e&&e.call(this,a);if(null!=k)for(var c=0;c<k.length;c++)k[c](a);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(c,d,e,g,k){(null==f||0>mxUtils.indexOf(f,d))&&a.appendChild(this.createVertexTemplate("shape="+c+d.toLowerCase()+b,Math.round(g*h),Math.round(k*h),"",d.replace(/_/g," "),!0))}),!0)}))};
+Sidebar.prototype.addStencilPalette=function(a,c,d,b,f,e,h,g,k,l){h=null!=h?h:1;if(this.addStencilsToIndex){var n=[];if(null!=k)for(l=0;l<k.length;l++)n.push(k[l]);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(a,c,d,e,k){if(null==f||0>mxUtils.indexOf(f,c)){d=this.getTagsForStencil(a,c);var l=null!=g?g[c]:null;null!=l&&d.push(l);n.push(this.createVertexTemplateEntry("shape="+a+c.toLowerCase()+b,Math.round(e*h),Math.round(k*h),"",c.replace(/_/g," "),null,null,this.filterTags(d.join(" "))))}}),
+!0,!0);this.addPaletteFunctions(a,c,!1,n)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==b&&(b="");null!=e&&e.call(this,a);if(null!=k)for(var c=0;c<k.length;c++)k[c](a);mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(c,d,e,g,k){(null==f||0>mxUtils.indexOf(f,d))&&a.appendChild(this.createVertexTemplate("shape="+c+d.toLowerCase()+b,Math.round(g*h),Math.round(k*h),"",d.replace(/_/g," "),!0))}),!0)}))};
Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!=this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),
this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var a=[["nbsp","160"],["shy","173"]],c=mxUtils.parseXml;mxUtils.parseXml=function(d){for(var b=0;b<a.length;b++)d=d.replace(new RegExp("&"+a[b][0]+";","g"),"&#"+a[b][1]+";");return c(d)}})();
Date.prototype.toISOString||function(){function a(a){a=String(a);1===a.length&&(a="0"+a);return a}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,c=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},d=Math.pow(2,53)-1;return function(a){var b=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var e=1<arguments.length?arguments[1]:void 0,h;if("undefined"!==typeof e){if(!c(e))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(h=
-arguments[2])}var g;g=Number(b.length);g=isNaN(g)?0:0!==g&&isFinite(g)?(0<g?1:-1)*Math.floor(Math.abs(g)):g;g=Math.min(Math.max(g,0),d);for(var k=c(this)?Object(new this(g)):Array(g),l=0,m;l<g;)m=b[l],k[l]=e?"undefined"===typeof h?e(m,l):e.call(h,m,l):m,l+=1;k.length=g;return k}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
+arguments[2])}var g;g=Number(b.length);g=isNaN(g)?0:0!==g&&isFinite(g)?(0<g?1:-1)*Math.floor(Math.abs(g)):g;g=Math.min(Math.max(g,0),d);for(var k=c(this)?Object(new this(g)):Array(g),l=0,n;l<g;)n=b[l],k[l]=e?"undefined"===typeof h?e(n,l):e.call(h,n,l):n,l+=1;k.length=g;return k}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(a){this.unit!=a&&(this.unit=a,this.fireEvent(new mxEventObject("unitChanged","unit",a)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(a,c,d){return null};
mxImageShape.prototype.getImageDataUri=function(){var a=this.image;if("data:image/svg+xml;base64,"==a.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=a)this.clippedSvg=Graph.clipSvgDataUri(a),this.clippedImage=a;a=this.clippedSvg}return a};
Graph=function(a,c,d,b,f,e){mxGraph.call(this,a,c,d,b);this.themes=f||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=e?e:!1;a=this.baseUrl;c=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=a.indexOf("/",c+2),0<c&&(this.domainUrl=a.substring(0,c)),c=a.lastIndexOf("/"),0<c&&(this.domainPathUrl=a.substring(0,c+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
-return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var h=null,g=null,k=null,l=null,m=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var c=b.getProperty("event"),d=c.getState();if(!mxEvent.isAltDown(c.getEvent())&&null!=d)if(this.model.isEdge(d.cell))if(h=new mxPoint(c.getGraphX(),c.getGraphY()),m=this.isCellSelected(d.cell),k=d,g=c,null!=d.text&&null!=d.text.boundingBox&&
+return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var h=null,g=null,k=null,l=null,n=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var c=b.getProperty("event"),d=c.getState();if(!mxEvent.isAltDown(c.getEvent())&&null!=d)if(this.model.isEdge(d.cell))if(h=new mxPoint(c.getGraphX(),c.getGraphY()),n=this.isCellSelected(d.cell),k=d,g=c,null!=d.text&&null!=d.text.boundingBox&&
mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var e=this.selectionCellsHandler.getHandler(d.cell);null!=e&&null!=e.bends&&0<e.bends.length&&(l=e.getHandleForEvent(c))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(c.getEvent())&&(e=this.selectionCellsHandler.getHandler(d.cell),null==e||null==e.getHandleForEvent(c))){var f=new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(mxEvent.isTouchEvent(c.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(d.cell)&&!this.isCellSelected(d.cell)){var n=this.model.getParent(d.cell),e=this.model.getParent(n);if(!this.isCellSelected(e)&&(mxUtils.intersects(f,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(e,0)!=n||mxUtils.intersects(f,new mxRectangle(d.x,d.y+d.height-2,d.width,3))||mxUtils.intersects(f,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(n,0)!=d.cell||mxUtils.intersects(f,new mxRectangle(d.x+d.width-
-2,d.y,2,d.height)))&&(n=this.selectionCellsHandler.isHandled(e),this.selectCellForEvent(e,c.getEvent()),e=this.selectionCellsHandler.getHandler(e),null!=e)){var p=e.getHandleForEvent(c);null!=p&&(e.start(c.getGraphX(),c.getGraphY(),p),e.blockDelayedSelection=!n,c.consume())}}for(;!c.isConsumed()&&null!=d&&(this.isTableCell(d.cell)||this.isTableRow(d.cell)||this.isTable(d.cell));)this.isSwimlane(d.cell)&&(e=this.getActualStartSize(d.cell),n=this.view.scale,(0<e.x||0<e.width)&&mxUtils.intersects(f,
-new mxRectangle(d.x+(e.x-e.width-1)*n+(0==e.x?d.width:0),d.y,1,d.height))||(0<e.y||0<e.height)&&mxUtils.intersects(f,new mxRectangle(d.x,d.y+(e.y-e.height-1)*n+(0==e.y?d.height:0),d.width,1)))&&(this.selectCellForEvent(d.cell,c.getEvent()),e=this.selectionCellsHandler.getHandler(d.cell),null!=e&&(p=mxEvent.CUSTOM_HANDLE-e.customHandles.length+1,e.start(c.getGraphX(),c.getGraphY(),p),c.consume())),d=this.view.getState(this.model.getParent(d.cell))}}}));this.addMouseListener({mouseDown:function(a,b){},
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(d.cell)&&!this.isCellSelected(d.cell)){var m=this.model.getParent(d.cell),e=this.model.getParent(m);if(!this.isCellSelected(e)&&(mxUtils.intersects(f,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(e,0)!=m||mxUtils.intersects(f,new mxRectangle(d.x,d.y+d.height-2,d.width,3))||mxUtils.intersects(f,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(m,0)!=d.cell||mxUtils.intersects(f,new mxRectangle(d.x+d.width-
+2,d.y,2,d.height)))&&(m=this.selectionCellsHandler.isHandled(e),this.selectCellForEvent(e,c.getEvent()),e=this.selectionCellsHandler.getHandler(e),null!=e)){var p=e.getHandleForEvent(c);null!=p&&(e.start(c.getGraphX(),c.getGraphY(),p),e.blockDelayedSelection=!m,c.consume())}}for(;!c.isConsumed()&&null!=d&&(this.isTableCell(d.cell)||this.isTableRow(d.cell)||this.isTable(d.cell));)this.isSwimlane(d.cell)&&(e=this.getActualStartSize(d.cell),m=this.view.scale,(0<e.x||0<e.width)&&mxUtils.intersects(f,
+new mxRectangle(d.x+(e.x-e.width-1)*m+(0==e.x?d.width:0),d.y,1,d.height))||(0<e.y||0<e.height)&&mxUtils.intersects(f,new mxRectangle(d.x,d.y+(e.y-e.height-1)*m+(0==e.y?d.height:0),d.width,1)))&&(this.selectCellForEvent(d.cell,c.getEvent()),e=this.selectionCellsHandler.getHandler(d.cell),null!=e&&(p=mxEvent.CUSTOM_HANDLE-e.customHandles.length+1,e.start(c.getGraphX(),c.getGraphY(),p),c.consume())),d=this.view.getState(this.model.getParent(d.cell))}}}));this.addMouseListener({mouseDown:function(a,b){},
mouseMove:mxUtils.bind(this,function(a,b){var c=this.selectionCellsHandler.handlers.map,d;for(d in c)if(null!=c[d].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(d=this.tolerance,null!=h&&null!=k&&null!=g){if(c=k,Math.abs(h.x-b.getGraphX())>d||Math.abs(h.y-b.getGraphY())>d){var e=this.selectionCellsHandler.getHandler(c.cell);null==e&&this.model.isEdge(c.cell)&&(e=this.createHandler(c));if(null!=e&&null!=e.bends&&0<e.bends.length){d=e.getHandleForEvent(g);
-var f=this.view.getEdgeStyle(c),n=f==mxEdgeStyle.EntityRelation;m||l!=mxEvent.LABEL_HANDLE||(d=l);if(n&&0!=d&&d!=e.bends.length-1&&d!=mxEvent.LABEL_HANDLE)!n||null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(d==mxEvent.LABEL_HANDLE||0==d||null!=c.visibleSourceState||d==e.bends.length-1||null!=c.visibleTargetState)n||d==mxEvent.LABEL_HANDLE||(n=c.absolutePoints,null!=n&&(null==f&&null==d||f==mxEdgeStyle.OrthConnector)&&(d=l,null==d&&(d=new mxRectangle(h.x,
-h.y),d.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(d,n[0].x,n[0].y)?d=0:mxUtils.contains(d,n[n.length-1].x,n[n.length-1].y)?d=e.bends.length-1:null!=f&&(2==n.length||3==n.length&&(0==Math.round(n[0].x-n[1].x)&&0==Math.round(n[1].x-n[2].x)||0==Math.round(n[0].y-n[1].y)&&0==Math.round(n[1].y-n[2].y)))?d=2:(d=mxUtils.findNearestSegment(c,h.x,h.y),d=null==f?mxEvent.VIRTUAL_HANDLE-d:d+1))),null==d&&(d=mxEvent.VIRTUAL_HANDLE)),e.start(b.getGraphX(),b.getGraphX(),d),b.consume(),this.graphHandler.reset()}null!=
-e&&(this.selectionCellsHandler.isHandlerActive(e)?this.isCellSelected(c.cell)||(this.selectionCellsHandler.handlers.put(c.cell,e),this.selectCellForEvent(c.cell,b.getEvent())):this.isCellSelected(c.cell)||e.destroy());m=!1;h=g=k=l=null}}else if(c=b.getState(),null!=c&&this.isCellEditable(c.cell)){e=null;if(this.model.isEdge(c.cell)){if(d=new mxRectangle(b.getGraphX(),b.getGraphY()),d.grow(mxEdgeHandler.prototype.handleImage.width/2),n=c.absolutePoints,null!=n)if(null!=c.text&&null!=c.text.boundingBox&&
-mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(d,n[0].x,n[0].y)||mxUtils.contains(d,n[n.length-1].x,n[n.length-1].y))e="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)d=this.view.getEdgeStyle(c),e="crosshair",d!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(d=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),d<n.length-1&&0<=d&&(e=0==Math.round(n[d].x-n[d+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){d=
-new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);d.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(c.cell)&&(n=this.model.getParent(c.cell),f=this.model.getParent(n),!this.isCellSelected(f)))if(mxUtils.intersects(d,new mxRectangle(c.x-2,c.y,2,c.height))&&this.model.getChildAt(n,0)!=c.cell||mxUtils.intersects(d,new mxRectangle(c.x+c.width-2,c.y,2,c.height)))e="col-resize";else if(mxUtils.intersects(d,new mxRectangle(c.x,c.y-2,c.width,3))&&this.model.getChildAt(f,0)!=n||mxUtils.intersects(d,
-new mxRectangle(c.x,c.y+c.height-2,c.width,3)))e="row-resize";for(n=c;null==e&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var f=this.getActualStartSize(n.cell),p=this.view.scale;(0<f.x||0<f.width)&&mxUtils.intersects(d,new mxRectangle(n.x+(f.x-f.width-1)*p+(0==f.x?n.width*p:0),n.y,1,n.height))?e="col-resize":(0<f.y||0<f.height)&&mxUtils.intersects(d,new mxRectangle(n.x,n.y+(f.y-f.height-1)*p+(0==f.y?n.height:0),n.width,1))&&(e=
-"row-resize")}n=this.view.getState(this.model.getParent(n.cell))}}null!=e&&c.setCursor(e)}}),mouseUp:mxUtils.bind(this,function(a,b){l=h=g=k=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
-this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var n=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=n.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)b.push(new mxRectangle(((g.x+k)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(k=1;k<g.height;k++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+k)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
+var f=this.view.getEdgeStyle(c),m=f==mxEdgeStyle.EntityRelation;n||l!=mxEvent.LABEL_HANDLE||(d=l);if(m&&0!=d&&d!=e.bends.length-1&&d!=mxEvent.LABEL_HANDLE)!m||null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(d==mxEvent.LABEL_HANDLE||0==d||null!=c.visibleSourceState||d==e.bends.length-1||null!=c.visibleTargetState)m||d==mxEvent.LABEL_HANDLE||(m=c.absolutePoints,null!=m&&(null==f&&null==d||f==mxEdgeStyle.OrthConnector)&&(d=l,null==d&&(d=new mxRectangle(h.x,
+h.y),d.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(d,m[0].x,m[0].y)?d=0:mxUtils.contains(d,m[m.length-1].x,m[m.length-1].y)?d=e.bends.length-1:null!=f&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&0==Math.round(m[1].y-m[2].y)))?d=2:(d=mxUtils.findNearestSegment(c,h.x,h.y),d=null==f?mxEvent.VIRTUAL_HANDLE-d:d+1))),null==d&&(d=mxEvent.VIRTUAL_HANDLE)),e.start(b.getGraphX(),b.getGraphX(),d),b.consume(),this.graphHandler.reset()}null!=
+e&&(this.selectionCellsHandler.isHandlerActive(e)?this.isCellSelected(c.cell)||(this.selectionCellsHandler.handlers.put(c.cell,e),this.selectCellForEvent(c.cell,b.getEvent())):this.isCellSelected(c.cell)||e.destroy());n=!1;h=g=k=l=null}}else if(c=b.getState(),null!=c&&this.isCellEditable(c.cell)){e=null;if(this.model.isEdge(c.cell)){if(d=new mxRectangle(b.getGraphX(),b.getGraphY()),d.grow(mxEdgeHandler.prototype.handleImage.width/2),m=c.absolutePoints,null!=m)if(null!=c.text&&null!=c.text.boundingBox&&
+mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(d,m[0].x,m[0].y)||mxUtils.contains(d,m[m.length-1].x,m[m.length-1].y))e="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)d=this.view.getEdgeStyle(c),e="crosshair",d!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(d=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),d<m.length-1&&0<=d&&(e=0==Math.round(m[d].x-m[d+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){d=
+new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);d.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(c.cell)&&(m=this.model.getParent(c.cell),f=this.model.getParent(m),!this.isCellSelected(f)))if(mxUtils.intersects(d,new mxRectangle(c.x-2,c.y,2,c.height))&&this.model.getChildAt(m,0)!=c.cell||mxUtils.intersects(d,new mxRectangle(c.x+c.width-2,c.y,2,c.height)))e="col-resize";else if(mxUtils.intersects(d,new mxRectangle(c.x,c.y-2,c.width,3))&&this.model.getChildAt(f,0)!=m||mxUtils.intersects(d,
+new mxRectangle(c.x,c.y+c.height-2,c.width,3)))e="row-resize";for(m=c;null==e&&null!=m&&(this.isTableCell(m.cell)||this.isTableRow(m.cell)||this.isTable(m.cell));){if(this.isSwimlane(m.cell)){var f=this.getActualStartSize(m.cell),p=this.view.scale;(0<f.x||0<f.width)&&mxUtils.intersects(d,new mxRectangle(m.x+(f.x-f.width-1)*p+(0==f.x?m.width*p:0),m.y,1,m.height))?e="col-resize":(0<f.y||0<f.height)&&mxUtils.intersects(d,new mxRectangle(m.x,m.y+(f.y-f.height-1)*p+(0==f.y?m.height:0),m.width,1))&&(e=
+"row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=e&&c.setCursor(e)}}),mouseUp:mxUtils.bind(this,function(a,b){l=h=g=k=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
+this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
+function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)b.push(new mxRectangle(((g.x+k)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(k=1;k<g.height;k++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+k)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var b=p.apply(this,arguments),c=new mxDictionary,d=[],e=0;e<b.length;e++){var f=this.graph.isTableCell(a)&&this.graph.isTableCell(b[e])&&
this.graph.isCellSelected(b[e])?this.graph.model.getParent(b[e]):this.graph.isTableRow(a)&&this.graph.isTableRow(b[e])&&this.graph.isCellSelected(b[e])?b[e]:this.graph.getCompositeParent(b[e]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}return d};var r=this.graphHandler.start;this.graphHandler.start=function(a,b,c,d){var e=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?e=!0:a=this.graph.model.getParent(a));e||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));
r.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,b){b=this.graph.getCompositeParent(b);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var v=(new Date).getTime(),t=0,w=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;w.apply(this,arguments);a!=this.currentState?(v=(new Date).getTime(),t=0):t=(new Date).getTime()-v};var x=
@@ -2591,8 +2592,8 @@ b&&this.graph.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger
b,c){if(null!=a){var d={},e;for(e in a){var f=a[e];null!=f&&(d[e]=!0,null==b[e]&&c?b[e]=f:b[e]!=f&&delete b[e])}for(e in b)d[e]||delete b[e]}};Graph.prototype.getStartEditingCell=function(a,b){var c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var f=d.substring(0,e),d=d.substring(e+1);null==b[f]&&d==mxConstants.NONE&&
(b[f]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;this.model.beginUpdate();try{for(var d=0;d<b.length;d++)for(var e=this.getCurrentCellStyle(b[d]),f=0;f<c.length;f++){var g=e[c[f]],h=a[c[f]];g==h||null==g&&h==mxConstants.NONE||this.setCellStyles(c[f],h,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||
-mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,c,d,f,m){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,f,m){d=null!=d?d:!0;f=null!=f?f:!0;null==c&&(c=this.getCurrentRoot(),
-null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var e=this.model.getChildCount(c)-1;0<=e;e--){var g=this.model.getChildAt(c,e),k=this.getScaledCellAt(a,b,g,d,f,m);if(null!=k)return k;if(this.isCellVisible(g)&&(f&&this.model.isEdge(g)||d&&this.model.isVertex(g))&&(k=this.view.getState(g),null!=k&&(null==m||!m(k,a,b))&&this.intersects(k,a,b)))return g}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
+mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,c,d,f,n){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,f,n){d=null!=d?d:!0;f=null!=f?f:!0;null==c&&(c=this.getCurrentRoot(),
+null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var e=this.model.getChildCount(c)-1;0<=e;e--){var g=this.model.getChildAt(c,e),k=this.getScaledCellAt(a,b,g,d,f,n);if(null!=k)return k;if(this.isCellVisible(g)&&(f&&this.model.isEdge(g)||d&&this.model.isVertex(g))&&(k=this.view.getState(g),null!=k&&(null==n||!n(k,a,b))&&this.intersects(k,a,b)))return g}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.getAbsoluteParent=function(a){for(var b=this.getCellGeometry(a);null!=b&&b.relative;)a=this.getModel().getParent(a),b=this.getCellGeometry(cellToClone);return a};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=
this.model.getParent(a);if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();if(null!=a){for(var c=[],d=0;d<b.length;d++)a(b[d])||c.push(b[d]);b=c}return b};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,
c=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*c,(a.y+b.y)*c,a.width*c,a.height*c);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=
@@ -2617,28 +2618,28 @@ Graph.prototype.isLabelMovable=function(a){var c=this.getCurrentCellStyle(a);ret
Graph.prototype.getClickableLinkForCell=function(a){do{var c=this.getLinkForCell(a);if(null!=c)return c;a=this.model.getParent(a)}while(null!=a);return null};Graph.prototype.getGlobalVariable=function(a){var c=null;"date"==a?c=(new Date).toLocaleDateString():"time"==a?c=(new Date).toLocaleTimeString():"timestamp"==a?c=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),c=this.formatDate(new Date,a));return c};
Graph.prototype.formatDate=function(a,c,d){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 b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,h=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",k=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),n=a[g+"FullYear"](),p=a[g+"Hours"](),r=a[g+"Minutes"](),u=a[g+"Seconds"](),g=a[g+"Milliseconds"](),v=d?0:a.getTimezoneOffset(),t={d:k,dd:h(k),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:h(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
-12],yy:String(n).slice(2),yyyy:n,h:p%12||12,hh:h(p%12||12),H:p,HH:h(p),M:r,MM:h(r),s:u,ss:h(u),l:h(g,3),L:h(99<g?Math.round(g/10):g),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<v?"-":"+")+h(100*Math.floor(Math.abs(v)/60)+Math.abs(v)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in t?t[a]:a.slice(1,
+/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",k=a[g+"Date"](),l=a[g+"Day"](),n=a[g+"Month"](),m=a[g+"FullYear"](),p=a[g+"Hours"](),r=a[g+"Minutes"](),u=a[g+"Seconds"](),g=a[g+"Milliseconds"](),v=d?0:a.getTimezoneOffset(),t={d:k,dd:h(k),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:n+1,mm:h(n+1),mmm:b.i18n.monthNames[n],mmmm:b.i18n.monthNames[n+
+12],yy:String(m).slice(2),yyyy:m,h:p%12||12,hh:h(p%12||12),H:p,HH:h(p),M:r,MM:h(r),s:u,ss:h(u),l:h(g,3),L:h(99<g?Math.round(g/10):g),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<v?"-":"+")+h(100*Math.floor(Math.abs(v)/60)+Math.abs(v)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in t?t[a]:a.slice(1,
a.length-1)})};Graph.prototype.getLayerForCells=function(a){var c=null;if(0<a.length){for(c=a[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var d=1;d<a.length;d++)if(!this.model.isAncestor(c,a[d])){c=null;break}}return c};
Graph.prototype.createLayersDialog=function(a){var c=document.createElement("div");c.style.position="absolute";for(var d=this.getModel(),b=d.getChildCount(d.root),f=0;f<b;f++)mxUtils.bind(this,function(b){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var f=document.createElement("input");f.style.display="inline-block";f.setAttribute("type","checkbox");d.isVisible(b)&&(f.setAttribute("checked","checked"),
f.defaultChecked=!0);e.appendChild(f);var k=this.convertValueToString(b)||mxResources.get("background")||"Background";e.setAttribute("title",k);mxUtils.write(e,k);c.appendChild(e);mxEvent.addListener(f,"click",function(){null!=f.getAttribute("checked")?f.removeAttribute("checked"):f.setAttribute("checked","checked");d.setVisible(b,f.checked);null!=a&&a(b)})})(d.getChildAt(d.root,f));return c};
Graph.prototype.replacePlaceholders=function(a,c,d,b){b=[];if(null!=c){for(var f=0;match=this.placeholderPattern.exec(c);){var e=match[0];if(2<e.length&&"%label%"!=e&&"%tooltip%"!=e){var h=null;if(match.index>f&&"%"==c.charAt(match.index-1))h=e.substring(1);else{var g=e.substring(1,e.length-1);if("id"==g)h=a.id;else if(0>g.indexOf("{"))for(var k=a;null==h&&null!=k;)null!=k.value&&"object"==typeof k.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(h=k.getAttribute(g+"_"+Graph.diagramLanguage)),
null==h&&(h=k.hasAttribute(g)?null!=k.getAttribute(g)?k.getAttribute(g):"":null)),k=this.model.getParent(k);null==h&&(h=this.getGlobalVariable(g));null==h&&null!=d&&(h=d[g])}b.push(c.substring(f,match.index)+(null!=h?h:e));f=match.index+e.length}}b.push(c.substring(f))}return b.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var c=[],d=0;d<a.length;d++){var b=this.model.getCell(a[d].id);null!=b&&c.push(b)}this.setSelectionCells(c)}else this.clearSelection()};
Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=d&&(mxEvent.isTouchEvent(c)?d.update(d.getState(this.view.getState(a[1]))):d.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=c&&c.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(a,c,d,b,f,e,h,g){e=e?e:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var k=this.isCloneConnectSource(a),l=k?a:this.getCompositeParent(a),m=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=d):c==
-mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+d):(m.x=c==mxConstants.DIRECTION_WEST?m.x-d:m.x+(l.geometry.width+d),m.y+=l.geometry.height/2);var n=this.view.getState(this.model.getParent(a));d=this.view.scale;var p=this.view.translate,l=p.x*d,p=p.y*d;null!=n&&this.model.isVertex(n.cell)&&(l=n.x,p=n.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(m.x+=a.parent.geometry.x,m.y+=a.parent.geometry.y);e=e?null:(new mxRectangle(l+m.x*d,p+m.y*d)).grow(40*d);e=null!=e?
-this.getCells(0,0,0,0,null,null,e,null,!0):null;var n=this.view.getState(a),r=null,u=null;if(null!=e){e=e.reverse();for(var v=0;v<e.length;v++)if(!this.isCellLocked(e[v])&&!this.model.isEdge(e[v])&&e[v]!=a)if(!this.model.isAncestor(a,e[v])&&this.isContainer(e[v])&&(null==r||e[v]==this.model.getParent(a)))r=e[v];else if(null==u&&this.isCellConnectable(e[v])&&!this.model.isAncestor(e[v],a)&&!this.isSwimlane(e[v])){var t=this.view.getState(e[v]);null==n||null==t||mxUtils.intersects(n,t)||(u=e[v])}}var w=
-!mxEvent.isShiftDown(b)||mxEvent.isControlDown(b)||f;w&&("1"!=urlParams.sketch||f)&&(c==mxConstants.DIRECTION_NORTH?m.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=a.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-a.geometry.width/2:m.x+a.geometry.width/2);var x=[],B=u,u=r;f=mxUtils.bind(this,function(d){if(null==h||null!=d||null==u&&k){this.model.beginUpdate();try{if(null==B&&w){var e=this.getAbsoluteParent(null!=d?d:a),e=k?a:this.getCompositeParent(e);B=null!=d?d:this.duplicateCells([e],
-!1)[0];null!=d&&this.addCells([B],this.model.getParent(a),null,null,null,!0);var f=this.getCellGeometry(B);null!=f&&(null!=d&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=f.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=f.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-f.width/2:m.x+f.width/2),f.x=m.x-f.width/2,f.y=m.y-f.height/2);null!=r?(this.addCells([B],r,null,null,null,!0),u=null):w&&!k&&this.addCells([B],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(b)&&
-mxEvent.isShiftDown(b)&&w||null==u&&k?null:this.insertEdge(this.model.getParent(a),null,"",a,B,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=l.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==l.parent&&(n=d.parent.getIndex(d),this.model.add(d.parent,l,n))}null==u&&null!=B&&null!=a.parent&&k&&c==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
-B,n));null!=l&&x.push(l);null==u&&null!=B&&x.push(B);null==B&&null!=l&&l.geometry.setTerminalPoint(m,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=g)g(x);else return x});if(null==h||null!=B||!w||null==u&&k)return f(B);h(l+m.x*d,p+m.y*d,f)};
+Graph.prototype.connectVertex=function(a,c,d,b,f,e,h,g){e=e?e:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var k=this.isCloneConnectSource(a),l=k?a:this.getCompositeParent(a),n=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(n.x+=l.geometry.width/2,n.y-=d):c==
+mxConstants.DIRECTION_SOUTH?(n.x+=l.geometry.width/2,n.y+=l.geometry.height+d):(n.x=c==mxConstants.DIRECTION_WEST?n.x-d:n.x+(l.geometry.width+d),n.y+=l.geometry.height/2);var m=this.view.getState(this.model.getParent(a));d=this.view.scale;var p=this.view.translate,l=p.x*d,p=p.y*d;null!=m&&this.model.isVertex(m.cell)&&(l=m.x,p=m.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(n.x+=a.parent.geometry.x,n.y+=a.parent.geometry.y);e=e?null:(new mxRectangle(l+n.x*d,p+n.y*d)).grow(40*d);e=null!=e?
+this.getCells(0,0,0,0,null,null,e,null,!0):null;var m=this.view.getState(a),r=null,u=null;if(null!=e){e=e.reverse();for(var v=0;v<e.length;v++)if(!this.isCellLocked(e[v])&&!this.model.isEdge(e[v])&&e[v]!=a)if(!this.model.isAncestor(a,e[v])&&this.isContainer(e[v])&&(null==r||e[v]==this.model.getParent(a)))r=e[v];else if(null==u&&this.isCellConnectable(e[v])&&!this.model.isAncestor(e[v],a)&&!this.isSwimlane(e[v])){var t=this.view.getState(e[v]);null==m||null==t||mxUtils.intersects(m,t)||(u=e[v])}}var w=
+!mxEvent.isShiftDown(b)||mxEvent.isControlDown(b)||f;w&&("1"!=urlParams.sketch||f)&&(c==mxConstants.DIRECTION_NORTH?n.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?n.y+=a.geometry.height/2:n.x=c==mxConstants.DIRECTION_WEST?n.x-a.geometry.width/2:n.x+a.geometry.width/2);var x=[],B=u,u=r;f=mxUtils.bind(this,function(d){if(null==h||null!=d||null==u&&k){this.model.beginUpdate();try{if(null==B&&w){var e=this.getAbsoluteParent(null!=d?d:a),e=k?a:this.getCompositeParent(e);B=null!=d?d:this.duplicateCells([e],
+!1)[0];null!=d&&this.addCells([B],this.model.getParent(a),null,null,null,!0);var f=this.getCellGeometry(B);null!=f&&(null!=d&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?n.y-=f.height/2:c==mxConstants.DIRECTION_SOUTH?n.y+=f.height/2:n.x=c==mxConstants.DIRECTION_WEST?n.x-f.width/2:n.x+f.width/2),f.x=n.x-f.width/2,f.y=n.y-f.height/2);null!=r?(this.addCells([B],r,null,null,null,!0),u=null):w&&!k&&this.addCells([B],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(b)&&
+mxEvent.isShiftDown(b)&&w||null==u&&k?null:this.insertEdge(this.model.getParent(a),null,"",a,B,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var m=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=l.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==l.parent&&(m=d.parent.getIndex(d),this.model.add(d.parent,l,m))}null==u&&null!=B&&null!=a.parent&&k&&c==mxConstants.DIRECTION_WEST&&(m=a.parent.getIndex(a),this.model.add(a.parent,
+B,m));null!=l&&x.push(l);null==u&&null!=B&&x.push(B);null==B&&null!=l&&l.geometry.setTerminalPoint(n,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=g)g(x);else return x});if(null==h||null!=B||!w||null==u&&k)return f(B);h(l+n.x*d,p+n.y*d,f)};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.sanitizeHtml(this.getLabel(d)),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){var c=this.model.getValue(a);if(null!=c&&"object"==typeof c){var d=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var c=a.getAttribute("placeholder"),b=a;null==d&&null!=b;)null!=b.value&&"object"==typeof b.value&&(d=b.hasAttribute(c)?null!=b.getAttribute(c)?b.getAttribute(c):"":null),b=this.model.getParent(b);else d=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(d=c.getAttribute("label_"+Graph.diagramLanguage)),
null==d&&(d=c.getAttribute("label")||"");return d||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);this.model.isVertex(d)&&this.isCellCollapsed(a)&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!d.horizontal))}return c};
Graph.prototype.updateAlternateBounds=function(a,c,d){if(null!=a&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?c.alternateBounds.height=0:c.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a,c){return mxEvent.isShiftDown(a)||"1"==mxUtils.getValue(c.style,"moveCells","0")};
-Graph.prototype.foldCells=function(a,c,d,b,f){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));if(null!=d){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var e=0;e<d.length;e++){var h=this.view.getState(d[e]),g=this.getCellGeometry(d[e]);if(null!=h&&null!=g){var k=Math.round(g.width-h.width/this.view.scale),l=Math.round(g.height-h.height/this.view.scale);if(0!=l||0!=k){var m=this.model.getParent(d[e]),n=this.layoutManager.getLayout(m);
-null==n?null!=f&&this.isMoveCellsEvent(f,h)&&this.moveSiblings(h,m,k,l):null!=f&&mxEvent.isAltDown(f)||n.constructor!=mxStackLayout||n.resizeLast||this.resizeParentStacks(m,n,k,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(d)}};
+Graph.prototype.foldCells=function(a,c,d,b,f){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));if(null!=d){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var e=0;e<d.length;e++){var h=this.view.getState(d[e]),g=this.getCellGeometry(d[e]);if(null!=h&&null!=g){var k=Math.round(g.width-h.width/this.view.scale),l=Math.round(g.height-h.height/this.view.scale);if(0!=l||0!=k){var n=this.model.getParent(d[e]),m=this.layoutManager.getLayout(n);
+null==m?null!=f&&this.isMoveCellsEvent(f,h)&&this.moveSiblings(h,n,k,l):null!=f&&mxEvent.isAltDown(f)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(n,m,k,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(d)}};
Graph.prototype.moveSiblings=function(a,c,d,b){this.model.beginUpdate();try{var f=this.getCellsBeyond(a.x,a.y,c,!0,!0);for(c=0;c<f.length;c++)if(f[c]!=a.cell){var e=this.view.getState(f[c]),h=this.getCellGeometry(f[c]);null!=e&&null!=h&&(h=h.clone(),h.translate(Math.round(d*Math.max(0,Math.min(1,(e.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))),this.model.setGeometry(f[c],h))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,c,d,b){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var f=c.horizontal;null!=a&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==f&&!c.resizeLast;){var e=this.getCellGeometry(a),h=this.view.getState(a);null!=h&&null!=e&&(e=e.clone(),c.horizontal?e.width+=d+Math.min(0,h.width/this.view.scale-e.width):e.height+=b+Math.min(0,h.height/this.view.scale-e.height),this.model.setGeometry(a,
e));a=this.model.getParent(a);c=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var c=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(a){var c=this.getCurrentCellStyle(a);return null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
@@ -2690,25 +2691,25 @@ Graph.prototype.createTable=function(a,c,d,b,f,e,h,g,k){d=null!=d?d:60;b=null!=b
Graph.prototype.createCrossFunctionalSwimlane=function(a,c,d,b,f,e,h,g,k){d=null!=d?d:120;b=null!=b?b:120;f=null!=f?f:40;h=null!=h?h:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+f+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";g=null!=g?g:"swimlane;connectable=0;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";k=null!=k?k:"swimlane;connectable=0;startSize=0;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";f=this.createVertex(null,
null,"",0,0,c*d,a*b,null!=e?e:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+f+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");e=mxUtils.getValue(this.getCellStyle(f),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);f.geometry.width+=e;f.geometry.height+=e;h=this.createVertex(null,null,"",0,e,c*d+e,b,h);f.insert(this.createParent(h,this.createVertex(null,null,"",e,0,d,b,g),c,d,0));return 1<a?(h.geometry.y=b+e,this.createParent(f,this.createParent(h,
this.createVertex(null,null,"",e,0,d,b,k),c,d,0),a-1,0,b)):f};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
-Graph.prototype.setTableRowHeight=function(a,c,d){d=null!=d?d:!0;var b=this.getModel();b.beginUpdate();try{var f=this.getCellGeometry(a);if(null!=f){f=f.clone();f.height+=c;b.setGeometry(a,f);var e=b.getParent(a),h=b.getChildCells(e,!0);if(!d){var g=mxUtils.indexOf(h,a);if(g<h.length-1){var k=h[g+1],l=this.getCellGeometry(k);null!=l&&(l=l.clone(),l.y+=c,l.height-=c,b.setGeometry(k,l))}}var m=this.getCellGeometry(e);null!=m&&(d||(d=a==h[h.length-1]),d&&(m=m.clone(),m.height+=c,b.setGeometry(e,m)));
+Graph.prototype.setTableRowHeight=function(a,c,d){d=null!=d?d:!0;var b=this.getModel();b.beginUpdate();try{var f=this.getCellGeometry(a);if(null!=f){f=f.clone();f.height+=c;b.setGeometry(a,f);var e=b.getParent(a),h=b.getChildCells(e,!0);if(!d){var g=mxUtils.indexOf(h,a);if(g<h.length-1){var k=h[g+1],l=this.getCellGeometry(k);null!=l&&(l=l.clone(),l.y+=c,l.height-=c,b.setGeometry(k,l))}}var n=this.getCellGeometry(e);null!=n&&(d||(d=a==h[h.length-1]),d&&(n=n.clone(),n.height+=c,b.setGeometry(e,n)));
null!=this.layoutManager&&this.layoutManager.executeLayout(e,!0)}}finally{b.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(a,c,d){d=null!=d?d:!1;var b=this.getModel(),f=b.getParent(a),e=b.getParent(f),h=b.getChildCells(f,!0);a=mxUtils.indexOf(h,a);var g=a==h.length-1;b.beginUpdate();try{for(var k=b.getChildCells(e,!0),l=0;l<k.length;l++){var f=k[l],h=b.getChildCells(f,!0),m=h[a],n=this.getCellGeometry(m);null!=n&&(n=n.clone(),n.width+=c,b.setGeometry(m,n));a<h.length-1&&(m=h[a+1],n=this.getCellGeometry(m),null!=n&&(n=n.clone(),n.x+=c,d||(n.width-=c),b.setGeometry(m,n)))}if(g||
+Graph.prototype.setTableColumnWidth=function(a,c,d){d=null!=d?d:!1;var b=this.getModel(),f=b.getParent(a),e=b.getParent(f),h=b.getChildCells(f,!0);a=mxUtils.indexOf(h,a);var g=a==h.length-1;b.beginUpdate();try{for(var k=b.getChildCells(e,!0),l=0;l<k.length;l++){var f=k[l],h=b.getChildCells(f,!0),n=h[a],m=this.getCellGeometry(n);null!=m&&(m=m.clone(),m.width+=c,b.setGeometry(n,m));a<h.length-1&&(n=h[a+1],m=this.getCellGeometry(n),null!=m&&(m=m.clone(),m.x+=c,d||(m.width-=c),b.setGeometry(n,m)))}if(g||
d){var p=this.getCellGeometry(e);null!=p&&(p=p.clone(),p.width+=c,b.setGeometry(e,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(e,!0)}finally{b.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
TableLayout.prototype.getSize=function(a,c){for(var d=0,b=0;b<a.length;b++)if(!this.isVertexIgnored(a[b])){var f=this.graph.getCellGeometry(a[b]);null!=f&&(d+=c?f.width:f.height)}return d};TableLayout.prototype.getRowLayout=function(a,c){for(var d=this.graph.model.getChildCells(a,!0),b=this.graph.getActualStartSize(a,!0),f=this.getSize(d,!0),e=c-b.x-b.width,h=[],b=b.x,g=0;g<d.length;g++){var k=this.graph.getCellGeometry(d[g]);null!=k&&(b+=k.width*e/f,h.push(Math.round(b)))}return h};
TableLayout.prototype.layoutRow=function(a,c,d,b){var f=this.graph.getModel(),e=f.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var h=a.x,g=0;null!=c&&(c=c.slice(),c.splice(0,0,a.x));for(var k=0;k<e.length;k++){var l=this.graph.getCellGeometry(e[k]);null!=l&&(l=l.clone(),l.y=a.y,l.height=d-a.y-a.height,null!=c?(l.x=c[k],l.width=c[k+1]-l.x,k==e.length-1&&k<c.length-2&&(l.width=b-l.x-a.x-a.width)):(l.x=h,h+=l.width,k==e.length-1?l.width=b-a.x-a.width-g:g+=l.width),f.setGeometry(e[k],l))}return g};
-TableLayout.prototype.execute=function(a){if(null!=a){var c=this.graph.getActualStartSize(a,!0),d=this.graph.getCellGeometry(a),b=this.graph.getCellStyle(a),f="1"==mxUtils.getValue(b,"resizeLastRow","0"),e="1"==mxUtils.getValue(b,"resizeLast","0"),b="1"==mxUtils.getValue(b,"fixedRows","0"),h=this.graph.getModel(),g=0;h.beginUpdate();try{var k=d.height-c.y-c.height,l=d.width-c.x-c.width,m=h.getChildCells(a,!0),n=this.getSize(m,!1);if(0<k&&0<l&&0<m.length&&0<n){if(f){var p=this.graph.getCellGeometry(m[m.length-
-1]);null!=p&&(p=p.clone(),p.height=k-n+p.height,h.setGeometry(m[m.length-1],p))}for(var r=e?null:this.getRowLayout(m[0],l),u=c.y,v=0;v<m.length;v++)p=this.graph.getCellGeometry(m[v]),null!=p&&(p=p.clone(),p.x=c.x,p.width=l,p.y=Math.round(u),u=f||b?u+p.height:u+p.height/n*k,p.height=Math.round(u)-p.y,h.setGeometry(m[v],p)),g=Math.max(g,this.layoutRow(m[v],r,p.height,l));b&&k<n&&(d=d.clone(),d.height=u+c.height,h.setGeometry(a,d));e&&l<g+Graph.minTableColumnWidth&&(d=d.clone(),d.width=g+c.width+c.x+
+TableLayout.prototype.execute=function(a){if(null!=a){var c=this.graph.getActualStartSize(a,!0),d=this.graph.getCellGeometry(a),b=this.graph.getCellStyle(a),f="1"==mxUtils.getValue(b,"resizeLastRow","0"),e="1"==mxUtils.getValue(b,"resizeLast","0"),b="1"==mxUtils.getValue(b,"fixedRows","0"),h=this.graph.getModel(),g=0;h.beginUpdate();try{var k=d.height-c.y-c.height,l=d.width-c.x-c.width,n=h.getChildCells(a,!0),m=this.getSize(n,!1);if(0<k&&0<l&&0<n.length&&0<m){if(f){var p=this.graph.getCellGeometry(n[n.length-
+1]);null!=p&&(p=p.clone(),p.height=k-m+p.height,h.setGeometry(n[n.length-1],p))}for(var r=e?null:this.getRowLayout(n[0],l),u=c.y,v=0;v<n.length;v++)p=this.graph.getCellGeometry(n[v]),null!=p&&(p=p.clone(),p.x=c.x,p.width=l,p.y=Math.round(u),u=f||b?u+p.height:u+p.height/m*k,p.height=Math.round(u)-p.y,h.setGeometry(n[v],p)),g=Math.max(g,this.layoutRow(n[v],r,p.height,l));b&&k<m&&(d=d.clone(),d.height=u+c.height,h.setGeometry(a,d));e&&l<g+Graph.minTableColumnWidth&&(d=d.clone(),d.width=g+c.width+c.x+
Graph.minTableColumnWidth,h.setGeometry(a,d))}}finally{h.endUpdate()}}};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,b){b=null!=b?b:!0;var d=this.getState(a);null!=d&&b&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=c.apply(this,
arguments);null!=d&&b&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var d=mxShape.prototype.paint;mxShape.prototype.paint=function(){d.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 a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var b=this.state.view.graph.getFlowAnimationStyle();null!=b&&a[1].setAttribute("class",b.getAttribute("id"))}}};var b=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return b.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var f=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){f.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var f=new mxPoint(c,e);f.type=b;d.push(f);f=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==f||f.type!=
-b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],l=[],m=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,m.x,m.y,k.x,k.y)<1*this.scale*this.scale;)k=m,g++,m=b[g+2];for(var c=e(0,h.x,h.y)||c,H=0;H<this.validEdges.length;H++){var A=this.validEdges[H],I=A.absolutePoints;if(null!=I&&mxUtils.intersects(a,A)&&"1"!=A.style.noJump)for(A=0;A<I.length-1;A++){for(var y=I[A+1],G=I[A],m=I[A+2];A<I.length-2&&mxUtils.ptSegDistSq(G.x,G.y,m.x,m.y,y.x,y.y)<1*this.scale*this.scale;)y=
-m,A++,m=I[A+2];m=mxUtils.intersection(h.x,h.y,k.x,k.y,G.x,G.y,y.x,y.y);if(null!=m&&(Math.abs(m.x-h.x)>f||Math.abs(m.y-h.y)>f)&&(Math.abs(m.x-k.x)>f||Math.abs(m.y-k.y)>f)&&(Math.abs(m.x-G.x)>f||Math.abs(m.y-G.y)>f)&&(Math.abs(m.x-y.x)>f||Math.abs(m.y-y.y)>f)){y=m.x-h.x;G=m.y-h.y;m={distSq:y*y+G*G,x:m.x,y:m.y};for(y=0;y<l.length;y++)if(l[y].distSq>m.distSq){l.splice(y,0,m);m=null;break}null==m||0!=l.length&&l[l.length-1].x===m.x&&l[l.length-1].y===m.y||l.push(m)}}}for(A=0;A<l.length;A++)c=e(1,l[A].x,
-l[A].y)||c}m=b[b.length-1];c=e(0,m.x,m.y)||c}a.routedPoints=d;return c}return!1};var e=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)e.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),k=!0,h=null,l=null,m=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var A=this.state.routedPoints[p],I=new mxPoint(A.x/this.scale,A.y/this.scale);0==p?I=b[0]:p==this.state.routedPoints.length-1&&(I=b[b.length-1]);var y=!1;if(null!=h&&1==A.type){var G=this.state.routedPoints[p+1],A=G.x/this.scale-I.x,G=G.y/this.scale-I.y,A=A*A+G*G;null==n&&(n=new mxPoint(I.x-h.x,I.y-h.y),
-l=Math.sqrt(n.x*n.x+n.y*n.y),0<l?(n.x=n.x*f/l,n.y=n.y*f/l):n=null);A>f*f&&0<l&&(A=h.x-I.x,G=h.y-I.y,A=A*A+G*G,A>f*f&&(y=new mxPoint(I.x-n.x,I.y-n.y),A=new mxPoint(I.x+n.x,I.y+n.y),m.push(y),this.addPoints(a,m,c,d,!1,null,k),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(y.x-n.y*m,y.y+n.x*m),a.lineTo(A.x-n.y*m,A.y+n.x*m),a.lineTo(A.x,A.y)):"arc"==g?(m*=1.3,a.curveTo(y.x-n.y*m,y.y+n.x*m,A.x-n.y*m,A.y+n.x*m,A.x,A.y)):(a.moveTo(A.x,A.y),k=!0),m=[A],y=!0))}else n=
-null;y||(m.push(I),h=I)}this.addPoints(a,m,c,d,!1,null,k);a.stroke()}};var h=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){return null!=b&&"centerPerimeter"==b.style[mxConstants.STYLE_PERIMETER]?new mxPoint(b.getCenterX(),b.getCenterY()):h.apply(this,arguments)};var g=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)g.apply(this,
+b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],l=[],n=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,n.x,n.y,k.x,k.y)<1*this.scale*this.scale;)k=n,g++,n=b[g+2];for(var c=e(0,h.x,h.y)||c,H=0;H<this.validEdges.length;H++){var A=this.validEdges[H],I=A.absolutePoints;if(null!=I&&mxUtils.intersects(a,A)&&"1"!=A.style.noJump)for(A=0;A<I.length-1;A++){for(var y=I[A+1],G=I[A],n=I[A+2];A<I.length-2&&mxUtils.ptSegDistSq(G.x,G.y,n.x,n.y,y.x,y.y)<1*this.scale*this.scale;)y=
+n,A++,n=I[A+2];n=mxUtils.intersection(h.x,h.y,k.x,k.y,G.x,G.y,y.x,y.y);if(null!=n&&(Math.abs(n.x-h.x)>f||Math.abs(n.y-h.y)>f)&&(Math.abs(n.x-k.x)>f||Math.abs(n.y-k.y)>f)&&(Math.abs(n.x-G.x)>f||Math.abs(n.y-G.y)>f)&&(Math.abs(n.x-y.x)>f||Math.abs(n.y-y.y)>f)){y=n.x-h.x;G=n.y-h.y;n={distSq:y*y+G*G,x:n.x,y:n.y};for(y=0;y<l.length;y++)if(l[y].distSq>n.distSq){l.splice(y,0,n);n=null;break}null==n||0!=l.length&&l[l.length-1].x===n.x&&l[l.length-1].y===n.y||l.push(n)}}}for(A=0;A<l.length;A++)c=e(1,l[A].x,
+l[A].y)||c}n=b[b.length-1];c=e(0,n.x,n.y)||c}a.routedPoints=d;return c}return!1};var e=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)e.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),k=!0,h=null,l=null,n=[],m=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var A=this.state.routedPoints[p],I=new mxPoint(A.x/this.scale,A.y/this.scale);0==p?I=b[0]:p==this.state.routedPoints.length-1&&(I=b[b.length-1]);var y=!1;if(null!=h&&1==A.type){var G=this.state.routedPoints[p+1],A=G.x/this.scale-I.x,G=G.y/this.scale-I.y,A=A*A+G*G;null==m&&(m=new mxPoint(I.x-h.x,I.y-h.y),
+l=Math.sqrt(m.x*m.x+m.y*m.y),0<l?(m.x=m.x*f/l,m.y=m.y*f/l):m=null);A>f*f&&0<l&&(A=h.x-I.x,G=h.y-I.y,A=A*A+G*G,A>f*f&&(y=new mxPoint(I.x-m.x,I.y-m.y),A=new mxPoint(I.x+m.x,I.y+m.y),n.push(y),this.addPoints(a,n,c,d,!1,null,k),n=0>Math.round(m.x)||0==Math.round(m.x)&&0>=Math.round(m.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(y.x-m.y*n,y.y+m.x*n),a.lineTo(A.x-m.y*n,A.y+m.x*n),a.lineTo(A.x,A.y)):"arc"==g?(n*=1.3,a.curveTo(y.x-m.y*n,y.y+m.x*n,A.x-m.y*n,A.y+m.x*n,A.x,A.y)):(a.moveTo(A.x,A.y),k=!0),n=[A],y=!0))}else m=
+null;y||(n.push(I),h=I)}this.addPoints(a,n,c,d,!1,null,k);a.stroke()}};var h=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){return null!=b&&"centerPerimeter"==b.style[mxConstants.STYLE_PERIMETER]?new mxPoint(b.getCenterX(),b.getCenterY()):h.apply(this,arguments)};var g=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)g.apply(this,
arguments);else{b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a),k=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),h=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=k)var l=Math.cos(-k),m=Math.sin(-k),e=mxUtils.getRotatedPoint(e,l,m,h);l=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);l+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,
e,0==k&&f,l);0!=k&&(l=Math.cos(k),m=Math.sin(k),e=mxUtils.getRotatedPoint(e,l,m,h));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,e),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(b,a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||k<d)c=g,d=k}}null!=c&&(e=c)}return e};var k=mxStencil.prototype.evaluateTextAttribute;
mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=k.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"string"===typeof b&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-
@@ -2735,19 +2736,19 @@ k){var h=this.createCellLookup([f.root]),k=k.slice();this.model.beginUpdate();tr
null==d.get(this.model.getParent(a[e]))&&(K.offset=null,K.relative=!1,K.x=h.x/h.view.scale-h.view.translate.x,K.y=h.y/h.view.scale-h.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(b,this.createCellLookup(a)),c);return f.encode(g)};Graph.prototype.isSwimlane=function(a,b){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var c=this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE];return c==mxConstants.SHAPE_SWIMLANE||"table"==c}return!1};var g=Graph.prototype.isExtendParent;
Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null!=b){var c=this.getCurrentCellStyle(b);if(null!=c.expand)return"0"!=c.expand}return g.apply(this,arguments)&&(null==b||!this.isTable(b))};var k=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,c,d,e,f,g,h){null==h&&(h=this.model.getParent(a),this.isTable(h)||this.isTableRow(h))&&(h=this.getCellAt(f,g,null,!0,!1));c=null;this.model.beginUpdate();try{c=k.apply(this,[a,b,c,d,e,f,g,h]);this.model.setValue(c,
"");var K=this.getChildCells(c,!0);for(b=0;b<K.length;b++){var l=this.getCellGeometry(K[b]);null!=l&&l.relative&&0<l.x&&this.model.remove(K[b])}var m=this.getChildCells(a,!0);for(b=0;b<m.length;b++)l=this.getCellGeometry(m[b]),null!=l&&l.relative&&0>=l.x&&this.model.remove(m[b]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
-mxConstants.NONE,[a]);var n=this.model.getTerminal(c,!1);if(null!=n){var ba=this.getCurrentCellStyle(n);null!=ba&&"1"==ba.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),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(a,b,c){if(b||c)l.apply(this,arguments);
-else{var d=this.getSelectionCell(),e=null,f=[],g=mxUtils.bind(this,function(b){if(null!=this.view.getState(b)&&(this.model.isVertex(b)||this.model.isEdge(b)))if(f.push(b),b==d)e=f.length-1;else if(a&&null==d&&0<f.length||null!=e&&a&&f.length>e||!a&&0<e)return;for(var c=0;c<this.model.getChildCount(b);c++)g(this.model.getChildAt(b,c))});g(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),f.length):0,this.setSelectionCell(f[e]))}};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=
-function(a,b,c,d,e,f,g){g=null!=g?g:{};if(this.isTable(e)){for(var k=[],h=0;h<a.length;h++)this.isTable(a[h])?k=k.concat(this.model.getChildCells(a[h],!0).reverse()):k.push(a[h]);a=k}this.model.beginUpdate();try{k=[];for(h=0;h<a.length;h++)if(null!=e&&this.isTableRow(a[h])){var K=this.model.getParent(a[h]),l=this.getCellGeometry(a[h]);this.isTable(K)&&k.push(K);if(null!=K&&null!=l&&this.isTable(K)&&this.isTable(e)&&(d||K!=e)){if(!d){var n=this.getCellGeometry(K);null!=n&&(n=n.clone(),n.height-=l.height,
-this.model.setGeometry(K,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=l.height,this.model.setGeometry(e,n));var ba=this.model.getChildCells(e,!0);if(0<ba.length){a[h]=d?this.cloneCell(a[h]):a[h];var p=this.model.getChildCells(a[h],!0),ka=this.model.getChildCells(ba[0],!0),V=ka.length-p.length;if(0<V)for(var S=0;S<V;S++){var r=this.cloneCell(p[p.length-1]);null!=r&&(r.value="",this.model.add(a[h],r))}else if(0>V)for(S=0;S>V;S--)this.model.remove(p[p.length+S-1]);p=this.model.getChildCells(a[h],
-!0);for(S=0;S<ka.length;S++){var u=this.getCellGeometry(ka[S]),la=this.getCellGeometry(p[S]);null!=u&&null!=la&&(la=la.clone(),la.width=u.width,this.model.setGeometry(p[S],la))}}}}for(var t=m.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),t)}finally{this.model.endUpdate()}return t};var n=Graph.prototype.removeCells;Graph.prototype.removeCells=
+mxConstants.NONE,[a]);var n=this.model.getTerminal(c,!1);if(null!=n){var aa=this.getCurrentCellStyle(n);null!=aa&&"1"==aa.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),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(a,b,c){if(b||c)l.apply(this,arguments);
+else{var d=this.getSelectionCell(),e=null,f=[],g=mxUtils.bind(this,function(b){if(null!=this.view.getState(b)&&(this.model.isVertex(b)||this.model.isEdge(b)))if(f.push(b),b==d)e=f.length-1;else if(a&&null==d&&0<f.length||null!=e&&a&&f.length>e||!a&&0<e)return;for(var c=0;c<this.model.getChildCount(b);c++)g(this.model.getChildAt(b,c))});g(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),f.length):0,this.setSelectionCell(f[e]))}};var n=Graph.prototype.moveCells;Graph.prototype.moveCells=
+function(a,b,c,d,e,f,g){g=null!=g?g:{};if(this.isTable(e)){for(var k=[],h=0;h<a.length;h++)this.isTable(a[h])?k=k.concat(this.model.getChildCells(a[h],!0).reverse()):k.push(a[h]);a=k}this.model.beginUpdate();try{k=[];for(h=0;h<a.length;h++)if(null!=e&&this.isTableRow(a[h])){var K=this.model.getParent(a[h]),l=this.getCellGeometry(a[h]);this.isTable(K)&&k.push(K);if(null!=K&&null!=l&&this.isTable(K)&&this.isTable(e)&&(d||K!=e)){if(!d){var m=this.getCellGeometry(K);null!=m&&(m=m.clone(),m.height-=l.height,
+this.model.setGeometry(K,m))}m=this.getCellGeometry(e);null!=m&&(m=m.clone(),m.height+=l.height,this.model.setGeometry(e,m));var aa=this.model.getChildCells(e,!0);if(0<aa.length){a[h]=d?this.cloneCell(a[h]):a[h];var ca=this.model.getChildCells(a[h],!0),p=this.model.getChildCells(aa[0],!0),U=p.length-ca.length;if(0<U)for(var r=0;r<U;r++){var Y=this.cloneCell(ca[ca.length-1]);null!=Y&&(Y.value="",this.model.add(a[h],Y))}else if(0>U)for(r=0;r>U;r--)this.model.remove(ca[ca.length+r-1]);ca=this.model.getChildCells(a[h],
+!0);for(r=0;r<p.length;r++){var u=this.getCellGeometry(p[r]),la=this.getCellGeometry(ca[r]);null!=u&&null!=la&&(la=la.clone(),la.width=u.width,this.model.setGeometry(ca[r],la))}}}}for(var t=n.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),t)}finally{this.model.endUpdate()}return t};var m=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,b){var c=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var e=this.model.getParent(a[d]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f)&&c.push(f):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(f=this.model.getParent(a[d]),0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f))){for(var g=this.model.getChildCells(f,!0),k=0,h=0;h<g.length;h++)0<=mxUtils.indexOf(a,
-g[h])&&k++;k==g.length&&c.push(f)}c.push(a[d])}c=n.apply(this,[c,b])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(a,b){for(var c=0;c<b.length;c++)null!=b[c]&&this.updateCustomLinksForCell(a,b[c])};Graph.prototype.updateCustomLinksForCell=function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var f=e[c];d.push(new mxConnectionConstraint(new mxPoint(f[0],
+g[h])&&k++;k==g.length&&c.push(f)}c.push(a[d])}c=m.apply(this,[c,b])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(a,b){for(var c=0;c<b.length;c++)null!=b[c]&&this.updateCustomLinksForCell(a,b[c])};Graph.prototype.updateCustomLinksForCell=function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var f=e[c];d.push(new mxConnectionConstraint(new mxPoint(f[0],
f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(Ba){}return d}if(null!=a.shape&&null!=a.shape.bounds){f=a.shape.direction;e=a.shape.bounds;c=a.shape.scale;d=e.width/c;e=e.height/c;if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=d,d=e,e=f;c=a.shape.getConstraints(a.style,d,e);if(null!=c)return c;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};
Graph.prototype.flipEdge=function(a){if(null!=a){var b=this.getCurrentCellStyle(a),b=mxUtils.getValue(b,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,b,[a])}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<
c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,b,c){for(var d=this.getCurrentCellStyle(a),e=!0,f=!0,g=0;g<b.length&&f;g++)e=e&&this.isTable(b[g]),f=f&&this.isTableRow(b[g]);return("1"!=mxUtils.getValue(d,"part","0")||this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||f||e)};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,
arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&
(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a,b){var c=this.getModel(),d=[];c.beginUpdate();try{for(var e=0;e<a.length;e++){var f=a[e];if(c.isEdge(f)){var g=c.getTerminal(f,!0),k=c.getTerminal(f,!1);c.setTerminal(f,k,!0);c.setTerminal(f,g,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var K=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);h.setTerminalPoint(K,!1);h.setTerminalPoint(l,!0);c.setGeometry(f,
-h);var m=this.view.getState(f),n=this.view.getState(g),p=this.view.getState(k);if(null!=m){var ba=null!=n?this.getConnectionConstraint(m,n,!0):null,r=null!=p?this.getConnectionConstraint(m,p,!1):null;this.setConnectionConstraint(f,g,!0,r);this.setConnectionConstraint(f,k,!1,ba);var u=mxUtils.getValue(m.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(m.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
+h);var m=this.view.getState(f),n=this.view.getState(g),aa=this.view.getState(k);if(null!=m){var p=null!=n?this.getConnectionConstraint(m,n,!0):null,r=null!=aa?this.getConnectionConstraint(m,aa,!1):null;this.setConnectionConstraint(f,g,!0,r);this.setConnectionConstraint(f,k,!1,p);var u=mxUtils.getValue(m.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(m.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
u,[f])}d.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;h.height=t;c.setGeometry(f,h)}var v=this.view.getState(f);if(null!=v){var y=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],G=mxUtils.getValue(v.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
this.setCellStyles(mxConstants.STYLE_DIRECTION,y[mxUtils.mod(mxUtils.indexOf(y,G)+(b?-1:1),y.length)],[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var b=a.cell;this.isTableCell(b)&&(b=this.model.getParent(b));this.isTableRow(b)&&(b=this.model.getParent(b));var c=this.view.getState(b);null!=c&&null!=c.shape&&(this.view.invalidate(b),c.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
@@ -2778,13 +2779,13 @@ e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Grap
b.length;){for(c=b[0].parentNode;null!=b[0].firstChild;)c.insertBefore(b[0].firstChild,b[0]);c.removeChild(b[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=
function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var h=(d-e)/(c.length-1),
d=e,f=1;f<c.length-1;f++){var l=this.view.getState(this.model.getParent(c[f].cell)),m=this.getCellGeometry(c[f].cell),d=d+h;null!=m&&null!=l&&(m=m.clone(),a?m.x=Math.round(d-m.width/2)-l.origin.x:m.y=Math.round(d-m.height/2)-l.origin.y,this.getModel().setGeometry(c[f].cell,m))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;
-a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,k,h,l,m,n,p,r){var K=null;if(null!=r)for(K=new mxDictionary,m=0;m<r.length;m++)K.put(r[m],!0);if(r=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var ba="page"==p?this.view.getBackgroundPageBounds():f&&null==K||d||"diagram"==p?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells());if(null==ba)throw Error(mxResources.get("drawingEmpty"));var ka=this.view.scale,u=mxUtils.createXmlDocument(),V=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"svg"):u.createElement("svg");null!=a&&(null!=V.style?V.style.backgroundColor=a:V.setAttribute("style","background-color:"+a));null==u.createElementNS?(V.setAttribute("xmlns",mxConstants.NS_SVG),V.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):V.setAttributeNS("http://www.w3.org/2000/xmlns/",
-"xmlns:xlink",mxConstants.NS_XLINK);a=b/ka;var t=Math.max(1,Math.ceil(ba.width*a)+2*c)+(l?5:0),v=Math.max(1,Math.ceil(ba.height*a)+2*c)+(l?5:0);V.setAttribute("version","1.1");V.setAttribute("width",t+"px");V.setAttribute("height",v+"px");V.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+t+" "+v);u.appendChild(V);var y=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");V.appendChild(y);var S=this.createSvgCanvas(y);S.foOffset=e?-.5:0;S.textOffset=e?-.5:0;S.imageOffset=
-e?-.5:0;S.translate(Math.floor((c/b-ba.x)/ka),Math.floor((c/b-ba.y)/ka));var G=document.createElement("div"),A=S.getAlternateText;S.getAlternateText=function(a,b,c,d,e,f,g,k,h,l,m,n,q){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(G.innerHTML=f,f=mxUtils.extractTextWithWhitespace(G.childNodes));for(var D=Math.ceil(2*d/this.state.fontSize),C=[],z=0,F=0;(0==D||z<D)&&F<f.length;){var J=f.charCodeAt(F);if(10==J||13==J){if(0<z)break}else C.push(f.charAt(F)),255>J&&z++;F++}C.length<
-f.length&&1<f.length-C.length&&(f=mxUtils.trim(C.join(""))+"...");return f}catch(cb){return A.apply(this,arguments)}else return A.apply(this,arguments)};var R=this.backgroundImage;if(null!=R){b=ka/b;var w=this.view.translate,x=new mxRectangle(w.x*b,w.y*b,R.width*b,R.height*b);mxUtils.intersects(ba,x)&&S.image(w.x,w.y,R.width,R.height,R.src,!0)}S.scale(a);S.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var la=k.drawCellState,I=k.getLinkForCellState;k.getLinkForCellState=function(a,b){var c=
-I.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};k.getLinkTargetForCellState=function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=K?K.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==K||d)&&null!=e;)d=null!=K?K.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==K||d)&&la.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),S);this.updateSvgLinks(V,
-h,!0);this.addForeignObjectWarning(S,V);return V}finally{r&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<b.getElementsByTagName("foreignObject").length){var c=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=a.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||
+a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,k,h,l,m,n,p,r){var K=null;if(null!=r)for(K=new mxDictionary,m=0;m<r.length;m++)K.put(r[m],!0);if(r=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var aa="page"==p?this.view.getBackgroundPageBounds():f&&null==K||d||"diagram"==p?this.getGraphBounds():
+this.getBoundingBox(this.getSelectionCells());if(null==aa)throw Error(mxResources.get("drawingEmpty"));var ca=this.view.scale,u=mxUtils.createXmlDocument(),U=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"svg"):u.createElement("svg");null!=a&&(null!=U.style?U.style.backgroundColor=a:U.setAttribute("style","background-color:"+a));null==u.createElementNS?(U.setAttribute("xmlns",mxConstants.NS_SVG),U.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):U.setAttributeNS("http://www.w3.org/2000/xmlns/",
+"xmlns:xlink",mxConstants.NS_XLINK);a=b/ca;var t=Math.max(1,Math.ceil(aa.width*a)+2*c)+(l?5:0),v=Math.max(1,Math.ceil(aa.height*a)+2*c)+(l?5:0);U.setAttribute("version","1.1");U.setAttribute("width",t+"px");U.setAttribute("height",v+"px");U.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+t+" "+v);u.appendChild(U);var y=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");U.appendChild(y);var Y=this.createSvgCanvas(y);Y.foOffset=e?-.5:0;Y.textOffset=e?-.5:0;Y.imageOffset=
+e?-.5:0;Y.translate(Math.floor((c/b-aa.x)/ca),Math.floor((c/b-aa.y)/ca));var G=document.createElement("div"),A=Y.getAlternateText;Y.getAlternateText=function(a,b,c,d,e,f,g,k,h,l,m,n,q){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(G.innerHTML=f,f=mxUtils.extractTextWithWhitespace(G.childNodes));for(var D=Math.ceil(2*d/this.state.fontSize),C=[],z=0,F=0;(0==D||z<D)&&F<f.length;){var J=f.charCodeAt(F);if(10==J||13==J){if(0<z)break}else C.push(f.charAt(F)),255>J&&z++;F++}C.length<
+f.length&&1<f.length-C.length&&(f=mxUtils.trim(C.join(""))+"...");return f}catch(cb){return A.apply(this,arguments)}else return A.apply(this,arguments)};var R=this.backgroundImage;if(null!=R){b=ca/b;var w=this.view.translate,x=new mxRectangle(w.x*b,w.y*b,R.width*b,R.height*b);mxUtils.intersects(aa,x)&&Y.image(w.x,w.y,R.width,R.height,R.src,!0)}Y.scale(a);Y.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var la=k.drawCellState,I=k.getLinkForCellState;k.getLinkForCellState=function(a,b){var c=
+I.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};k.getLinkTargetForCellState=function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=K?K.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==K||d)&&null!=e;)d=null!=K?K.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==K||d)&&la.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),Y);this.updateSvgLinks(U,
+h,!0);this.addForeignObjectWarning(Y,U);return U}finally{r&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<b.getElementsByTagName("foreignObject").length){var c=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=a.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||
b.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 f=a.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);c.appendChild(d);
e.appendChild(f);c.appendChild(e);b.appendChild(c)}};Graph.prototype.updateSvgLinks=function(a,b,c){a=a.getElementsByTagName("a");for(var d=0;d<a.length;d++)if(null==a[d].getAttribute("target")){var e=a[d].getAttribute("href");null==e&&(e=a[d].getAttribute("xlink:href"));null!=e&&(null!=b&&/^https?:\/\//.test(e)?a[d].setAttribute("target",b):c&&this.isCustomLink(e)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=
!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getSelectedEditingElement=function(){for(var a=this.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;null!=a&&a==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&
@@ -2805,7 +2806,7 @@ mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditi
b.x+1,e.getY()+b.y+1,a,e.getEvent())}}),500)}):null;mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[a,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var a="";window.getSelection?a=window.getSelection():
document.getSelection?a=document.getSelection():document.selection&&(a=document.selection.createRange().text);return""!=a};mxCellEditor.prototype.insertTab=function(a){var b=this.textarea.ownerDocument.defaultView.getSelection(),c=b.getRangeAt(0),d="\t";if(null!=a)for(d="";0<a;)d+=" ",a--;a=document.createElement("span");a.style.whiteSpace="pre";a.appendChild(document.createTextNode(d));c.insertNode(a);c.setStartAfter(a);c.setEndAfter(a);b.removeAllRanges();b.addRange(c)};mxCellEditor.prototype.alignText=
function(a,b){var c=null!=b&&mxEvent.isShiftDown(b);if(c||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){c||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&
-a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(V){}};var u=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
+a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(U){}};var u=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));u.apply(this,arguments)};var v=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?v.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var t=mxCellEditor.prototype.startEditing;
mxCellEditor.prototype.startEditing=function(a,b){a=this.graph.getStartEditingCell(a,b);t.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=
mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var w=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=
@@ -2837,16 +2838,16 @@ a&&(a=[]);var g=b.view.getCellStates(c.getChildCells(this.state.cell,!0));if(0<g
this.shape&&null!=this.state.shape){var a=b.getActualStartSize(d.cell);this.shape.stroke=0==m?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+this.state.width+m*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(c==k.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(c==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var n=!1;l.setPosition=function(a,c,d){m=Math.max(Graph.minTableColumnWidth-a.width,c.x-a.x-a.width);n=
mxEvent.isShiftDown(d.getEvent());null==h||n||(m=Math.min((h.x+h.width-g.x-g.width)/b.view.scale-Graph.minTableColumnWidth,m))};l.execute=function(a){if(0!=m)b.setTableColumnWidth(this.state.cell,m,n);else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}m=0};l.reset=function(){m=0};a.push(l)})(c);for(c=0;c<g.length;c++)mxUtils.bind(this,function(c){c=g[c];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;
k.svgStrokeTolerance++;c=new mxHandle(c,"row-resize",null,k);c.tableHandle=!0;var h=0;c.shape.node.parentNode.insertBefore(c.shape.node,c.shape.node.parentNode.firstChild);c.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==h?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+h*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};c.setPosition=function(a,
-b,c){h=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height)};c.execute=function(a){if(0!=h)b.setTableRowHeight(this.state.cell,h,!mxEvent.isShiftDown(a.getEvent()));else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}h=0};c.reset=function(){h=0};a.push(c)})(c)}}return null!=a?a.reverse():null};var X=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){X.apply(this,arguments);
+b,c){h=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height)};c.execute=function(a){if(0!=h)b.setTableRowHeight(this.state.cell,h,!mxEvent.isShiftDown(a.getEvent()));else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}h=0};c.reset=function(){h=0};a.push(c)})(c)}}return null!=a?a.reverse():null};var W=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){W.apply(this,arguments);
if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var a=this.graph.model;if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}this.moveHandles=[];for(b=
0;b<a.getChildCount(this.state.cell);b++)mxUtils.bind(this,function(b){if(null!=b&&a.isVertex(b.cell)){var c=mxUtils.createImage(Editor.rowMoveImage);c.style.position="absolute";c.style.cursor="pointer";c.style.width="7px";c.style.height="4px";c.style.padding="4px 2px 4px 2px";c.rowState=b;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(b.cell)||this.graph.selectCellForEvent(b.cell,
a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),b.cell,a),mxEvent.consume(a))}));this.moveHandles.push(c);this.graph.container.appendChild(c)}})(this.graph.view.getState(a.getChildAt(this.state.cell,
-b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var aa=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance,c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&mxStencilRegistry.getStencil(c);
+b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var ba=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance,c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&mxStencilRegistry.getStencil(c);
c=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!c&&null!=this.customHandles)for(var d=0;d<this.customHandles.length;d++)if(null!=this.customHandles[d].shape&&null!=this.customHandles[d].shape.bounds){var e=this.customHandles[d].shape.bounds,f=e.getCenterX(),g=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-g)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-g)<e.height/
-2){c=!0;break}}c&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,this.graph.isTable(this.state.cell)&&(b+=7),a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=aa.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{b=
+2){c=!0;break}}c&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,this.graph.isTable(this.state.cell)&&(b+=7),a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=ba.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{b=
this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/b),d)+" x "+c(this.roundLength(this.bounds.height/b),d)}b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==b&&(b=this.bounds);this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=b.y+b.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 Z=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){Z.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 U=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
-function(a,b){U.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(b,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(g,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var Z=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){Z.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 T=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(a,b){T.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(b,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(g,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",
@@ -2857,7 +2858,7 @@ Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.proto
(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=
!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=
function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=
-function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};var T=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){T.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=
+function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};var S=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){S.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=
a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&
(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(a,b){if(this.cancelled)this.cancelled=!1,b.consume();else{var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,f=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,e=this.first.y,f=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(f=this.graph.snap(f),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(f)<
this.graph.tolerance&&(f=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(c){if(mxEvent.isAltDown(b.getEvent())&&this.graph.isToggleEvent(b.getEvent())){var f=new mxRectangle(this.x,this.y,this.width,this.height),k=this.graph.getCells(f.x,f.y,f.width,f.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(d,e,this.graph.getDefaultParent(),!0,!0),c=0;c<k.length;c++)if(this.graph.isCellMovable(k[c])){var h=
@@ -2865,31 +2866,31 @@ this.graph.view.getState(k[c]),l=this.graph.getCellGeometry(k[c]);null!=h&&null!
var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),b.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var R=(new Date).getTime(),fa=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){na.apply(this,arguments);c!=this.currentTerminalState?(R=(new Date).getTime(),fa=0):fa=(new Date).getTime()-R;this.currentTerminalState=
-c};var oa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<fa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&oa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-
+this.secondDiv=null)),b.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var R=(new Date).getTime(),ga=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){na.apply(this,arguments);c!=this.currentTerminalState?(R=(new Date).getTime(),ga=0):ga=(new Date).getTime()-R;this.currentTerminalState=
+c};var oa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ga||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&oa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,
-mxConstants.HANDLE_STROKECOLOR)};var pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var da=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
-if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return da.apply(this,arguments)};var qa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=qa.apply(this,arguments),b=[],c=0;c<a.length;c++)"1"!=mxUtils.getValue(a[c].style,"part","0")&&b.push(a[c]);return b};var ua=mxVertexHandler.prototype.getSelectionBounds;
+mxConstants.HANDLE_STROKECOLOR)};var pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var ea=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
+if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return ea.apply(this,arguments)};var qa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=qa.apply(this,arguments),b=[],c=0;c<a.length;c++)"1"!=mxUtils.getValue(a[c].style,"part","0")&&b.push(a[c]);return b};var ua=mxVertexHandler.prototype.getSelectionBounds;
mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):ua.apply(this,arguments)};var ra=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ra.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&b==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var va=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){va.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
-null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var ja=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){ja.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
-"");this.blockDelayedSelection=null};var ga=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ga.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var b=0;4>b;b++){var c=new mxRectangleShape(new mxRectangle(0,
+null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var ka=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){ka.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
+"");this.blockDelayedSelection=null};var ha=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ha.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var b=0;4>b;b++){var c=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);c.dialect=mxConstants.DIALECT_SVG;c.init(this.graph.view.getOverlayPane());this.cornerHandles.push(c)}}var d=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,b){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);b=this.graph.getLinkForCell(this.state.cell);c=this.graph.getLinksForState(this.state);this.updateLinkHint(b,c);if(null!=b||null!=c&&0<c.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=
function(b,c){try{if(null==b&&(null==c||0==c.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b||null!=c&&0<c.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));this.linkHint.innerHTML="";if(null!=b&&(this.linkHint.appendChild(this.graph.createLinkForHint(b)),
this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));
var e=document.createElement("img");e.setAttribute("src",Dialog.prototype.clearImage);e.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));e.setAttribute("width","13");e.setAttribute("height","10");e.style.marginLeft="4px";e.style.marginBottom="-1px";e.style.cursor="pointer";this.linkHint.appendChild(e);mxEvent.addListener(e,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=c)for(d=0;d<c.length;d++){var f=
-document.createElement("div");f.style.marginTop=null!=b||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(c[d].getAttribute("href"),mxUtils.getTextContent(c[d])));this.linkHint.appendChild(f)}}}catch(la){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var ha=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){ha.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});
+document.createElement("div");f.style.marginTop=null!=b||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(c[d].getAttribute("href"),mxUtils.getTextContent(c[d])));this.linkHint.appendChild(f)}}}catch(la){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var ia=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){ia.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});
var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(b,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var b=this.graph.getLinkForCell(this.state.cell),c=this.graph.getLinksForState(this.state);if(null!=b||null!=c&&0<c.length)this.updateLinkHint(b,c),this.redrawHandles()};var ca=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ca.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var ea=mxVertexHandler.prototype.redrawHandles;
+this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var b=this.graph.getLinkForCell(this.state.cell),c=this.graph.getLinksForState(this.state);if(null!=b||null!=c&&0<c.length)this.updateLinkHint(b,c),this.redrawHandles()};var da=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){da.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var fa=mxVertexHandler.prototype.redrawHandles;
mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var a=0;a<this.moveHandles.length;a++)this.moveHandles[a].style.left=this.moveHandles[a].rowState.x+this.moveHandles[a].rowState.width-5+"px",this.moveHandles[a].style.top=this.moveHandles[a].rowState.y+this.moveHandles[a].rowState.height/2-6+"px";if(null!=this.cornerHandles){var a=this.getSelectionBorderInset(),b=this.cornerHandles,c=b[0].bounds.height/2;b[0].bounds.x=this.state.x-b[0].bounds.width/2+a;b[0].bounds.y=
this.state.y-c+a;b[0].redraw();b[1].bounds.x=b[0].bounds.x+this.state.width-2*a;b[1].bounds.y=b[0].bounds.y;b[1].redraw();b[2].bounds.x=b[0].bounds.x;b[2].bounds.y=this.state.y+this.state.height-2*a;b[2].redraw();b[3].bounds.x=b[1].bounds.x;b[3].bounds.y=b[2].bounds.y;b[3].redraw();for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
-null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");ea.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),c=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=c?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
+null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");fa.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),c=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=c?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
"0"):this.state,b=null!=this.state.text?this.state.text.boundingBox:null,null==c&&(c=this.state),c=c.y+c.height,null!=b&&(c=Math.max(c,b.y+b.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(c+this.verticalOffset/2+Editor.hintOffset)+"px")};var ma=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){ma.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=
this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].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 ia=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(ia.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
-null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var Y=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){Y.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var sa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
+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 ja=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(ja.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
+null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var X=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){X.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var sa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
function(){sa.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)}}();Format=function(a,c){this.editorUi=a;this.container=c};Format.inactiveTabBackgroundColor="#f1f3f4";Format.prototype.labelIndex=0;Format.prototype.diagramIndex=0;Format.prototype.currentIndex=0;Format.prototype.showCloseButton=!0;Format.prototype.roundableShapes="label rectangle internalStorage corner parallelogram swimlane triangle trapezoid ext step tee process link rhombus offPageConnector loopLimit hexagon manualInput card curlyBracket singleArrow callout doubleArrow flexArrow umlLifeline".split(" ");
Format.prototype.init=function(){var a=this.editorUi,c=a.editor,d=c.graph;this.update=mxUtils.bind(this,function(a,c){this.clearSelectionState();this.refresh()});d.getSelectionModel().addListener(mxEvent.CHANGE,this.update);d.addListener(mxEvent.EDITING_STARTED,this.update);d.addListener(mxEvent.EDITING_STOPPED,this.update);d.getModel().addListener(mxEvent.CHANGE,this.update);d.getView().addListener("unitChanged",this.update);d.addListener(mxEvent.ROOT,mxUtils.bind(this,function(){this.refresh()}));
a.addListener("styleChanged",mxUtils.bind(this,function(a,c){this.refresh()}));c.addListener("autosaveChanged",mxUtils.bind(this,function(){this.refresh()}));this.refresh()};Format.prototype.clearSelectionState=function(){this.selectionState=null};Format.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
@@ -2906,26 +2907,26 @@ Format.prototype.refresh=function(){null!=this.pendingRefresh&&(window.clearTime
Format.prototype.immediateRefresh=function(){if("0px"!=this.container.style.width){this.clear();var a=this.editorUi,c=a.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.color="rgb(112, 112, 112)";d.style.textAlign="left";d.style.cursor="default";var b=document.createElement("div");b.className="geFormatSection";b.style.textAlign="center";b.style.fontWeight="bold";b.style.paddingTop="8px";b.style.fontSize="13px";b.style.borderWidth="0px 0px 1px 1px";b.style.borderStyle=
"solid";b.style.display="inline-block";b.style.height="25px";b.style.overflow="hidden";b.style.width="100%";this.container.appendChild(d);mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));var f=this.getSelectionState(),e=f.containsLabel,h=null,g=null,k=mxUtils.bind(this,function(a,b,d,f){var k=mxUtils.bind(this,function(f){h!=a&&(e?this.labelIndex=d:c.isSelectionEmpty()?this.diagramIndex=d:this.currentIndex=d,null!=h&&(h.style.backgroundColor=
Format.inactiveTabBackgroundColor,h.style.borderBottomWidth="1px"),h=a,h.style.backgroundColor="",h.style.borderBottomWidth="0px",g!=b&&(null!=g&&(g.style.display="none"),g=b,g.style.display=""))});mxEvent.addListener(a,"click",k);mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));(f&&null==h||d==(e?this.labelIndex:c.isSelectionEmpty()?this.diagramIndex:this.currentIndex))&&k()}),l=0;if(c.isSelectionEmpty()){mxUtils.write(b,mxResources.get("diagram"));
-b.style.borderLeftWidth="0px";d.appendChild(b);f=d.cloneNode(!1);this.panels.push(new DiagramFormatPanel(this,a,f));this.container.appendChild(f);if(null!=Editor.styles){f.style.display="none";b.style.width=this.showCloseButton?"106px":"50%";b.style.cursor="pointer";b.style.backgroundColor=Format.inactiveTabBackgroundColor;var m=b.cloneNode(!1);m.style.borderLeftWidth="1px";m.style.borderRightWidth="1px";m.style.backgroundColor=Format.inactiveTabBackgroundColor;k(b,f,l++);var n=d.cloneNode(!1);n.style.display=
-"none";mxUtils.write(m,mxResources.get("style"));d.appendChild(m);this.panels.push(new DiagramStylePanel(this,a,n));this.container.appendChild(n);k(m,n,l++)}this.showCloseButton&&(m=b.cloneNode(!1),m.style.borderLeftWidth="1px",m.style.borderRightWidth="1px",m.style.borderBottomWidth="1px",m.style.backgroundColor=Format.inactiveTabBackgroundColor,m.style.position="absolute",m.style.right="0px",m.style.top="0px",m.style.width="25px",k=document.createElement("img"),k.setAttribute("border","0"),k.setAttribute("src",
-Dialog.prototype.closeImage),k.setAttribute("title",mxResources.get("hide")),k.style.position="absolute",k.style.display="block",k.style.right="0px",k.style.top="8px",k.style.cursor="pointer",k.style.marginTop="1px",k.style.marginRight="6px",k.style.border="1px solid transparent",k.style.padding="1px",k.style.opacity=.5,m.appendChild(k),mxEvent.addListener(k,"click",function(){a.actions.get("formatPanel").funct()}),d.appendChild(m))}else if(c.isEditing())mxUtils.write(b,mxResources.get("text")),d.appendChild(b),
-this.panels.push(new TextFormatPanel(this,a,d));else{b.style.backgroundColor=Format.inactiveTabBackgroundColor;b.style.borderLeftWidth="1px";b.style.cursor="pointer";b.style.width=e||0==f.cells.length?"50%":"33.3%";var m=b.cloneNode(!1),p=m.cloneNode(!1);m.style.backgroundColor=Format.inactiveTabBackgroundColor;p.style.backgroundColor=Format.inactiveTabBackgroundColor;e?m.style.borderLeftWidth="0px":(b.style.borderLeftWidth="0px",mxUtils.write(b,mxResources.get("style")),d.appendChild(b),n=d.cloneNode(!1),
-n.style.display="none",this.panels.push(new StyleFormatPanel(this,a,n)),this.container.appendChild(n),k(b,n,l++));mxUtils.write(m,mxResources.get("text"));d.appendChild(m);b=d.cloneNode(!1);b.style.display="none";this.panels.push(new TextFormatPanel(this,a,b));this.container.appendChild(b);mxUtils.write(p,mxResources.get("arrange"));d.appendChild(p);d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);0<f.cells.length?k(m,b,l++):m.style.display=
+b.style.borderLeftWidth="0px";d.appendChild(b);f=d.cloneNode(!1);this.panels.push(new DiagramFormatPanel(this,a,f));this.container.appendChild(f);if(null!=Editor.styles){f.style.display="none";b.style.width=this.showCloseButton?"106px":"50%";b.style.cursor="pointer";b.style.backgroundColor=Format.inactiveTabBackgroundColor;var n=b.cloneNode(!1);n.style.borderLeftWidth="1px";n.style.borderRightWidth="1px";n.style.backgroundColor=Format.inactiveTabBackgroundColor;k(b,f,l++);var m=d.cloneNode(!1);m.style.display=
+"none";mxUtils.write(n,mxResources.get("style"));d.appendChild(n);this.panels.push(new DiagramStylePanel(this,a,m));this.container.appendChild(m);k(n,m,l++)}this.showCloseButton&&(n=b.cloneNode(!1),n.style.borderLeftWidth="1px",n.style.borderRightWidth="1px",n.style.borderBottomWidth="1px",n.style.backgroundColor=Format.inactiveTabBackgroundColor,n.style.position="absolute",n.style.right="0px",n.style.top="0px",n.style.width="25px",k=document.createElement("img"),k.setAttribute("border","0"),k.setAttribute("src",
+Dialog.prototype.closeImage),k.setAttribute("title",mxResources.get("hide")),k.style.position="absolute",k.style.display="block",k.style.right="0px",k.style.top="8px",k.style.cursor="pointer",k.style.marginTop="1px",k.style.marginRight="6px",k.style.border="1px solid transparent",k.style.padding="1px",k.style.opacity=.5,n.appendChild(k),mxEvent.addListener(k,"click",function(){a.actions.get("formatPanel").funct()}),d.appendChild(n))}else if(c.isEditing())mxUtils.write(b,mxResources.get("text")),d.appendChild(b),
+this.panels.push(new TextFormatPanel(this,a,d));else{b.style.backgroundColor=Format.inactiveTabBackgroundColor;b.style.borderLeftWidth="1px";b.style.cursor="pointer";b.style.width=e||0==f.cells.length?"50%":"33.3%";var n=b.cloneNode(!1),p=n.cloneNode(!1);n.style.backgroundColor=Format.inactiveTabBackgroundColor;p.style.backgroundColor=Format.inactiveTabBackgroundColor;e?n.style.borderLeftWidth="0px":(b.style.borderLeftWidth="0px",mxUtils.write(b,mxResources.get("style")),d.appendChild(b),m=d.cloneNode(!1),
+m.style.display="none",this.panels.push(new StyleFormatPanel(this,a,m)),this.container.appendChild(m),k(b,m,l++));mxUtils.write(n,mxResources.get("text"));d.appendChild(n);b=d.cloneNode(!1);b.style.display="none";this.panels.push(new TextFormatPanel(this,a,b));this.container.appendChild(b);mxUtils.write(p,mxResources.get("arrange"));d.appendChild(p);d=d.cloneNode(!1);d.style.display="none";this.panels.push(new ArrangePanel(this,a,d));this.container.appendChild(d);0<f.cells.length?k(n,b,l++):n.style.display=
"none";k(p,d,l++,!0)}}};BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
-BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,h,g){e=null!=e?e:"";g=null!=g?g:!1;var k=this.editorUi,l=k.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,n=!1,p=mxUtils.bind(this,function(p){var r=g?parseFloat(a.value):parseInt(a.value);isNaN(r)||c!=mxConstants.STYLE_ROTATION||(r=mxUtils.mod(Math.round(100*r),36E3)/100);r=Math.min(f,Math.max(b,isNaN(r)?d:r));if(l.cellEditor.isContentEditing()&&h)n||(n=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),h(r),a.value=r+e,
-n=!1);else if(r!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var v=this.format.getSelectionState().cells;l.setCellStyles(c,r,v);c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(v,function(a){a.style.fontSize=r+"px";a.removeAttribute("size")});for(var t=0;t<v.length;t++)0==l.model.getChildCount(v[t])&&l.autoSizeCell(v[t],!1);k.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[r],"cells",v))}finally{l.getModel().endUpdate()}}a.value=
-r+e;mxEvent.consume(p)});h&&l.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",p);mxEvent.addListener(a,"blur",p);return p};
+BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,h,g){e=null!=e?e:"";g=null!=g?g:!1;var k=this.editorUi,l=k.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var n=null,m=!1,p=mxUtils.bind(this,function(p){var r=g?parseFloat(a.value):parseInt(a.value);isNaN(r)||c!=mxConstants.STYLE_ROTATION||(r=mxUtils.mod(Math.round(100*r),36E3)/100);r=Math.min(f,Math.max(b,isNaN(r)?d:r));if(l.cellEditor.isContentEditing()&&h)m||(m=!0,null!=n&&(l.cellEditor.restoreSelection(n),n=null),h(r),a.value=r+e,
+m=!1);else if(r!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var v=this.format.getSelectionState().cells;l.setCellStyles(c,r,v);c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(v,function(a){a.style.fontSize=r+"px";a.removeAttribute("size")});for(var t=0;t<v.length;t++)0==l.model.getChildCount(v[t])&&l.autoSizeCell(v[t],!1);k.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[r],"cells",v))}finally{l.getModel().endUpdate()}}a.value=
+r+e;mxEvent.consume(p)});h&&l.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==l.cellEditor.textarea&&(n=l.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==l.cellEditor.textarea&&(n=l.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",p);mxEvent.addListener(a,"blur",p);return p};
BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.className="geFormatSection";a.style.padding="12px 0px 12px 18px";return a};BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e,h){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_MT||8<=document.documentMode)b+=1;var g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var k=document.createElement("div");k.style.borderBottom="1px solid rgb(192, 192, 192)";k.style.position="relative";k.style.height=b+"px";k.style.width="10px";k.className="geBtnUp";g.appendChild(k);
-var l=k.cloneNode(!1);l.style.border="none";l.style.height=b+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var f=h?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"0");var f=h?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var m=null;mxEvent.addGestureListeners(g,
-function(a){mxEvent.consume(a)},null,function(a){if(null!=m){try{m.select()}catch(p){}m=null;mxEvent.consume(a)}})}return g};
-BaseFormatPanel.prototype.createOption=function(a,c,d,b,f){var e=document.createElement("div");e.style.padding="6px 0px 1px 0px";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.width="200px";e.style.height="18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";e.appendChild(h);var g=document.createElement("span");mxUtils.write(g,a);e.appendChild(g);var k=!1,l=c(),m=function(a){k||(k=!0,a?(h.setAttribute("checked","checked"),h.defaultChecked=
-!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1),l!=a&&(l=a,c()!=l&&d(l)),k=!1)};mxEvent.addListener(e,"click",function(a){if("disabled"!=h.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==e||a==g)h.checked=!h.checked;m(h.checked)}});m(l);null!=b&&(b.install(m),this.listeners.push(b));null!=f&&f(e);return e};
-BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,h,g,k){var l=this.editorUi,m=l.editor.graph,n=this;b=null!=b?"null"==b?null:b:1;f=null!=f?"null"==f?null:f:0;var p=null!=k?m.getCommonStyle(k):this.format.getSelectionState().style;return this.createOption(a,function(){return mxUtils.getValue(p,c,d)!=f},function(a){g&&m.stopEditing();if(null!=h)h.funct();else{m.getModel().beginUpdate();try{var d=null!=k?k:n.format.getSelectionState().cells;a=a?b:f;m.setCellStyles(c,a,d);null!=e&&e(d,
-a);l.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",d))}finally{m.getModel().endUpdate()}}},{install:function(a){this.listener=function(){a(mxUtils.getValue(p,c,d)!=f)};m.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){m.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,h){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height="18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="0px 6px 0px 0px";h||g.appendChild(k);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=c(),n=!1,p=null,r=function(a,f,g){n||(n=!0,a=/(^#?[a-zA-Z0-9]*$)/.test(a)?
-a:b,p.innerHTML='<div style="width:36px;height:12px;margin:3px;border:1px solid black;background-color:'+mxUtils.htmlEntities(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>',null!=a&&a!=mxConstants.NONE?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1),p.style.display=k.checked||h?"":"none",null!=e&&e(a),f||(m=a,(g||h||c()!=m)&&d(m)),n=!1)},p=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(m,
-function(a){r(a,null,!0)});mxEvent.consume(a)}));p.style.position="absolute";p.style.marginTop="-4px";p.style.right="20px";p.style.height="22px";p.className="geColorBtn";p.style.display=k.checked||h?"":"none";g.appendChild(p);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==k||"INPUT"!=a.nodeName)a!=k&&(k.checked=!k.checked),k.checked||null==m||m==mxConstants.NONE||b==mxConstants.NONE||(b=m),r(k.checked?b:mxConstants.NONE)});r(m,!0);null!=f&&(f.install(r),this.listeners.push(f));
+var l=k.cloneNode(!1);l.style.border="none";l.style.height=b+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var f=h?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"0");var f=h?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var n=null;mxEvent.addGestureListeners(g,
+function(a){mxEvent.consume(a)},null,function(a){if(null!=n){try{n.select()}catch(p){}n=null;mxEvent.consume(a)}})}return g};
+BaseFormatPanel.prototype.createOption=function(a,c,d,b,f){var e=document.createElement("div");e.style.padding="6px 0px 1px 0px";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.width="200px";e.style.height="18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";e.appendChild(h);var g=document.createElement("span");mxUtils.write(g,a);e.appendChild(g);var k=!1,l=c(),n=function(a){k||(k=!0,a?(h.setAttribute("checked","checked"),h.defaultChecked=
+!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1),l!=a&&(l=a,c()!=l&&d(l)),k=!1)};mxEvent.addListener(e,"click",function(a){if("disabled"!=h.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==e||a==g)h.checked=!h.checked;n(h.checked)}});n(l);null!=b&&(b.install(n),this.listeners.push(b));null!=f&&f(e);return e};
+BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,h,g,k){var l=this.editorUi,n=l.editor.graph,m=this;b=null!=b?"null"==b?null:b:1;f=null!=f?"null"==f?null:f:0;var p=null!=k?n.getCommonStyle(k):this.format.getSelectionState().style;return this.createOption(a,function(){return mxUtils.getValue(p,c,d)!=f},function(a){g&&n.stopEditing();if(null!=h)h.funct();else{n.getModel().beginUpdate();try{var d=null!=k?k:m.format.getSelectionState().cells;a=a?b:f;n.setCellStyles(c,a,d);null!=e&&e(d,
+a);l.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",d))}finally{n.getModel().endUpdate()}}},{install:function(a){this.listener=function(){a(mxUtils.getValue(p,c,d)!=f)};n.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){n.getModel().removeListener(this.listener)}})};
+BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,h){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height="18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="0px 6px 0px 0px";h||g.appendChild(k);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var n=c(),m=!1,p=null,r=function(a,f,g){m||(m=!0,a=/(^#?[a-zA-Z0-9]*$)/.test(a)?
+a:b,p.innerHTML='<div style="width:36px;height:12px;margin:3px;border:1px solid black;background-color:'+mxUtils.htmlEntities(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>',null!=a&&a!=mxConstants.NONE?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1),p.style.display=k.checked||h?"":"none",null!=e&&e(a),f||(n=a,(g||h||c()!=n)&&d(n)),m=!1)},p=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(n,
+function(a){r(a,null,!0)});mxEvent.consume(a)}));p.style.position="absolute";p.style.marginTop="-4px";p.style.right="20px";p.style.height="22px";p.className="geColorBtn";p.style.display=k.checked||h?"":"none";g.appendChild(p);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==k||"INPUT"!=a.nodeName)a!=k&&(k.checked=!k.checked),k.checked||null==n||n==mxConstants.NONE||b==mxConstants.NONE||(b=n),r(k.checked?b:mxConstants.NONE)});r(n,!0);null!=f&&(f.install(r),this.listeners.push(f));
return g};
BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,h=e.editor.graph,g=this;return this.createColorOption(a,function(){var a=h.view.getState(g.format.getSelectionState().cells[0]);return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){h.getModel().beginUpdate();try{var b=g.format.getSelectionState().cells;h.setCellStyles(c,a,b);null!=f&&f(a);e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",b))}finally{h.getModel().endUpdate()}},d||
mxConstants.NONE,{install:function(a){this.listener=function(){var b=h.view.getState(g.format.getSelectionState().cells[0]);null!=b&&a(mxUtils.getValue(b.style,c,null))};h.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){h.getModel().removeListener(this.listener)}},b)};
@@ -2969,106 +2970,107 @@ a.style.paddingTop="10px");b.containsLabel||(f=mxResources.get("reverse"),0<b.ve
a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)),e.value=isNaN(a)?"":a+"°"}),h=this.installInputHandler(e,mxConstants.STYLE_ROTATION,0,0,360,"°",null,!0);this.addKeyHandler(e,k);d.getModel().addListener(mxEvent.CHANGE,k);this.listeners.push({destroy:function(){d.getModel().removeListener(k)}});k()}return a};BaseFormatPanel.prototype.getUnit=function(){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return"pt";case mxConstants.INCHES:return'"';case mxConstants.MILLIMETERS:return"mm"}};
BaseFormatPanel.prototype.inUnit=function(a){return this.editorUi.editor.graph.view.formatUnitText(a)};BaseFormatPanel.prototype.fromUnit=function(a){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return a;case mxConstants.INCHES:return a*mxConstants.PIXELS_PER_INCH;case mxConstants.MILLIMETERS:return a*mxConstants.PIXELS_PER_MM}};BaseFormatPanel.prototype.isFloatUnit=function(){return this.editorUi.editor.graph.view.unit!=mxConstants.POINTS};
BaseFormatPanel.prototype.getUnitStep=function(){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return 1;case mxConstants.INCHES:return.1;case mxConstants.MILLIMETERS:return.5}};
-ArrangePanel.prototype.addGeometry=function(a){var c=this,d=this.editorUi,b=d.editor.graph,f=b.getModel(),e=this.format.getSelectionState(),h=this.createPanel();h.style.paddingBottom="8px";var g=document.createElement("div");g.style.position="absolute";g.style.width="50px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("size"));h.appendChild(g);var k,l,m,n,p=this.addUnitInput(h,this.getUnit(),84,44,function(){k.apply(this,arguments)},this.getUnitStep(),null,null,
+ArrangePanel.prototype.addGeometry=function(a){var c=this,d=this.editorUi,b=d.editor.graph,f=b.getModel(),e=this.format.getSelectionState(),h=this.createPanel();h.style.paddingBottom="8px";var g=document.createElement("div");g.style.position="absolute";g.style.width="50px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("size"));h.appendChild(g);var k,l,n,m,p=this.addUnitInput(h,this.getUnit(),84,44,function(){k.apply(this,arguments)},this.getUnitStep(),null,null,
this.isFloatUnit()),r=this.addUnitInput(h,this.getUnit(),20,44,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),u=document.createElement("div");u.className="geSprite geSprite-fit";u.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");u.style.position="relative";u.style.cursor="pointer";u.style.marginTop="-3px";u.style.border="0px";u.style.left="42px";mxUtils.setOpacity(u,50);mxEvent.addListener(u,"mouseenter",
function(){mxUtils.setOpacity(u,100)});mxEvent.addListener(u,"mouseleave",function(){mxUtils.setOpacity(u,50)});mxEvent.addListener(u,"click",function(){d.actions.get("autosize").funct()});h.appendChild(u);e.row?(p.style.visibility="hidden",p.nextSibling.style.visibility="hidden"):this.addLabel(h,mxResources.get("width"),84);this.addLabel(h,mxResources.get("height"),20);mxUtils.br(h);g=document.createElement("div");g.style.paddingTop="8px";g.style.paddingRight="20px";g.style.whiteSpace="nowrap";g.style.textAlign=
"right";var v=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");v.style.width="100%";g.appendChild(v);e.cell||e.row?u.style.visibility="hidden":h.appendChild(g);var t=v.getElementsByTagName("input")[0];this.addKeyHandler(p,E);this.addKeyHandler(r,E);k=this.addGeometryHandler(p,function(a,d,e){if(b.isTableCell(e))return b.setTableColumnWidth(e,d-a.width,!0),!0;0<a.width&&(d=Math.max(1,c.fromUnit(d)),t.checked&&(a.height=Math.round(a.height*
d*100/a.width)/100),a.width=d)});l=this.addGeometryHandler(r,function(a,d,e){b.isTableCell(e)&&(e=b.model.getParent(e));if(b.isTableRow(e))return b.setTableRowHeight(e,d-a.height),!0;0<a.height&&(d=Math.max(1,c.fromUnit(d)),t.checked&&(a.width=Math.round(a.width*d*100/a.height)/100),a.height=d)});(e.resizable||e.row||e.cell)&&a.appendChild(h);var w=this.createPanel();w.style.paddingBottom="30px";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";
-g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("position"));w.appendChild(g);var x=this.addUnitInput(w,this.getUnit(),84,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),B=this.addUnitInput(w,this.getUnit(),20,44,function(){n.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(w);this.addLabel(w,mxResources.get("left"),84);this.addLabel(w,mxResources.get("top"),20);var E=mxUtils.bind(this,function(a,c,d){e=this.format.getSelectionState();
+g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("position"));w.appendChild(g);var x=this.addUnitInput(w,this.getUnit(),84,44,function(){n.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),B=this.addUnitInput(w,this.getUnit(),20,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(w);this.addLabel(w,mxResources.get("left"),84);this.addLabel(w,mxResources.get("top"),20);var E=mxUtils.bind(this,function(a,c,d){e=this.format.getSelectionState();
if(e.containsLabel||e.vertices.length!=b.getSelectionCount()||null==e.width||null==e.height)h.style.display="none";else{h.style.display="";if(d||document.activeElement!=p)p.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(d||document.activeElement!=r)r.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==b.getSelectionCount()&&null!=e.x&&null!=e.y){w.style.display="";if(d||document.activeElement!=x)x.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());
-if(d||document.activeElement!=B)B.value=this.inUnit(e.y)+(""==e.y?"":" "+this.getUnit())}else w.style.display="none"});this.addKeyHandler(x,E);this.addKeyHandler(B,E);f.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){f.removeListener(E)}});E();m=this.addGeometryHandler(x,function(a,b){b=c.fromUnit(b);a.relative?a.offset.x=b:a.x=b});n=this.addGeometryHandler(B,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&
+if(d||document.activeElement!=B)B.value=this.inUnit(e.y)+(""==e.y?"":" "+this.getUnit())}else w.style.display="none"});this.addKeyHandler(x,E);this.addKeyHandler(B,E);f.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){f.removeListener(E)}});E();n=this.addGeometryHandler(x,function(a,b){b=c.fromUnit(b);a.relative?a.offset.x=b:a.x=b});m=this.addGeometryHandler(B,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&
f.isEdge(f.getParent(e.vertices[0]))){var H=b.getCellGeometry(e.vertices[0]);null!=H&&H.relative&&(g=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(a){f.beginUpdate();try{H=H.clone(),H.x=0,H.y=0,H.offset=new mxPoint,f.setGeometry(e.vertices[0],H)}finally{f.endUpdate()}})),g.setAttribute("title",mxResources.get("center")),g.style.width="202px",g.style.position="absolute",mxUtils.br(w),mxUtils.br(w),w.appendChild(g))}a.appendChild(w)}};
-ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+e.getUnit();else if(g!=f){b.getModel().beginUpdate();try{for(var k=e.format.getSelectionState().cells,h=0;h<k.length;h++)if(b.getModel().isVertex(k[h])){var m=b.getCellGeometry(k[h]);if(null!=m&&(m=m.clone(),!c(m,g,k[h]))){var n=b.view.getState(k[h]);null!=n&&b.isRecursiveVertexResize(n)&&b.resizeChildCells(k[h],m);b.getModel().setGeometry(k[h],m);b.constrainChildCells(k[h])}}}finally{b.getModel().endUpdate()}f=
+ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+e.getUnit();else if(g!=f){b.getModel().beginUpdate();try{for(var k=e.format.getSelectionState().cells,h=0;h<k.length;h++)if(b.getModel().isVertex(k[h])){var n=b.getCellGeometry(k[h]);if(null!=n&&(n=n.clone(),!c(n,g,k[h]))){var m=b.view.getState(k[h]);null!=m&&b.isRecursiveVertexResize(m)&&b.resizeChildCells(k[h],n);b.getModel().setGeometry(k[h],n);b.constrainChildCells(k[h])}}}finally{b.getModel().endUpdate()}f=
g;a.value=g+" "+e.getUnit()}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null,e=this;mxEvent.addListener(a,"blur",d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
-ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" pt";else if(g!=f){b.getModel().beginUpdate();try{for(var k=e.format.getSelectionState().cells,h=0;h<k.length;h++)if(b.getModel().isEdge(k[h])){var m=b.getCellGeometry(k[h]);null!=m&&(m=m.clone(),c(m,g),b.getModel().setGeometry(k[h],m))}}finally{b.getModel().endUpdate()}f=g;a.value=g+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null,e=this;mxEvent.addListener(a,
+ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" pt";else if(g!=f){b.getModel().beginUpdate();try{for(var k=e.format.getSelectionState().cells,h=0;h<k.length;h++)if(b.getModel().isEdge(k[h])){var n=b.getCellGeometry(k[h]);null!=n&&(n=n.clone(),c(n,g),b.getModel().setGeometry(k[h],n))}}finally{b.getModel().endUpdate()}f=g;a.value=g+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null,e=this;mxEvent.addListener(a,
"blur",d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
-ArrangePanel.prototype.addEdgeGeometry=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState(),f=this.createPanel(),e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("width"));f.appendChild(e);var h,g,k,l,m,n=this.addUnitInput(f,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(f);this.addKeyHandler(n,x);h=mxUtils.bind(this,function(a){var e=parseInt(n.value),
-e=Math.min(999,Math.max(1,isNaN(e)?1:e));if(e!=mxUtils.getValue(b.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)){var f=this.format.getSelectionState().cells;d.setCellStyles("width",e,f);c.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[e],"cells",f))}n.value=e+" pt";mxEvent.consume(a)});mxEvent.addListener(n,"blur",h);mxEvent.addListener(n,"change",h);a.appendChild(f);var p=this.createPanel();p.style.paddingBottom="30px";e=document.createElement("div");
-e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,"Start");p.appendChild(e);var r=this.addUnitInput(p,"pt",84,44,function(){l.apply(this,arguments)}),u=this.addUnitInput(p,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(p);this.addLabel(p,mxResources.get("left"),84);this.addLabel(p,mxResources.get("top"),20);a.appendChild(p);this.addKeyHandler(r,x);this.addKeyHandler(u,x);var v=this.createPanel();v.style.paddingBottom="30px";
+ArrangePanel.prototype.addEdgeGeometry=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState(),f=this.createPanel(),e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("width"));f.appendChild(e);var h,g,k,l,n,m=this.addUnitInput(f,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(f);this.addKeyHandler(m,x);h=mxUtils.bind(this,function(a){var e=parseInt(m.value),
+e=Math.min(999,Math.max(1,isNaN(e)?1:e));if(e!=mxUtils.getValue(b.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)){var f=this.format.getSelectionState().cells;d.setCellStyles("width",e,f);c.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[e],"cells",f))}m.value=e+" pt";mxEvent.consume(a)});mxEvent.addListener(m,"blur",h);mxEvent.addListener(m,"change",h);a.appendChild(f);var p=this.createPanel();p.style.paddingBottom="30px";e=document.createElement("div");
+e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,"Start");p.appendChild(e);var r=this.addUnitInput(p,"pt",84,44,function(){l.apply(this,arguments)}),u=this.addUnitInput(p,"pt",20,44,function(){n.apply(this,arguments)});mxUtils.br(p);this.addLabel(p,mxResources.get("left"),84);this.addLabel(p,mxResources.get("top"),20);a.appendChild(p);this.addKeyHandler(r,x);this.addKeyHandler(u,x);var v=this.createPanel();v.style.paddingBottom="30px";
e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,"End");v.appendChild(e);var t=this.addUnitInput(v,"pt",84,44,function(){g.apply(this,arguments)}),w=this.addUnitInput(v,"pt",20,44,function(){k.apply(this,arguments)});mxUtils.br(v);this.addLabel(v,mxResources.get("left"),84);this.addLabel(v,mxResources.get("top"),20);a.appendChild(v);this.addKeyHandler(t,x);this.addKeyHandler(w,x);var x=mxUtils.bind(this,
-function(a,c,e){b=this.format.getSelectionState();a=b.cells[0];if("link"==b.style.shape||"flexArrow"==b.style.shape){if(f.style.display="",e||document.activeElement!=n)e=mxUtils.getValue(b.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),n.value=e+" pt"}else f.style.display="none";1==b.cells.length&&d.model.isEdge(a)?(e=d.model.getGeometry(a),null!=e.sourcePoint&&null==d.model.getTerminal(a,!0)?(r.value=e.sourcePoint.x,u.value=e.sourcePoint.y):p.style.display="none",null!=
-e.targetPoint&&null==d.model.getTerminal(a,!1)?(t.value=e.targetPoint.x,w.value=e.targetPoint.y):v.style.display="none"):(p.style.display="none",v.style.display="none")});l=this.addEdgeGeometryHandler(r,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(u,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(t,function(a,b){a.targetPoint.x=b});k=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.y=b});d.getModel().addListener(mxEvent.CHANGE,x);this.listeners.push({destroy:function(){d.getModel().removeListener(x)}});
+function(a,c,e){b=this.format.getSelectionState();a=b.cells[0];if("link"==b.style.shape||"flexArrow"==b.style.shape){if(f.style.display="",e||document.activeElement!=m)e=mxUtils.getValue(b.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),m.value=e+" pt"}else f.style.display="none";1==b.cells.length&&d.model.isEdge(a)?(e=d.model.getGeometry(a),null!=e.sourcePoint&&null==d.model.getTerminal(a,!0)?(r.value=e.sourcePoint.x,u.value=e.sourcePoint.y):p.style.display="none",null!=
+e.targetPoint&&null==d.model.getTerminal(a,!1)?(t.value=e.targetPoint.x,w.value=e.targetPoint.y):v.style.display="none"):(p.style.display="none",v.style.display="none")});l=this.addEdgeGeometryHandler(r,function(a,b){a.sourcePoint.x=b});n=this.addEdgeGeometryHandler(u,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(t,function(a,b){a.targetPoint.x=b});k=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.y=b});d.getModel().addListener(mxEvent.CHANGE,x);this.listeners.push({destroy:function(){d.getModel().removeListener(x)}});
x()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
TextFormatPanel.prototype.addFont=function(a){function c(a,b){a.style.backgroundImage=b?Editor.isDarkMode()?"linear-gradient(rgb(0 161 241) 0px, rgb(0, 97, 146) 100%)":"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";
e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";if(b.cellEditor.isContentEditing()){var h=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",h,null,!0);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";g=g.getElementsByTagName("div")[0];g.style.cssFloat=
"right";a.appendChild(h)}a.appendChild(e);h=this.createPanel();h.style.marginTop="8px";h.style.borderTop="1px solid #c0c0c0";h.style.paddingTop="6px";h.style.paddingBottom="6px";var k=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e,null,!0);k.style.color="rgb(112, 112, 112)";k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.margin="0px";this.addArrow(k);k.style.width="192px";k.style.height="15px";g=e.cloneNode(!1);g.style.marginLeft="-3px";var l=
-this.editorUi.toolbar.addItems(["bold","italic","underline"],g,!0);l[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");l[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");l[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");var m=this.editorUi.toolbar.addItems(["vertical"],g,!0)[0];a.appendChild(g);this.styleButtons(l);this.styleButtons([m]);
-var n=e.cloneNode(!1);n.style.marginLeft="-3px";n.style.paddingBottom="0px";var p=function(a){return function(){return a()}},r=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_LEFT,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),n),u=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?
-function(a){b.cellEditor.alignText(mxConstants.ALIGN_CENTER,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),n),v=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),n);this.styleButtons([r,u,v]);if(b.cellEditor.isContentEditing()){var t=
+this.editorUi.toolbar.addItems(["bold","italic","underline"],g,!0);l[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");l[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");l[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");var n=this.editorUi.toolbar.addItems(["vertical"],g,!0)[0];a.appendChild(g);this.styleButtons(l);this.styleButtons([n]);
+var m=e.cloneNode(!1);m.style.marginLeft="-3px";m.style.paddingBottom="0px";var p=function(a){return function(){return a()}},r=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_LEFT,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),m),u=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?
+function(a){b.cellEditor.alignText(mxConstants.ALIGN_CENTER,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),m),v=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a)}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),m);this.styleButtons([r,u,v]);if(b.cellEditor.isContentEditing()){var t=
this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},g);this.styleButtons([t]);t.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
-t.firstChild.style.backgroundPosition="2px 2px";t.firstChild.style.backgroundSize="18px 18px";this.styleButtons([t])}var w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),n),x=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),n),B=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([w,x,B]);a.appendChild(n);var E,H,A,I,y,G,L;b.cellEditor.isContentEditing()?(w.style.display="none",x.style.display="none",B.style.display="none",m.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},n),A.style.marginRight=
-"9px",A.style.opacity=1,this.styleButtons([A,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},n),H=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},n)]),E.style.marginLeft="9px",p=n.cloneNode(!1),p.style.paddingTop="4px",n=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
+t.firstChild.style.backgroundPosition="2px 2px";t.firstChild.style.backgroundSize="18px 18px";this.styleButtons([t])}var w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),m),x=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),m),B=this.editorUi.toolbar.addButton("geSprite-bottom",
+mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),m);this.styleButtons([w,x,B]);a.appendChild(m);var E,H,A,I,y,G,L;b.cellEditor.isContentEditing()?(w.style.display="none",x.style.display="none",B.style.display="none",n.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},m),A.style.marginRight=
+"9px",A.style.opacity=1,this.styleButtons([A,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},m),H=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},m)]),E.style.marginLeft="9px",p=m.cloneNode(!1),p.style.paddingTop="4px",m=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
-!1,null)},p),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},p)],this.styleButtons(n),n[n.length-2].style.marginLeft="9px",a.appendChild(p)):(l[2].style.marginRight="9px",v.style.marginRight="9px");n=e.cloneNode(!1);n.style.marginLeft="0px";n.style.paddingTop="8px";n.style.paddingBottom=
-"4px";n.style.fontWeight="normal";mxUtils.write(n,mxResources.get("position"));var O=document.createElement("select");O.style.position="absolute";O.style.right="20px";O.style.width="97px";O.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),P={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],
+!1,null)},p),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},p)],this.styleButtons(m),m[m.length-2].style.marginLeft="9px",a.appendChild(p)):(l[2].style.marginRight="9px",v.style.marginRight="9px");m=e.cloneNode(!1);m.style.marginLeft="0px";m.style.paddingTop="8px";m.style.paddingBottom=
+"4px";m.style.fontWeight="normal";mxUtils.write(m,mxResources.get("position"));var O=document.createElement("select");O.style.position="absolute";O.style.right="20px";O.style.width="97px";O.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),P={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],
topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,
-mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},p=0;p<t.length;p++){var M=document.createElement("option");M.setAttribute("value",t[p]);mxUtils.write(M,mxResources.get(t[p]));O.appendChild(M)}n.appendChild(O);t=e.cloneNode(!1);t.style.marginLeft="0px";t.style.paddingTop="4px";t.style.paddingBottom="4px";t.style.fontWeight=
-"normal";mxUtils.write(t,mxResources.get("writingDirection"));var X=document.createElement("select");X.style.position="absolute";X.style.right="20px";X.style.width="97px";X.style.marginTop="-2px";for(var M=["automatic","leftToRight","rightToLeft"],aa={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<M.length;p++){var Z=document.createElement("option");Z.setAttribute("value",M[p]);mxUtils.write(Z,mxResources.get(M[p]));X.appendChild(Z)}t.appendChild(X);
-b.isEditing()||(a.appendChild(n),mxEvent.addListener(O,"change",function(a){b.getModel().beginUpdate();try{var c=P[O.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],f.cells),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],f.cells),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],f.cells),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],f.cells))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(X,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,
-aa[X.value],f.cells);mxEvent.consume(a)}));var U=document.createElement("input");U.style.textAlign="right";U.style.marginTop="4px";U.style.position="absolute";U.style.right="32px";U.style.width="40px";U.style.height="17px";g.appendChild(U);var T=null,n=this.installInputHandler(U,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var c=function(c,e){null!=b.cellEditor.textarea&&c!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(c)&&
+mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},p=0;p<t.length;p++){var M=document.createElement("option");M.setAttribute("value",t[p]);mxUtils.write(M,mxResources.get(t[p]));O.appendChild(M)}m.appendChild(O);t=e.cloneNode(!1);t.style.marginLeft="0px";t.style.paddingTop="4px";t.style.paddingBottom="4px";t.style.fontWeight=
+"normal";mxUtils.write(t,mxResources.get("writingDirection"));var W=document.createElement("select");W.style.position="absolute";W.style.right="20px";W.style.width="97px";W.style.marginTop="-2px";for(var M=["automatic","leftToRight","rightToLeft"],ba={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<M.length;p++){var Z=document.createElement("option");Z.setAttribute("value",M[p]);mxUtils.write(Z,mxResources.get(M[p]));W.appendChild(Z)}t.appendChild(W);
+b.isEditing()||(a.appendChild(m),mxEvent.addListener(O,"change",function(a){b.getModel().beginUpdate();try{var c=P[O.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],f.cells),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],f.cells),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],f.cells),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],f.cells))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(W,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,
+ba[W.value],f.cells);mxEvent.consume(a)}));var T=document.createElement("input");T.style.textAlign="right";T.style.marginTop="4px";T.style.position="absolute";T.style.right="32px";T.style.width="40px";T.style.height="17px";g.appendChild(T);var S=null,m=this.installInputHandler(T,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var c=function(c,e){null!=b.cellEditor.textarea&&c!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(c)&&
(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:b.cellEditor.textarea;e!=b.cellEditor.textarea&&e.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);
-if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(e=0;e<f.length;e++)c(f[e])}U.value=a+" pt"}else if(window.getSelection||document.selection)if(c=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},f=null,document.selection?f=document.selection.createRange().parentElement():(d=window.getSelection(),0<d.rangeCount&&(f=d.getRangeAt(0).commonAncestorContainer)),null!=f&&c(b.cellEditor.textarea,f))for(T=a,document.execCommand("fontSize",
-!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++)if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=T+"px";window.setTimeout(function(){U.value=T+" pt";T=null},0);break}},!0),n=this.createStepper(U,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=U.style.display;n.style.marginTop="4px";n.style.right="20px";g.appendChild(n);g=k.getElementsByTagName("div")[0];g.style.cssFloat="right";var Q=null,R="#ffffff",fa=null,na="#000000",
+if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(e=0;e<f.length;e++)c(f[e])}T.value=a+" pt"}else if(window.getSelection||document.selection)if(c=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},f=null,document.selection?f=document.selection.createRange().parentElement():(d=window.getSelection(),0<d.rangeCount&&(f=d.getRangeAt(0).commonAncestorContainer)),null!=f&&c(b.cellEditor.textarea,f))for(S=a,document.execCommand("fontSize",
+!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++)if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=S+"px";window.setTimeout(function(){T.value=S+" pt";S=null},0);break}},!0),m=this.createStepper(T,m,1,10,!0,Menus.prototype.defaultFontSize);m.style.display=T.style.display;m.style.marginTop="4px";m.style.right="20px";g.appendChild(m);g=k.getElementsByTagName("div")[0];g.style.cssFloat="right";var Q=null,R="#ffffff",ga=null,na="#000000",
oa=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return R},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){Q=a},destroy:function(){Q=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,function(a){b.updateLabelElements(f.cells,function(a){a.style.backgroundColor=null})});oa.style.fontWeight="bold";
var pa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");pa.style.fontWeight="bold";g=1<=f.vertices.length?b.stylesheet.getDefaultVertexStyle():b.stylesheet.getDefaultEdgeStyle();g=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return na},function(a){if(mxClient.IS_FF){for(var c=b.cellEditor.textarea.getElementsByTagName("font"),d=[],e=0;e<c.length;e++)d.push({node:c[e],color:c[e].getAttribute("color")});
document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent");a=b.cellEditor.textarea.getElementsByTagName("font");for(e=0;e<a.length;e++)if(e>=d.length||a[e]!=d[e].node||a[e]==d[e].node&&a[e].getAttribute("color")!=d[e].color){d=a[e].firstChild;if(null!=d&&"A"==d.nodeName&&null==d.nextSibling&&null!=d.firstChild){a[e].parentNode.insertBefore(d,a[e]);for(c=d.firstChild;null!=c;){var f=c.nextSibling;a[e].appendChild(c);c=f}d.appendChild(a[e])}break}}else document.execCommand("forecolor",
-!1,a!=mxConstants.NONE?a:"transparent")},null!=g[mxConstants.STYLE_FONTCOLOR]?g[mxConstants.STYLE_FONTCOLOR]:"#000000",{install:function(a){fa=a},destroy:function(){fa=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,null!=g[mxConstants.STYLE_FONTCOLOR]?g[mxConstants.STYLE_FONTCOLOR]:"#000000",function(a){oa.style.display=a==mxConstants.NONE?"none":"";pa.style.display=oa.style.display},function(a){a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,
+!1,a!=mxConstants.NONE?a:"transparent")},null!=g[mxConstants.STYLE_FONTCOLOR]?g[mxConstants.STYLE_FONTCOLOR]:"#000000",{install:function(a){ga=a},destroy:function(){ga=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,null!=g[mxConstants.STYLE_FONTCOLOR]?g[mxConstants.STYLE_FONTCOLOR]:"#000000",function(a){oa.style.display=a==mxConstants.NONE?"none":"";pa.style.display=oa.style.display},function(a){a==mxConstants.NONE?b.setCellStyles(mxConstants.STYLE_NOLABEL,
"1",f.cells):b.setCellStyles(mxConstants.STYLE_NOLABEL,null,f.cells);b.updateCellStyles(mxConstants.STYLE_FONTCOLOR,a,f.cells);b.updateLabelElements(f.cells,function(a){a.removeAttribute("color");a.style.color=null})});g.style.fontWeight="bold";h.appendChild(g);h.appendChild(oa);b.cellEditor.isContentEditing()||h.appendChild(pa);a.appendChild(h);h=this.createPanel();h.style.paddingTop="2px";h.style.paddingBottom="4px";g=b.filterSelectionCells(mxUtils.bind(this,function(a){var c=b.view.getState(a);
-return null==c||this.format.isAutoSizeState(c)||b.getModel().isEdge(a)||!b.isTableRow(a)&&!b.isTableCell(a)&&!b.isCellResizable(a)}));n=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0,g);n.style.fontWeight="bold";0<g.length&&h.appendChild(n);g=this.createCellOption(mxResources.get("formattedText"),"html",0,null,null,null,d.actions.get("formattedText"));g.style.fontWeight="bold";h.appendChild(g);g=this.createPanel();g.style.paddingTop=
-"10px";g.style.paddingBottom="28px";g.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.width="70px";n.style.marginTop="0px";n.style.fontWeight="bold";mxUtils.write(n,mxResources.get("spacing"));g.appendChild(n);var da,qa,ua,ra,va,ja=this.addUnitInput(g,"pt",91,44,function(){da.apply(this,arguments)}),ga=this.addUnitInput(g,"pt",20,44,function(){qa.apply(this,arguments)});mxUtils.br(g);this.addLabel(g,mxResources.get("top"),91);this.addLabel(g,mxResources.get("global"),
-20);mxUtils.br(g);mxUtils.br(g);var ha=this.addUnitInput(g,"pt",162,44,function(){ua.apply(this,arguments)}),ca=this.addUnitInput(g,"pt",91,44,function(){ra.apply(this,arguments)}),ea=this.addUnitInput(g,"pt",20,44,function(){va.apply(this,arguments)});mxUtils.br(g);this.addLabel(g,mxResources.get("left"),162);this.addLabel(g,mxResources.get("bottom"),91);this.addLabel(g,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ma=null,ia=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),
+return null==c||this.format.isAutoSizeState(c)||b.getModel().isEdge(a)||!b.isTableRow(a)&&!b.isTableCell(a)&&!b.isCellResizable(a)}));m=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0,g);m.style.fontWeight="bold";0<g.length&&h.appendChild(m);g=this.createCellOption(mxResources.get("formattedText"),"html",0,null,null,null,d.actions.get("formattedText"));g.style.fontWeight="bold";h.appendChild(g);g=this.createPanel();g.style.paddingTop=
+"10px";g.style.paddingBottom="28px";g.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.width="70px";m.style.marginTop="0px";m.style.fontWeight="bold";mxUtils.write(m,mxResources.get("spacing"));g.appendChild(m);var ea,qa,ua,ra,va,ka=this.addUnitInput(g,"pt",91,44,function(){ea.apply(this,arguments)}),ha=this.addUnitInput(g,"pt",20,44,function(){qa.apply(this,arguments)});mxUtils.br(g);this.addLabel(g,mxResources.get("top"),91);this.addLabel(g,mxResources.get("global"),
+20);mxUtils.br(g);mxUtils.br(g);var ia=this.addUnitInput(g,"pt",162,44,function(){ua.apply(this,arguments)}),da=this.addUnitInput(g,"pt",91,44,function(){ra.apply(this,arguments)}),fa=this.addUnitInput(g,"pt",20,44,function(){va.apply(this,arguments)});mxUtils.br(g);this.addLabel(g,mxResources.get("left"),162);this.addLabel(g,mxResources.get("bottom"),91);this.addLabel(g,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ma=null,ja=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),
null,null,function(a){var c=""==a.value?120:parseInt(a.value),c=Math.max(0,isNaN(c)?120:c);null!=ma&&(b.cellEditor.restoreSelection(ma),ma=null);for(var d=b.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;null!=d&&d==b.cellEditor.textarea&&null!=b.cellEditor.textarea.firstChild&&("P"!=b.cellEditor.textarea.firstChild.nodeName&&(b.cellEditor.textarea.innerHTML="<p>"+b.cellEditor.textarea.innerHTML+"</p>"),d=b.cellEditor.textarea.firstChild);null!=d&&null!=b.cellEditor.textarea&&
-d!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(d)&&(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){ia=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ma=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ma=b.cellEditor.saveSelection())});a.value="120 %"}));h=e.cloneNode(!1);h.style.paddingLeft="0px";g=this.editorUi.toolbar.addItems(["link","image"],h,!0);n=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",
-mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1)},h),this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(g);this.styleButtons(n);g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="10px";g.appendChild(this.createTitle(mxResources.get("insert")));g.appendChild(h);a.appendChild(g);g=e.cloneNode(!1);
-g.style.paddingLeft="0px";n=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{null!=y&&b.insertColumn(y,null!=G?G.cellIndex:0)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=y&&b.insertColumn(y,null!=G?G.cellIndex+1:-1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deletecolumn",
+d!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(d)&&(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){ja=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ma=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ma=b.cellEditor.saveSelection())});a.value="120 %"}));h=e.cloneNode(!1);h.style.paddingLeft="0px";g=this.editorUi.toolbar.addItems(["link","image"],h,!0);m=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",
+mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1)},h),this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(g);this.styleButtons(m);g=this.createPanel();g.style.paddingTop="10px";g.style.paddingBottom="10px";g.appendChild(this.createTitle(mxResources.get("insert")));g.appendChild(h);a.appendChild(g);g=e.cloneNode(!1);
+g.style.paddingLeft="0px";m=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{null!=y&&b.insertColumn(y,null!=G?G.cellIndex:0)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=y&&b.insertColumn(y,null!=G?G.cellIndex+1:-1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deletecolumn",
mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=y&&null!=G&&b.deleteColumn(y,G.cellIndex)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&b.insertRow(y,L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=
-y&&null!=L&&b.insertRow(y,L.sectionRowIndex+1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&b.deleteRow(y,L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g)];this.styleButtons(n);n[2].style.marginRight="9px";h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("table")));h.appendChild(g);
-e=e.cloneNode(!1);e.style.paddingLeft="0px";n=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,function(a){if(null!=y){var c=y.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==G||null!=a&&mxEvent.isShiftDown(a)?y:G;b.processElements(d,
+y&&null!=L&&b.insertRow(y,L.sectionRowIndex+1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&b.deleteRow(y,L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g)];this.styleButtons(m);m[2].style.marginRight="9px";h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("table")));h.appendChild(g);
+e=e.cloneNode(!1);e.style.paddingLeft="0px";m=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,function(a){if(null!=y){var c=y.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==G||null!=a&&mxEvent.isShiftDown(a)?y:G;b.processElements(d,
function(a){a.style.border=null});null==c||c==mxConstants.NONE?(d.removeAttribute("border"),d.style.border="",d.style.borderCollapse=""):(d.setAttribute("border","1"),d.style.border="1px solid "+c,d.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(a){if(null!=y){var c=y.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+
("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==G||null!=a&&mxEvent.isShiftDown(a)?y:G;b.processElements(d,function(a){a.style.backgroundColor=null});d.style.backgroundColor=null==c||c==mxConstants.NONE?"":c})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=y){var a=y.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,
function(a){null!=a&&0<a.length?y.setAttribute("cellPadding",a):y.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=y&&y.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=y&&y.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),
-function(){null!=y&&y.setAttribute("align","right")},e)];this.styleButtons(n);n[2].style.marginRight="9px";h.appendChild(e);a.appendChild(h);I=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(g);var Y=mxUtils.bind(this,function(a,b,d){f=this.format.getSelectionState();a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(l[1],(a&mxConstants.FONT_ITALIC)==
-mxConstants.FONT_ITALIC);c(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);k.firstChild.nodeValue=mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);c(m,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=U)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),U.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);
+function(){null!=y&&y.setAttribute("align","right")},e)];this.styleButtons(m);m[2].style.marginRight="9px";h.appendChild(e);a.appendChild(h);I=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(g);var X=mxUtils.bind(this,function(a,b,d){f=this.format.getSelectionState();a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(l[1],(a&mxConstants.FONT_ITALIC)==
+mxConstants.FONT_ITALIC);c(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);k.firstChild.nodeValue=mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);c(n,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=T)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),T.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);
c(r,a==mxConstants.ALIGN_LEFT);c(u,a==mxConstants.ALIGN_CENTER);c(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(w,a==mxConstants.ALIGN_TOP);c(x,a==mxConstants.ALIGN_MIDDLE);c(B,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);O.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?
"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);
-a==mxConstants.TEXT_DIRECTION_RTL?X.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?X.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(X.value="automatic");if(d||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ja)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_TOP,0)),ja.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(f.style,
-mxConstants.STYLE_SPACING_RIGHT,0)),ea.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ca)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),ca.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ha)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,0)),ha.value=isNaN(a)?"":a+" pt"});qa=this.installInputHandler(ga,mxConstants.STYLE_SPACING,2,-999,999," pt");da=this.installInputHandler(ja,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");va=this.installInputHandler(ea,
-mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ra=this.installInputHandler(ca,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ua=this.installInputHandler(ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(U,Y);this.addKeyHandler(ga,Y);this.addKeyHandler(ja,Y);this.addKeyHandler(ea,Y);this.addKeyHandler(ca,Y);this.addKeyHandler(ha,Y);b.getModel().addListener(mxEvent.CHANGE,Y);this.listeners.push({destroy:function(){b.getModel().removeListener(Y)}});Y();if(b.cellEditor.isContentEditing()){var sa=
+a==mxConstants.TEXT_DIRECTION_RTL?W.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?W.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(W.value="automatic");if(d||document.activeElement!=ha)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),ha.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_TOP,0)),ka.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=fa)a=parseFloat(mxUtils.getValue(f.style,
+mxConstants.STYLE_SPACING_RIGHT,0)),fa.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=da)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),da.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ia)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,0)),ia.value=isNaN(a)?"":a+" pt"});qa=this.installInputHandler(ha,mxConstants.STYLE_SPACING,2,-999,999," pt");ea=this.installInputHandler(ka,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");va=this.installInputHandler(fa,
+mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ra=this.installInputHandler(da,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ua=this.installInputHandler(ia,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(T,X);this.addKeyHandler(ha,X);this.addKeyHandler(ka,X);this.addKeyHandler(fa,X);this.addKeyHandler(da,X);this.addKeyHandler(ia,X);b.getModel().addListener(mxEvent.CHANGE,X);this.listeners.push({destroy:function(){b.getModel().removeListener(X)}});X();if(b.cellEditor.isContentEditing()){var sa=
!1,e=function(){sa||(sa=!0,window.setTimeout(function(){var a=b.getSelectedEditingElement();if(null!=a){var d=function(a,b){if(null!=a&&null!=b){if(a==b)return!0;if(a.length>b.length+1)return a.substring(a.length-b.length-1,a.length)=="-"+b}return!1},e=function(c){if(null!=b.getParentByName(a,c,b.cellEditor.textarea))return!0;for(var d=a;null!=d&&1==d.childNodes.length;)if(d=d.childNodes[0],d.nodeName==c)return!0;return!1},g=function(a){a=null!=a?a.fontSize:null;return null!=a&&"px"==a.substring(a.length-
2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},h=function(a,b,c){return null!=c.style&&null!=b?(b=b.lineHeight,null!=c.style.lineHeight&&"%"==c.style.lineHeight.substring(c.style.lineHeight.length-1)?parseInt(c.style.lineHeight)/100:"px"==b.substring(b.length-2)?parseFloat(b)/a:parseInt(b)):""},m=mxUtils.getCurrentStyle(a),n=g(m),p=h(n,m,a),t=a.getElementsByTagName("*");if(0<t.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var w=window.getSelection(),x=0;x<t.length;x++)if(w.containsNode(t[x],
!0)){temp=mxUtils.getCurrentStyle(t[x]);var n=Math.max(g(temp),n),B=h(n,temp,t[x]);if(B!=p||isNaN(B))p=""}null!=m&&(c(l[0],"bold"==m.fontWeight||400<m.fontWeight||e("B")||e("STRONG")),c(l[1],"italic"==m.fontStyle||e("I")||e("EM")),c(l[2],e("U")),c(H,e("SUP")),c(E,e("SUB")),b.cellEditor.isTableSelected()?(c(A,d(m.textAlign,"justify")),c(r,d(m.textAlign,"left")),c(u,d(m.textAlign,"center")),c(v,d(m.textAlign,"right"))):(e=b.cellEditor.align||mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),
-d(m.textAlign,"justify")?(c(A,d(m.textAlign,"justify")),c(r,!1),c(u,!1),c(v,!1)):(c(A,!1),c(r,e==mxConstants.ALIGN_LEFT),c(u,e==mxConstants.ALIGN_CENTER),c(v,e==mxConstants.ALIGN_RIGHT))),y=b.getParentByName(a,"TABLE",b.cellEditor.textarea),L=null==y?null:b.getParentByName(a,"TR",y),G=null==y?null:b.getParentByNames(a,["TD","TH"],y),I.style.display=null!=y?"":"none",document.activeElement!=U&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=T?(a.removeAttribute("size"),a.style.fontSize=T+" pt",
-T=null):U.value=isNaN(n)?"":n+" pt",B=parseFloat(p),isNaN(B)?ia.value="100 %":ia.value=Math.round(100*B)+" %"),d=m.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+
-("0"+Number(d).toString(16)).substr(-2)}),null!=fa&&(na="#"==d.charAt(0)?d:"#000000",fa(na,!0)),null!=Q&&(R="#"==n.charAt(0)?n:null,Q(R,!0)),null!=k.firstChild&&(k.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}sa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,"DOMSubtreeModified",e);mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,
+d(m.textAlign,"justify")?(c(A,d(m.textAlign,"justify")),c(r,!1),c(u,!1),c(v,!1)):(c(A,!1),c(r,e==mxConstants.ALIGN_LEFT),c(u,e==mxConstants.ALIGN_CENTER),c(v,e==mxConstants.ALIGN_RIGHT))),y=b.getParentByName(a,"TABLE",b.cellEditor.textarea),L=null==y?null:b.getParentByName(a,"TR",y),G=null==y?null:b.getParentByNames(a,["TD","TH"],y),I.style.display=null!=y?"":"none",document.activeElement!=T&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",
+S=null):T.value=isNaN(n)?"":n+" pt",B=parseFloat(p),isNaN(B)?ja.value="100 %":ja.value=Math.round(100*B)+" %"),d=m.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+
+("0"+Number(d).toString(16)).substr(-2)}),null!=ga&&(na="#"==d.charAt(0)?d:"#000000",ga(na,!0)),null!=Q&&(R="#"==n.charAt(0)?n:null,Q(R,!0)),null!=k.firstChild&&(k.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}sa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,"DOMSubtreeModified",e);mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,
"mouseup",e);mxEvent.addListener(b.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();!a.containsLabel&&0<a.cells.length&&(a.containsImage&&1==a.vertices.length&&"image"==a.style.shape&&null!=a.style.image&&"data:image/svg+xml;"==a.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel())),a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel())),this.container.appendChild(this.addStroke(this.createPanel())),this.container.appendChild(this.addLineJumps(this.createPanel())),
a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41),a.style.paddingTop="8px",a.style.paddingBottom="8px",this.container.appendChild(a),this.container.appendChild(this.addEffects(this.createPanel())));a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
StyleFormatPanel.prototype.getCssRules=function(a){var c=document.implementation.createHTMLDocument(""),d=document.createElement("style");mxUtils.setTextContent(d,a);c.body.appendChild(d);return d.sheet.cssRules};
StyleFormatPanel.prototype.addSvgStyles=function(a){var c=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";a.style.fontWeight="bold";a.style.display="none";try{var d=c.style.editableCssRules;if(null!=d){var b=new RegExp(d),f=c.style.image.substring(c.style.image.indexOf(",")+1),e=window.atob?atob(f):Base64.decode(f,!0),h=mxUtils.parseXml(e);if(null!=h)for(var g=h.getElementsByTagName("style"),c=0;c<g.length;c++)for(var k=this.getCssRules(mxUtils.getTextContent(g[c])),
d=0;d<k.length;d++)this.addSvgRule(a,k[d],h,g[c],k,d,b)}}catch(l){}return a};
-StyleFormatPanel.prototype.addSvgRule=function(a,c,d,b,f,e,h){var g=this.editorUi.editor.graph;h.test(c.selectorText)&&(h=mxUtils.bind(this,function(c,h,m){var k=mxUtils.trim(c.style[h]);""!=k&&"url("!=k.substring(0,4)&&(c=this.createColorOption(m+" "+c.selectorText,function(){var a=k;return(a=a.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===a.length?"#"+("0"+parseInt(a[1],10).toString(16)).slice(-2)+("0"+parseInt(a[2],10).toString(16)).slice(-2)+("0"+parseInt(a[3],
+StyleFormatPanel.prototype.addSvgRule=function(a,c,d,b,f,e,h){var g=this.editorUi.editor.graph;h.test(c.selectorText)&&(h=mxUtils.bind(this,function(c,h,n){var k=mxUtils.trim(c.style[h]);""!=k&&"url("!=k.substring(0,4)&&(c=this.createColorOption(n+" "+c.selectorText,function(){var a=k;return(a=a.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===a.length?"#"+("0"+parseInt(a[1],10).toString(16)).slice(-2)+("0"+parseInt(a[2],10).toString(16)).slice(-2)+("0"+parseInt(a[3],
10).toString(16)).slice(-2):""},mxUtils.bind(this,function(a){f[e].style[h]=a;a="";for(var c=0;c<f.length;c++)a+=f[c].cssText+" ";b.textContent=a;a=mxUtils.getXml(d.documentElement);g.setCellStyles(mxConstants.STYLE_IMAGE,"data:image/svg+xml,"+(window.btoa?btoa(a):Base64.encode(a,!0)),this.format.getSelectionState().cells)}),"#ffffff",{install:function(a){},destroy:function(){}}),a.appendChild(c),a.style.display="")}),h(c,"fill",mxResources.get("fill")),h(c,"stroke",mxResources.get("line")),h(c,"stop-color",
mxResources.get("gradient")))};
StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),d=null;1==c.cells.length&&(d=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),d.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),d.style.width="202px",d.style.marginBottom="2px",a.appendChild(d));c.image&&0<c.cells.length&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,
function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==d?c.style.width="202px":(d.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));return a};
-StyleFormatPanel.prototype.addFill=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var b=document.createElement("select");b.style.position="absolute";b.style.marginTop="-2px";b.style.right="72px";b.style.width="70px";var f=b.cloneNode(!1);mxEvent.addListener(b,"click",function(a){mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});var e=1<=d.vertices.length?c.stylesheet.getDefaultVertexStyle():
-c.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,null!=e[mxConstants.STYLE_GRADIENTCOLOR]?e[mxConstants.STYLE_GRADIENTCOLOR]:"#ffffff",function(a){b.style.display=null==a||a==mxConstants.NONE?"none":""},function(a){c.updateCellStyles(mxConstants.STYLE_GRADIENTCOLOR,a,c.getSelectionCells())}),g="image"==d.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,k="image"==d.style.shape?mxResources.get("background"):
-mxResources.get("fill"),e=1<=d.vertices.length?c.stylesheet.getDefaultVertexStyle():c.stylesheet.getDefaultEdgeStyle(),e=this.createCellColorOption(k,g,null!=e[g]?e[g]:"#ffffff",null,mxUtils.bind(this,function(a){c.updateCellStyles(g,a,d.cells)}));e.style.fontWeight="bold";k=mxUtils.getValue(d.style,g,null);h.style.display=null!=k&&k!=mxConstants.NONE&&d.fill&&"image"!=d.style.shape?"":"none";for(var l=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST],
-k=0;k<l.length;k++){var m=document.createElement("option");m.setAttribute("value",l[k]);mxUtils.write(m,mxResources.get(l[k]));b.appendChild(m)}h.appendChild(b);for(k=0;k<Editor.roughFillStyles.length;k++)l=document.createElement("option"),l.setAttribute("value",Editor.roughFillStyles[k].val),mxUtils.write(l,Editor.roughFillStyles[k].dispName),f.appendChild(l);e.appendChild(f);var n=mxUtils.bind(this,function(){d=this.format.getSelectionState();var c=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,
-mxConstants.DIRECTION_SOUTH),e=mxUtils.getValue(d.style,"fillStyle","auto");""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;f.value=e;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?(f.style.display="none",h.style.display="none"):(f.style.display="1"==d.style.sketch?"":"none",h.style.display="1"!=d.style.sketch||"solid"==e||"auto"==e?"":"none")});c.getModel().addListener(mxEvent.CHANGE,
-n);this.listeners.push({destroy:function(){c.getModel().removeListener(n)}});n();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,d.cells);mxEvent.consume(a)});mxEvent.addListener(f,"change",function(a){c.setCellStyles("fillStyle",f.value,d.cells);mxEvent.consume(a)});a.appendChild(e);a.appendChild(h);e=this.getCustomColors();for(k=0;k<e.length;k++)a.appendChild(this.createCellColorOption(e[k].title,e[k].key,e[k].defaultValue));return a};
+StyleFormatPanel.prototype.addFill=function(a){var c=this.editorUi,d=c.editor.graph,b=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var f=document.createElement("select");f.style.position="absolute";f.style.marginTop="-2px";f.style.right="72px";f.style.width="70px";var e=f.cloneNode(!1);mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});var h=1<=b.vertices.length?d.stylesheet.getDefaultVertexStyle():
+d.stylesheet.getDefaultEdgeStyle(),g=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,null!=h[mxConstants.STYLE_GRADIENTCOLOR]?h[mxConstants.STYLE_GRADIENTCOLOR]:"#ffffff",function(a){f.style.display=null==a||a==mxConstants.NONE?"none":""},function(a){d.updateCellStyles(mxConstants.STYLE_GRADIENTCOLOR,a,d.getSelectionCells())}),k="image"==b.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,l="image"==b.style.shape?mxResources.get("background"):
+mxResources.get("fill"),h=1<=b.vertices.length?d.stylesheet.getDefaultVertexStyle():d.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(l,k,null!=h[k]?h[k]:"#ffffff",null,mxUtils.bind(this,function(a){d.updateCellStyles(k,a,b.cells)}));h.style.fontWeight="bold";l=mxUtils.getValue(b.style,k,null);g.style.display=null!=l&&l!=mxConstants.NONE&&b.fill&&"image"!=b.style.shape?"":"none";for(var n=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
+mxConstants.DIRECTION_RADIAL],l=0;l<n.length;l++){var m=document.createElement("option");m.setAttribute("value",n[l]);mxUtils.write(m,mxResources.get(n[l]));f.appendChild(m)}g.appendChild(f);for(l=0;l<Editor.roughFillStyles.length;l++)n=document.createElement("option"),n.setAttribute("value",Editor.roughFillStyles[l].val),mxUtils.write(n,Editor.roughFillStyles[l].dispName),e.appendChild(n);h.appendChild(e);var p=mxUtils.bind(this,function(){b=this.format.getSelectionState();var c=mxUtils.getValue(b.style,
+mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH),d=mxUtils.getValue(b.style,"fillStyle","auto");""==c&&(c=mxConstants.DIRECTION_SOUTH);f.value=c;e.value=d;a.style.display=b.fill?"":"none";c=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null);!b.fill||b.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==b.style.shape?(e.style.display="none",g.style.display="none"):(e.style.display="1"==b.style.sketch?"":"none",g.style.display="1"!=b.style.sketch||"solid"==d||"auto"==
+d?"":"none")});d.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){d.getModel().removeListener(p)}});p();mxEvent.addListener(f,"change",function(a){d.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,f.value,b.cells);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[f.value],"cells",b.cells));mxEvent.consume(a)});mxEvent.addListener(e,"change",function(a){d.setCellStyles("fillStyle",e.value,b.cells);c.fireEvent(new mxEventObject("styleChanged",
+"keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[f.value],"cells",b.cells));mxEvent.consume(a)});a.appendChild(h);a.appendChild(g);h=this.getCustomColors();for(l=0;l<h.length;l++)a.appendChild(this.createCellColorOption(h[l].title,h[l].key,h[l].defaultValue));return a};
StyleFormatPanel.prototype.getCustomColors=function(){var a=this.format.getSelectionState(),c=[];"swimlane"!=a.style.shape&&"table"!=a.style.shape||c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c};
StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseFloat(t.value),c=Math.min(999,Math.max(0,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,e.cells),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",e.cells)));t.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseFloat(w.value),c=Math.min(999,Math.max(0,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,
mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,e.cells),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",e.cells)));w.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var h=document.createElement("div");h.style.fontWeight="bold";e.stroke||(h.style.display="none");var g=document.createElement("select");
-g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var k=["sharp","rounded","curved"],l=0;l<k.length;l++){var m=document.createElement("option");m.setAttribute("value",k[l]);mxUtils.write(m,mxResources.get(k[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:"curved"==g.value&&(d=[null,"1"]);for(var k=0;k<
-c.length;k++)f.setCellStyles(c[k],d[k],e.cells);b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",e.cells))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var n="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,k="image"==e.style.shape?mxResources.get("border"):mxResources.get("line"),l=1<=e.vertices.length?f.stylesheet.getDefaultVertexStyle():f.stylesheet.getDefaultEdgeStyle(),
-k=this.createCellColorOption(k,n,null!=l[n]?l[n]:"#000000",null,mxUtils.bind(this,function(a){f.updateCellStyles(n,a,e.cells)}));k.appendChild(g);h.appendChild(k);var p=h.cloneNode(!1);p.style.fontWeight="normal";p.style.whiteSpace="nowrap";p.style.position="relative";p.style.paddingLeft="16px";p.style.marginBottom="2px";p.style.marginTop="2px";p.className="geToolbarContainer";var r=mxUtils.bind(this,function(a,b,c,d,e){a=this.editorUi.menus.styleChange(a,"",d,e,"geIcon",null);d=document.createElement("div");
+g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var k=["sharp","rounded","curved"],l=0;l<k.length;l++){var n=document.createElement("option");n.setAttribute("value",k[l]);mxUtils.write(n,mxResources.get(k[l]));g.appendChild(n)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];"rounded"==g.value?d=["1",null]:"curved"==g.value&&(d=[null,"1"]);for(var k=0;k<
+c.length;k++)f.setCellStyles(c[k],d[k],e.cells);b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",e.cells))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var m="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,k="image"==e.style.shape?mxResources.get("border"):mxResources.get("line"),l=1<=e.vertices.length?f.stylesheet.getDefaultVertexStyle():f.stylesheet.getDefaultEdgeStyle(),
+k=this.createCellColorOption(k,m,null!=l[m]?l[m]:"#000000",null,mxUtils.bind(this,function(a){f.updateCellStyles(m,a,e.cells)}));k.appendChild(g);h.appendChild(k);var p=h.cloneNode(!1);p.style.fontWeight="normal";p.style.whiteSpace="nowrap";p.style.position="relative";p.style.paddingLeft="16px";p.style.marginBottom="2px";p.style.marginTop="2px";p.className="geToolbarContainer";var r=mxUtils.bind(this,function(a,b,c,d,e){a=this.editorUi.menus.styleChange(a,"",d,e,"geIcon",null);d=document.createElement("div");
d.style.width=b+"px";d.style.height="1px";d.style.borderBottom="1px "+c+" "+this.defaultStrokeColor;d.style.paddingTop="6px";a.firstChild.firstChild.style.padding="0px 4px 0px 4px";a.firstChild.firstChild.style.width=b+"px";a.firstChild.firstChild.appendChild(d);return a}),l=this.editorUi.toolbar.addMenuFunctionInContainer(p,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){r(a,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",
mxResources.get("solid"));r(a,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));r(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");r(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");r(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],
["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),u=p.cloneNode(!1),v=this.editorUi.toolbar.addMenuFunctionInContainer(u,"geSprite-connection",mxResources.get("connection"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(a,
"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",mxResources.get("link"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,
-mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),m=this.editorUi.toolbar.addMenuFunctionInContainer(u,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){r(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));r(a,33,"dashed",[mxConstants.STYLE_DASHED,
+mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),n=this.editorUi.toolbar.addMenuFunctionInContainer(u,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){r(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));r(a,33,"dashed",[mxConstants.STYLE_DASHED,
mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));r(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");r(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");r(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+
" (3)")})),k=p.cloneNode(!1),t=document.createElement("input");t.style.textAlign="right";t.style.marginTop="min"==uiTheme?"0px":"2px";t.style.width="41px";t.setAttribute("title",mxResources.get("linewidth"));p.appendChild(t);var w=t.cloneNode(!0);u.appendChild(w);var x=this.createStepper(t,c,1,9);x.style.display=t.style.display;x.style.marginTop="min"==uiTheme?"0px":"2px";p.appendChild(x);var B=this.createStepper(w,d,1,9);B.style.display=w.style.display;B.style.marginTop="min"==uiTheme?"0px":"2px";
u.appendChild(B);t.style.position="absolute";t.style.height="15px";t.style.left="141px";x.style.left="190px";w.style.position="absolute";w.style.left="141px";w.style.height="15px";B.style.left="190px";mxEvent.addListener(t,"blur",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(w,"blur",d);mxEvent.addListener(w,"change",d);var E=this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,
@@ -3100,36 +3102,36 @@ null,!1).setAttribute("title",mxResources.get("diamondThin")),this.editorUi.menu
null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),
this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(v,
-8);this.addArrow(E);this.addArrow(H);this.addArrow(A);x=this.addArrow(l,9);x.className="geIcon";x.style.width="auto";B=this.addArrow(m,9);B.className="geIcon";B.style.width="22px";var I=document.createElement("div");I.style.width="85px";I.style.height="1px";I.style.borderBottom="1px solid "+this.defaultStrokeColor;I.style.marginBottom="9px";x.appendChild(I);var y=document.createElement("div");y.style.width="23px";y.style.height="1px";y.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.marginBottom=
-"9px";B.appendChild(y);l.style.height="15px";m.style.height="15px";v.style.height="15px";E.style.height="17px";H.style.marginLeft="3px";H.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(h);a.appendChild(u);a.appendChild(p);l=p.cloneNode(!1);l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight=
-"normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var G,L,O=this.addUnitInput(l,"pt",74,33,function(){G.apply(this,arguments)}),P=this.addUnitInput(l,"pt",20,33,function(){L.apply(this,arguments)});mxUtils.br(l);x=document.createElement("div");x.style.height="8px";l.appendChild(x);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var M,X,aa=this.addUnitInput(l,"pt",74,33,function(){M.apply(this,arguments)}),Z=this.addUnitInput(l,
-"pt",20,33,function(){X.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);h=h.cloneNode(!1);h.style.fontWeight="normal";h.style.position="relative";h.style.paddingLeft="16px";h.style.marginBottom="2px";h.style.marginTop="6px";h.style.borderWidth="0px";h.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop=
-"1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));h.appendChild(m);var U,T=this.addUnitInput(h,"pt",20,41,function(){U.apply(this,arguments)});e.edges.length==e.cells.length?(a.appendChild(k),a.appendChild(l)):e.vertices.length==e.cells.length&&a.appendChild(h);var Q=mxUtils.bind(this,function(a,c,d){function f(a,c,d,f){d=d.getElementsByTagName("div")[0];null!=d&&(d.className=b.getCssClassForMarker(f,e.style.shape,a,c),"geSprite geSprite-noarrow"==
-d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px"));return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,n,null);if(d||document.activeElement!=t)a=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),t.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=
+8);this.addArrow(E);this.addArrow(H);this.addArrow(A);x=this.addArrow(l,9);x.className="geIcon";x.style.width="auto";B=this.addArrow(n,9);B.className="geIcon";B.style.width="22px";var I=document.createElement("div");I.style.width="85px";I.style.height="1px";I.style.borderBottom="1px solid "+this.defaultStrokeColor;I.style.marginBottom="9px";x.appendChild(I);var y=document.createElement("div");y.style.width="23px";y.style.height="1px";y.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.marginBottom=
+"9px";B.appendChild(y);l.style.height="15px";n.style.height="15px";v.style.height="15px";E.style.height="17px";H.style.marginLeft="3px";H.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(h);a.appendChild(u);a.appendChild(p);l=p.cloneNode(!1);l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.marginLeft="3px";n.style.marginBottom="12px";n.style.marginTop="2px";n.style.fontWeight=
+"normal";n.style.width="76px";mxUtils.write(n,mxResources.get("lineend"));l.appendChild(n);var G,L,O=this.addUnitInput(l,"pt",74,33,function(){G.apply(this,arguments)}),P=this.addUnitInput(l,"pt",20,33,function(){L.apply(this,arguments)});mxUtils.br(l);x=document.createElement("div");x.style.height="8px";l.appendChild(x);n=n.cloneNode(!1);mxUtils.write(n,mxResources.get("linestart"));l.appendChild(n);var M,W,ba=this.addUnitInput(l,"pt",74,33,function(){M.apply(this,arguments)}),Z=this.addUnitInput(l,
+"pt",20,33,function(){W.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);h=h.cloneNode(!1);h.style.fontWeight="normal";h.style.position="relative";h.style.paddingLeft="16px";h.style.marginBottom="2px";h.style.marginTop="6px";h.style.borderWidth="0px";h.style.paddingBottom="18px";n=document.createElement("div");n.style.position="absolute";n.style.marginLeft="3px";n.style.marginBottom="12px";n.style.marginTop=
+"1px";n.style.fontWeight="normal";n.style.width="120px";mxUtils.write(n,mxResources.get("perimeter"));h.appendChild(n);var T,S=this.addUnitInput(h,"pt",20,41,function(){T.apply(this,arguments)});e.edges.length==e.cells.length?(a.appendChild(k),a.appendChild(l)):e.vertices.length==e.cells.length&&a.appendChild(h);var Q=mxUtils.bind(this,function(a,c,d){function f(a,c,d,f){d=d.getElementsByTagName("div")[0];null!=d&&(d.className=b.getCssClassForMarker(f,e.style.shape,a,c),"geSprite geSprite-noarrow"==
+d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px"));return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,m,null);if(d||document.activeElement!=t)a=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),t.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=
w)a=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),w.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?I.style.borderBottom="1px dashed "+
this.defaultStrokeColor:I.style.borderBottom="1px dotted "+this.defaultStrokeColor:I.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.borderBottom=I.style.borderBottom;a=E.getElementsByTagName("div")[0];null!=a&&(c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==
c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal");a=v.getElementsByTagName("div")[0];null!=a&&
(a.className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");e.edges.length==e.cells.length?(u.style.display="",p.style.display="none"):(u.style.display="none",p.style.display="");a=f(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),H,"start");c=f(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),
mxUtils.getValue(e.style,"endFill","1"),A,"end");null!=a&&null!=c&&("arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(E,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(H,30),mxUtils.setOpacity(A,30)):(mxUtils.setOpacity(H,100),mxUtils.setOpacity(A,
-100));if(d||document.activeElement!=Z)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),Z.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=aa)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),aa.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=P)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),P.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=aa)a=parseInt(mxUtils.getValue(e.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=T)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),T.value=isNaN(a)?"":a+" pt"});X=this.installInputHandler(Z,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");M=this.installInputHandler(aa,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");L=this.installInputHandler(P,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");
-G=this.installInputHandler(O,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");U=this.installInputHandler(T,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,Q);this.addKeyHandler(Z,Q);this.addKeyHandler(aa,Q);this.addKeyHandler(P,Q);this.addKeyHandler(O,Q);this.addKeyHandler(T,Q);f.getModel().addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){f.getModel().removeListener(Q)}});Q();return a};
+100));if(d||document.activeElement!=Z)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),Z.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ba)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),ba.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=P)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),P.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ba)a=parseInt(mxUtils.getValue(e.style,
+mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=S)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),S.value=isNaN(a)?"":a+" pt"});W=this.installInputHandler(Z,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");M=this.installInputHandler(ba,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");L=this.installInputHandler(P,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");
+G=this.installInputHandler(O,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");T=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,Q);this.addKeyHandler(Z,Q);this.addKeyHandler(ba,Q);this.addKeyHandler(P,Q);this.addKeyHandler(O,Q);this.addKeyHandler(S,Q);f.getModel().addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){f.getModel().removeListener(Q)}});Q();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var c=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<c.edges.length&&0==c.vertices.length&&c.lineJumps){a.style.padding="8px 0px 24px 18px";var d=this.editorUi,b=d.editor.graph,f=document.createElement("div");f.style.position="absolute";f.style.fontWeight="bold";f.style.width="80px";mxUtils.write(f,mxResources.get("lineJumps"));a.appendChild(f);var e=document.createElement("select");e.style.position="absolute";e.style.marginTop="-2px";
e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],h=0;h<f.length;h++){var g=document.createElement("option");g.setAttribute("value",f[h]);mxUtils.write(g,mxResources.get(f[h]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,c.cells),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",c.cells))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
-mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var k,l=this.addUnitInput(a,"pt",22,33,function(){k.apply(this,arguments)});k=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
-m);b.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){b.getModel().removeListener(m)}});m()}else a.style.display="none";return a};
+mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var k,l=this.addUnitInput(a,"pt",22,33,function(){k.apply(this,arguments)});k=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var n=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
+n);b.getModel().addListener(mxEvent.CHANGE,n);this.listeners.push({destroy:function(){b.getModel().removeListener(n)}});n()}else a.style.display="none";return a};
StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,d=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var b=document.createElement("table");b.style.width="100%";b.style.fontWeight="bold";b.style.paddingRight="20px";var f=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var h=document.createElement("td");h.style.padding="0px";h.style.width="50%";h.setAttribute("valign","top");var g=h.cloneNode(!0);
-g.style.paddingLeft="8px";e.appendChild(h);e.appendChild(g);f.appendChild(e);b.appendChild(f);a.appendChild(b);var k=h,l=0,m=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";k.appendChild(a);k=k==h?g:h;l++}),n=mxUtils.bind(this,function(a,b,c){d=this.format.getSelectionState();h.innerHTML="";g.innerHTML="";k=h;d.rounded&&m(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==d.style.shape&&m(mxResources.get("divider"),"swimlaneLine",1);d.containsImage||
-m(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,0);d.glass&&m(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);m(mxResources.get("sketch"),"sketch",0)});c.getModel().addListener(mxEvent.CHANGE,n);this.listeners.push({destroy:function(){c.getModel().removeListener(n)}});n();return a};
+g.style.paddingLeft="8px";e.appendChild(h);e.appendChild(g);f.appendChild(e);b.appendChild(f);a.appendChild(b);var k=h,l=0,n=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";k.appendChild(a);k=k==h?g:h;l++}),m=mxUtils.bind(this,function(a,b,c){d=this.format.getSelectionState();h.innerHTML="";g.innerHTML="";k=h;d.rounded&&n(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==d.style.shape&&n(mxResources.get("divider"),"swimlaneLine",1);d.containsImage||
+n(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,0);d.glass&&n(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);n(mxResources.get("sketch"),"sketch",0)});c.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){c.getModel().removeListener(m)}});m();return a};
StyleFormatPanel.prototype.addStyleOps=function(a){a.style.paddingTop="10px";a.style.paddingBottom="10px";var c=mxUtils.button(mxResources.get("setAsDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("setAsDefaultStyle").funct()}));c.setAttribute("title",mxResources.get("setAsDefaultStyle")+" ("+this.editorUi.actions.get("setAsDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramStylePanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};
mxUtils.extend(DiagramStylePanel,BaseFormatPanel);DiagramStylePanel.prototype.init=function(){this.container.appendChild(this.addView(this.createPanel()))};
DiagramStylePanel.prototype.addView=function(a){var c=this.editorUi,d=c.editor.graph,b=d.getModel();a.style.whiteSpace="normal";var f="1"==d.currentVertexStyle.sketch&&"1"==d.currentEdgeStyle.sketch,e="1"==d.currentVertexStyle.rounded,h="1"==d.currentEdgeStyle.curved,g=document.createElement("div");g.style.paddingBottom="12px";g.style.marginRight="16px";a.style.paddingTop="8px";var k=document.createElement("table");k.style.width="100%";k.style.fontWeight="bold";var l=document.createElement("tbody"),
-m=document.createElement("tr");m.style.padding="0px";var n=document.createElement("td");n.style.padding="0px";n.style.width="50%";n.setAttribute("valign","middle");var p=n.cloneNode(!0);p.style.paddingLeft="8px";m.appendChild(n);m.appendChild(p);l.appendChild(m);k.appendChild(l);n.appendChild(this.createOption(mxResources.get("sketch"),function(){return f},function(a){(f=a)?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(delete d.currentEdgeStyle.sketch,delete d.currentVertexStyle.sketch);
-d.updateCellStyles("sketch",a?"1":null,d.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));p.appendChild(this.createOption(mxResources.get("rounded"),function(){return e},function(a){(e=a)?d.currentVertexStyle.rounded="1":delete d.currentVertexStyle.rounded;d.updateCellStyles("rounded",a?"1":null,d.getVerticesAndEdges(!0,!0))},null,function(a){a.style.width="auto"}));n=n.cloneNode(!1);p=p.cloneNode(!1);m=m.cloneNode(!1);m.appendChild(n);m.appendChild(p);l.appendChild(m);n.appendChild(this.createOption(mxResources.get("curved"),
+n=document.createElement("tr");n.style.padding="0px";var m=document.createElement("td");m.style.padding="0px";m.style.width="50%";m.setAttribute("valign","middle");var p=m.cloneNode(!0);p.style.paddingLeft="8px";n.appendChild(m);n.appendChild(p);l.appendChild(n);k.appendChild(l);m.appendChild(this.createOption(mxResources.get("sketch"),function(){return f},function(a){(f=a)?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(delete d.currentEdgeStyle.sketch,delete d.currentVertexStyle.sketch);
+d.updateCellStyles("sketch",a?"1":null,d.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));p.appendChild(this.createOption(mxResources.get("rounded"),function(){return e},function(a){(e=a)?d.currentVertexStyle.rounded="1":delete d.currentVertexStyle.rounded;d.updateCellStyles("rounded",a?"1":null,d.getVerticesAndEdges(!0,!0))},null,function(a){a.style.width="auto"}));m=m.cloneNode(!1);p=p.cloneNode(!1);n=n.cloneNode(!1);n.appendChild(m);n.appendChild(p);l.appendChild(n);m.appendChild(this.createOption(mxResources.get("curved"),
function(){return h},function(a){(h=a)?d.currentEdgeStyle.curved="1":delete d.currentEdgeStyle.curved;d.updateCellStyles("curved",a?"1":null,d.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));g.appendChild(k);a.appendChild(g);var r=["fillColor","strokeColor","fontColor","gradientColor"],u=mxUtils.bind(this,function(a,c){var e=d.getVerticesAndEdges();b.beginUpdate();try{for(var f=0;f<e.length;f++){var g=d.getCellStyle(e[f]);null!=g.labelBackgroundColor&&d.updateCellStyles("labelBackgroundColor",
null!=c?c.background:null,[e[f]]);for(var k=b.isEdge(e[f]),h=b.getStyle(e[f]),l=k?d.currentEdgeStyle:d.currentVertexStyle,m=0;m<a.length;m++)if(null!=g[a[m]]&&g[a[m]]!=mxConstants.NONE||a[m]!=mxConstants.STYLE_FILLCOLOR&&a[m]!=mxConstants.STYLE_STROKECOLOR)h=mxUtils.setStyle(h,a[m],l[a[m]]);b.setStyle(e[f],h)}}finally{b.endUpdate()}}),v=mxUtils.bind(this,function(a,b,c){if(null!=a)for(var d=0;d<b.length;d++)if(null!=a[b[d]]&&a[b[d]]!=mxConstants.NONE||b[d]!=mxConstants.STYLE_FILLCOLOR&&b[d]!=mxConstants.STYLE_STROKECOLOR)a[b[d]]=
-c[b[d]]}),t=mxUtils.bind(this,function(a,b,c,e,f){if(null!=a){null!=c&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:d,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==c||null!=b[g]&&b[g]!=mxConstants.NONE||g!=mxConstants.STYLE_FILLCOLOR&&g!=mxConstants.STYLE_STROKECOLOR)b[g]=a[g]}}),n=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(a){a=d.getVerticesAndEdges(!0,!0);if(0<a.length){b.beginUpdate();
-try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{b.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);c.clearDefaultStyle()}));n.setAttribute("title",mxResources.get("reset"));n.style.textOverflow="ellipsis";n.style.maxWidth="90px";p.appendChild(n);var w=mxUtils.bind(this,function(a,c,e,f,g){var k=document.createElement("div");
+c[b[d]]}),t=mxUtils.bind(this,function(a,b,c,e,f){if(null!=a){null!=c&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:d,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==c||null!=b[g]&&b[g]!=mxConstants.NONE||g!=mxConstants.STYLE_FILLCOLOR&&g!=mxConstants.STYLE_STROKECOLOR)b[g]=a[g]}}),m=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(a){a=d.getVerticesAndEdges(!0,!0);if(0<a.length){b.beginUpdate();
+try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{b.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);c.clearDefaultStyle()}));m.setAttribute("title",mxResources.get("reset"));m.style.textOverflow="ellipsis";m.style.maxWidth="90px";p.appendChild(m);var w=mxUtils.bind(this,function(a,c,e,f,g){var k=document.createElement("div");
k.style.cssText="position:absolute;display:inline-block;width:100%;height:100%;overflow:hidden;pointer-events:none;";g.appendChild(k);var h=new Graph(k,null,null,d.getStylesheet());h.resetViewOnRootChange=!1;h.foldingEnabled=!1;h.gridEnabled=!1;h.autoScroll=!1;h.setTooltips(!1);h.setConnectable(!1);h.setPanning(!1);h.setEnabled(!1);h.getCellStyle=function(g){var k=mxUtils.clone(Graph.prototype.getCellStyle.apply(this,arguments)),l=d.stylesheet.getDefaultVertexStyle(),m=c;b.isEdge(g)&&(l=d.stylesheet.getDefaultEdgeStyle(),
m=e);v(k,r,l);t(a,k,g,f,h);t(m,k,g,f,h);return k};h.model.beginUpdate();try{var l=h.insertVertex(h.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),m=h.insertEdge(h.getDefaultParent(),null,"Connector",l,l,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");m.geometry.points=[new mxPoint(32,70)];m.geometry.offset=new mxPoint(0,8)}finally{h.model.endUpdate()}}),x=document.createElement("div");x.style.position="relative";a.appendChild(x);null==
this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var B=mxUtils.bind(this,function(a,g,k,l,m){var n=this.format.cachedStyleEntries[m];null==n&&(n=document.createElement("div"),n.style.cssText="display:inline-block;position:relative;width:96px;height:90px;cursor:pointer;border:1px solid gray;margin:2px;overflow:hidden;",null!=l&&null!=l.background&&(n.style.backgroundColor=l.background),w(a,g,k,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),
@@ -3138,9 +3140,9 @@ h?"1":"0";b.beginUpdate();try{u(r,l);var p=new ChangePageSetup(c,null!=l?l.backg
function(c){var f=mxUtils.clone(e.apply(this,arguments)),h=d.stylesheet.getDefaultVertexStyle(),m=g;b.isEdge(c)&&(h=d.stylesheet.getDefaultEdgeStyle(),m=k);v(f,r,h);t(a,f,c,l);t(m,f,c,l);return f};d.refresh();d.getCellStyle=e;d.background=c;d.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){d.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));x.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=
null!=this.format.currentStylePage?this.format.currentStylePage:0;var H=[],A=mxUtils.bind(this,function(){0<H.length&&(H[this.format.currentStylePage].style.background="#84d7ff");for(var a=10*this.format.currentStylePage;a<Math.min(10*(this.format.currentStylePage+1),Editor.styles.length);a++){var b=Editor.styles[a];B(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),I=mxUtils.bind(this,function(a){0<=a&&a<E&&(H[this.format.currentStylePage].style.background="transparent",x.innerHTML="",this.format.currentStylePage=
a,A())});if(1<E){g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";g.style.paddingTop="4px";g.style.width="210px";a.style.paddingBottom="8px";for(p=0;p<E;p++){var y=document.createElement("div");y.style.display="inline-block";y.style.width="6px";y.style.height="6px";y.style.marginLeft="4px";y.style.marginRight="3px";y.style.borderRadius="3px";y.style.cursor="pointer";y.style.background="transparent";y.style.border="1px solid #b5b6b7";
-mxUtils.bind(this,function(a,b){mxEvent.addListener(y,"click",mxUtils.bind(this,function(){I(a)}))})(p,y);g.appendChild(y);H.push(y)}a.appendChild(g);A();15>E&&(k=function(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})},n=document.createElement("div"),n.style.cssText="position:absolute;left:0px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);",
-mxEvent.addListener(n,"click",mxUtils.bind(this,function(){I(mxUtils.mod(this.format.currentStylePage-1,E))})),p=document.createElement("div"),p.style.cssText="position:absolute;right:2px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);",
-g.appendChild(n),g.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(){I(mxUtils.mod(this.format.currentStylePage+1,E))})),k(n),k(p))}else A();return a};DiagramFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
+mxUtils.bind(this,function(a,b){mxEvent.addListener(y,"click",mxUtils.bind(this,function(){I(a)}))})(p,y);g.appendChild(y);H.push(y)}a.appendChild(g);A();15>E&&(k=function(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})},m=document.createElement("div"),m.style.cssText="position:absolute;left:0px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);",
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){I(mxUtils.mod(this.format.currentStylePage-1,E))})),p=document.createElement("div"),p.style.cssText="position:absolute;right:2px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);",
+g.appendChild(m),g.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(){I(mxUtils.mod(this.format.currentStylePage+1,E))})),k(m),k(p))}else A();return a};DiagramFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))};
DiagramFormatPanel.prototype.addView=function(a){var c=this.editorUi,d=c.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return d.pageVisible},function(a){c.actions.get("pageView").funct()},{install:function(a){this.listener=function(){a(d.pageVisible)};c.addListener("pageViewChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}}));
if(d.isEnabled()){var b=this.createColorOption(mxResources.get("background"),function(){return d.background},function(a){a=new ChangePageSetup(c,a);a.ignoreImage=!0;d.model.execute(a)},"#ffffff",{install:function(a){this.listener=function(){a(d.background)};c.addListener("backgroundColorChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});if(this.showBackgroundImageOption){var f=mxUtils.button(mxResources.get("image"),function(a){c.showBackgroundImageDialog(null,c.editor.graph.backgroundImage);
@@ -3156,16 +3158,16 @@ f.isGridEnabled()&&(f.view.gridColor="#e0e0e0");b.fireEvent(new mxEventObject("g
DiagramFormatPanel.prototype.addPaperSize=function(a){var c=this.editorUi,d=c.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var b=PageSetupDialog.addPageFormatPanel(a,"formatpanel",d.pageFormat,function(a){if(null==d.pageFormat||d.pageFormat.width!=a.width||d.pageFormat.height!=a.height)a=new ChangePageSetup(c,null,null,a),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a)});this.addKeyHandler(b.widthInput,function(){b.set(d.pageFormat)});this.addKeyHandler(b.heightInput,
function(){b.set(d.pageFormat)});var f=function(){b.set(d.pageFormat)};c.addListener("pageFormatChanged",f);this.listeners.push({destroy:function(){c.removeListener(f)}});d.getModel().addListener(mxEvent.CHANGE,f);this.listeners.push({destroy:function(){d.getModel().removeListener(f)}});return a};
DiagramFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));c.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");c.style.width="202px";c.style.marginBottom="2px";a.appendChild(c);mxUtils.br(a);c=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
-c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxActor.call(this)}function f(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function k(){mxShape.call(this)}function l(){mxShape.call(this)}function m(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}function n(){mxActor.call(this)}function p(){mxCylinder.call(this)}
+c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxActor.call(this)}function f(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function k(){mxShape.call(this)}function l(){mxShape.call(this)}function n(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}function m(){mxActor.call(this)}function p(){mxCylinder.call(this)}
function r(){mxCylinder.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function w(){mxActor.call(this)}function x(){mxActor.call(this)}function B(){mxActor.call(this)}function E(){mxActor.call(this)}function H(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,H.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,H.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,H.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,H.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,H.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,H.prototype.arcTo)}function A(){mxRectangleShape.call(this)}function I(){mxRectangleShape.call(this)}
-function y(){mxActor.call(this)}function G(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function P(){mxRectangleShape.call(this)}function M(){mxCylinder.call(this)}function X(){mxShape.call(this)}function aa(){mxShape.call(this)}function Z(){mxEllipse.call(this)}function U(){mxShape.call(this)}function T(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function R(){mxShape.call(this)}function fa(){mxShape.call(this)}function na(){mxShape.call(this)}
-function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function da(){mxCylinder.call(this)}function qa(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function ra(){mxDoubleEllipse.call(this)}function va(){mxDoubleEllipse.call(this)}function ja(){mxArrowConnector.call(this);this.spacing=0}function ga(){mxArrowConnector.call(this);this.spacing=0}function ha(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ea(){mxActor.call(this)}function ma(){mxActor.call(this)}
-function ia(){mxActor.call(this)}function Y(){mxActor.call(this)}function sa(){mxActor.call(this)}function K(){mxActor.call(this)}function ba(){mxActor.call(this)}function ka(){mxActor.call(this)}function V(){mxActor.call(this)}function S(){mxActor.call(this)}function la(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ma(){mxRhombus.call(this)}function Na(){mxEllipse.call(this)}function Oa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
+function y(){mxActor.call(this)}function G(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function P(){mxRectangleShape.call(this)}function M(){mxCylinder.call(this)}function W(){mxShape.call(this)}function ba(){mxShape.call(this)}function Z(){mxEllipse.call(this)}function T(){mxShape.call(this)}function S(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function R(){mxShape.call(this)}function ga(){mxShape.call(this)}function na(){mxShape.call(this)}
+function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function ea(){mxCylinder.call(this)}function qa(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function ra(){mxDoubleEllipse.call(this)}function va(){mxDoubleEllipse.call(this)}function ka(){mxArrowConnector.call(this);this.spacing=0}function ha(){mxArrowConnector.call(this);this.spacing=0}function ia(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function fa(){mxActor.call(this)}function ma(){mxActor.call(this)}
+function ja(){mxActor.call(this)}function X(){mxActor.call(this)}function sa(){mxActor.call(this)}function K(){mxActor.call(this)}function aa(){mxActor.call(this)}function ca(){mxActor.call(this)}function U(){mxActor.call(this)}function Y(){mxActor.call(this)}function la(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ma(){mxRhombus.call(this)}function Na(){mxEllipse.call(this)}function Oa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
function Ga(){mxEllipse.call(this)}function Ha(){mxActor.call(this)}function za(){mxActor.call(this)}function Aa(){mxActor.call(this)}function N(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Ra(a,b,c,d,e,f,g,k,h,l){g+=h;var q=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(q.x-
e-g,q.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,b,c,d,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-b,-c));this.paintForeground(a,
b,c,d,e)};a.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.state){var q=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=q,q=f,f=g;a.rotate(-this.getShapeRotation(),q,f,b+d/2,c+e/2);s=this.scale;b=this.bounds.x/s;c=this.bounds.y/s;d=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(a,b,c,d,e)}};a.prototype.paintTableForeground=function(a,b,c,d,e){var q=this.state.view.graph,f=q.getActualStartSize(this.state.cell),
-g=q.model.getChildCells(this.state.cell,!0);if(0<g.length){var D="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),k="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(D)for(D=1;D<g.length;D++){var z=q.getCellGeometry(g[D]);null!=z&&(a.begin(),a.moveTo(b+f.x,c+z.y),a.lineTo(b+d-f.width,c+z.y),a.end(),a.stroke())}if(k)for(d=q.model.getChildCells(g[0],!0),D=1;D<d.length;D++)z=q.getCellGeometry(d[D]),null!=z&&(a.begin(),a.moveTo(b+z.x+f.x,c+f.y),a.lineTo(b+z.x+f.x,c+e-f.height),a.end(),
+g=q.model.getChildCells(this.state.cell,!0);if(0<g.length){var D="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),z="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(D)for(D=1;D<g.length;D++){var k=q.getCellGeometry(g[D]);null!=k&&(a.begin(),a.moveTo(b+f.x,c+k.y),a.lineTo(b+d-f.width,c+k.y),a.end(),a.stroke())}if(z)for(d=q.model.getChildCells(g[0],!0),D=1;D<d.length;D++)k=q.getCellGeometry(d[D]),null!=k&&(a.begin(),a.moveTo(b+k.x+f.x,c+f.y),a.lineTo(b+k.x+f.x,c+e-f.height),a.end(),
a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-q,0);a.lineTo(d,q);a.lineTo(d,e);a.lineTo(q,e);a.lineTo(0,e-q);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-q,0),a.lineTo(d,q),a.lineTo(q,q),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(q,q),a.lineTo(q,e),a.lineTo(0,e-q),
a.close(),a.fill()),a.begin(),a.moveTo(q,e),a.lineTo(q,q),a.lineTo(0,0),a.moveTo(q,q),a.lineTo(d,q),a.end(),a.stroke())};c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",c);var Pa=Math.tan(mxUtils.toRadians(30)),ya=(.5-Pa)/2;mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(d,mxCylinder);d.prototype.size=
@@ -3176,9 +3178,9 @@ b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b)
Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-q,0);a.lineTo(d,q);a.lineTo(d,e);a.lineTo(0,e);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-q,0),a.lineTo(d-q,q),a.lineTo(d,q),a.close(),a.fill()),a.begin(),a.moveTo(d-q,0),a.lineTo(d-q,q),a.lineTo(d,q),a.end(),a.stroke())};
mxCellRenderer.registerShape("note",h);mxUtils.extend(g,h);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,0)}return null};mxUtils.extend(k,mxShape);k.prototype.isoAngle=15;k.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
Math.PI/200,q=Math.min(d*Math.tan(q),.5*e);a.translate(b,c);a.begin();a.moveTo(.5*d,0);a.lineTo(d,q);a.lineTo(d,e-q);a.lineTo(.5*d,e);a.lineTo(0,e-q);a.lineTo(0,q);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,q);a.lineTo(.5*d,2*q);a.lineTo(d,q);a.moveTo(.5*d,2*q);a.lineTo(.5*d,e);a.stroke()};mxCellRenderer.registerShape("isoCube2",k);mxUtils.extend(l,mxShape);l.prototype.size=15;l.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.translate(b,c);0==q?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),a.moveTo(0,q),a.arcTo(.5*d,q,0,0,1,.5*d,0),a.arcTo(.5*d,q,0,0,1,d,q),a.lineTo(d,e-q),a.arcTo(.5*d,q,0,0,1,.5*d,e),a.arcTo(.5*d,q,0,0,1,0,e-q),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,q),a.arcTo(.5*d,q,0,0,1,.5*d,2*q),a.arcTo(.5*d,q,0,0,1,0,q),a.stroke())};mxCellRenderer.registerShape("cylinder2",l);mxUtils.extend(m,mxCylinder);m.prototype.size=15;m.prototype.paintVertexShape=function(a,
+"size",this.size))));a.translate(b,c);0==q?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),a.moveTo(0,q),a.arcTo(.5*d,q,0,0,1,.5*d,0),a.arcTo(.5*d,q,0,0,1,d,q),a.lineTo(d,e-q),a.arcTo(.5*d,q,0,0,1,.5*d,e),a.arcTo(.5*d,q,0,0,1,0,e-q),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,q),a.arcTo(.5*d,q,0,0,1,.5*d,2*q),a.arcTo(.5*d,q,0,0,1,0,q),a.stroke())};mxCellRenderer.registerShape("cylinder2",l);mxUtils.extend(n,mxCylinder);n.prototype.size=15;n.prototype.paintVertexShape=function(a,
b,c,d,e){var q=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"lid",!0);a.translate(b,c);0==q?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),f?(a.moveTo(0,q),a.arcTo(.5*d,q,0,0,1,.5*d,0),a.arcTo(.5*d,q,0,0,1,d,q)):(a.moveTo(0,0),a.arcTo(.5*d,q,0,0,0,.5*d,q),a.arcTo(.5*d,q,0,0,0,d,0)),a.lineTo(d,e-q),a.arcTo(.5*d,q,0,0,1,.5*d,e),a.arcTo(.5*d,q,0,0,1,0,e-q),a.close(),a.fillAndStroke(),a.setShadow(!1),f&&(a.begin(),a.moveTo(d,q),a.arcTo(.5*
-d,q,0,0,1,.5*d,2*q),a.arcTo(.5*d,q,0,0,1,0,q),a.stroke()))};mxCellRenderer.registerShape("cylinder3",m);mxUtils.extend(n,mxActor);n.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",n);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,
+d,q,0,0,1,.5*d,2*q),a.arcTo(.5*d,q,0,0,1,0,q),a.stroke()))};mxCellRenderer.registerShape("cylinder3",n);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,
b,c,d,e){a.translate(b,c);b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var q=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),f=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(k*=Math.min(d,e));k=Math.min(k,.5*d,.5*(e-c));b=Math.max(b,
k);b=Math.min(d-k,b);f||(k=0);a.begin();"left"==q?(a.moveTo(Math.max(k,0),c),a.lineTo(Math.max(k,0),0),a.lineTo(b,0),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d-Math.max(k,0),0),a.lineTo(d-Math.max(k,0),c));f?(a.moveTo(0,k+c),a.arcTo(k,k,0,0,1,k,c),a.lineTo(d-k,c),a.arcTo(k,k,0,0,1,d,k+c),a.lineTo(d,e-k),a.arcTo(k,k,0,0,1,d-k,e),a.lineTo(k,e),a.arcTo(k,k,0,0,1,0,e-k)):(a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e),a.lineTo(0,e));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,c+20),a.lineTo(d-20,c+10),a.lineTo(d-10,c+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",p);p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
@@ -3190,7 +3192,7 @@ b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(q+b,e);a.arcTo(b,b,0,0,1,q,
d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};v.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-
2*b,d)}return a};mxCellRenderer.registerShape("tape",v);mxUtils.extend(t,mxActor);t.prototype.size=.3;t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};t.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/
4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.registerShape("document",t);var Wa=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,b,c,d){var e=mxUtils.getValue(this.style,"size");return null!=e?d*Math.max(0,Math.min(1,e)):Wa.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
-this.scale,a.height*b),0,0)}return null};m.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(b/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*b*this.scale),0,Math.max(0,.3*b*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
+this.scale,a.height*b),0,0)}return null};n.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(b/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*b*this.scale),0,Math.max(0,.3*b*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),q=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(q*=Math.min(a.width,a.height));q=Math.min(q,.5*a.width,.5*(a.height-b));d||(q=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(q,0,Math.min(a.width,a.width-
c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,q,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};r.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",
15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,Math.max(0,b*this.scale))}return null};mxUtils.extend(w,mxActor);w.prototype.size=.2;w.prototype.fixedSize=20;w.prototype.isRoundable=function(){return!0};w.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
@@ -3208,8 +3210,8 @@ c+e),a.lineTo(b+q,c+e),a.quadTo(b,c+e,b,c+e-q),a.lineTo(b,c+q),a.quadTo(b,c,b+q,
this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};A.prototype.paintForeground=function(a,b,c,d,e){var q=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),
f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=q?Math.max(0,Math.min(d,f)):d*Math.max(0,Math.min(1,f));this.isRounded&&(q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*q,e*q)));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",A);mxCellRenderer.registerShape("process2",
A);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};I.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(y,mxHexagon);y.prototype.size=30;y.prototype.position=.5;y.prototype.position2=.5;y.prototype.base=20;y.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};y.prototype.isRoundable=
-function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var q=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
-this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,q+g),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,q),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",y);mxUtils.extend(G,mxActor);G.prototype.size=.2;G.prototype.fixedSize=20;G.prototype.isRoundable=function(){return!0};G.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),q=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,f+g),e-c),new mxPoint(q,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",y);mxUtils.extend(G,mxActor);G.prototype.size=.2;G.prototype.fixedSize=20;G.prototype.isRoundable=function(){return!0};G.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",G);mxUtils.extend(L,mxHexagon);L.prototype.size=.25;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};
L.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,
!0)};mxCellRenderer.registerShape("hexagon",L);mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",O);var Ua=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
@@ -3217,10 +3219,10 @@ this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.st
mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};P.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,q;do{q=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=q){var g=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],h=this.style["symbol"+f+"Width"],D=this.style["symbol"+f+"Height"],z=this.style["symbol"+f+"Spacing"]||0,C=this.style["symbol"+f+"VSpacing"]||z,F=this.style["symbol"+f+"ArcSpacing"];null!=F&&(F*=this.getArcSize(d+this.strokewidth,
e+this.strokewidth),z+=F,C+=F);var F=b,l=c,F=g==mxConstants.ALIGN_CENTER?F+(d-h)/2:g==mxConstants.ALIGN_RIGHT?F+(d-h-z):F+z,l=k==mxConstants.ALIGN_MIDDLE?l+(e-D)/2:k==mxConstants.ALIGN_BOTTOM?l+(e-D-C):l+C;a.save();g=new q;g.style=this.style;q.prototype.paintVertexShape.call(g,a,F,l,h,D);a.restore()}f++}while(null!=q)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",P);mxUtils.extend(M,mxCylinder);M.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,
-0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",M);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",
-X);mxUtils.extend(aa,mxShape);aa.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};aa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
-arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",Z);mxUtils.extend(U,mxShape);U.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",U);mxUtils.extend(T,mxShape);T.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};T.prototype.paintBackground=
-function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};T.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",T);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,
+0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",M);mxUtils.extend(W,mxShape);W.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",
+W);mxUtils.extend(ba,mxShape);ba.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};ba.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",ba);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
+arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",Z);mxUtils.extend(T,mxShape);T.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",T);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.prototype.paintBackground=
+function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};S.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,
"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};Q.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=mxUtils.getValue(this.style,"participant");null==q||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(q=this.state.view.graph.cellRenderer.getShape(q),null!=q&&q!=Q&&(q=new q,q.apply(this.state),a.save(),q.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==
mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};Q.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",Q);mxUtils.extend(R,mxShape);R.prototype.width=60;R.prototype.height=30;R.prototype.corner=10;R.prototype.getLabelMargins=function(a){return new mxRectangle(0,
0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};R.prototype.paintBackground=function(a,b,c,d,e){var f=this.corner,q=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&
@@ -3237,28 +3239,28 @@ b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?G.prototype.fixe
k,a),new mxPoint(q+k-e,g+h),new mxPoint(q,g+h),new mxPoint(q+e,a),new mxPoint(q,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k,g),new mxPoint(q+k-e,a),new mxPoint(q+k,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g+e),new mxPoint(z,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(z,
g+h-e),new mxPoint(q,g+h),new mxPoint(q,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(z,g+e),new mxPoint(q+k,g),new mxPoint(q+k,g+h-e),new mxPoint(z,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]);z=new mxPoint(z,a);d&&(c.x<q||c.x>q+k?z.y=c.y:z.x=c.x);return mxUtils.getPerimeterPoint(g,z,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize",
"0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,h=a.height,z=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(z,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h-e),new mxPoint(z,
-g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e),new mxPoint(z,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k-e,g),new mxPoint(q+k,a),new mxPoint(q+k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]);z=new mxPoint(z,a);d&&(c.x<q||c.x>q+k?z.y=c.y:z.x=c.x);return mxUtils.getPerimeterPoint(g,z,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=
-function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),q=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;
+g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e),new mxPoint(z,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k-e,g),new mxPoint(q+k,a),new mxPoint(q+k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]);z=new mxPoint(z,a);d&&(c.x<q||c.x>q+k?z.y=c.y:z.x=c.x);return mxUtils.getPerimeterPoint(g,z,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ga,mxShape);ga.prototype.size=10;ga.prototype.paintBackground=
+function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ga);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),q=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;
a.translate(b,c);a.begin();a.moveTo(d/2,f+q);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-q,f/2);a.quadTo((d-f)/2-q,f+q,d/2,f+q);a.quadTo((d+f)/2+q,f+q,(d+f)/2+q,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",na);mxUtils.extend(oa,mxShape);oa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",oa);mxUtils.extend(pa,mxShape);
-pa.prototype.inset=2;pa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(da,mxCylinder);da.prototype.jettyWidth=20;da.prototype.jettyHeight=10;da.prototype.redrawPath=function(a,b,c,d,e,f){var q=parseFloat(mxUtils.getValue(this.style,
+pa.prototype.inset=2;pa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(ea,mxCylinder);ea.prototype.jettyWidth=20;ea.prototype.jettyHeight=10;ea.prototype.redrawPath=function(a,b,c,d,e,f){var q=parseFloat(mxUtils.getValue(this.style,
"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=q/2;var q=c+q/2,g=Math.min(b,e-b),k=Math.min(g+2*b,e-b);f?(a.moveTo(c,g),a.lineTo(q,g),a.lineTo(q,g+b),a.lineTo(c,g+b),a.moveTo(c,k),a.lineTo(q,k),a.lineTo(q,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,g+b),a.lineTo(0,g+b),a.lineTo(0,g),a.lineTo(c,g),a.close());a.end()};mxCellRenderer.registerShape("module",
-da);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(a,b,c,d,e,f){var q=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=q/2;var q=c+q/2,g=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,g),a.lineTo(q,g),a.lineTo(q,g+b),a.lineTo(c,g+b),a.moveTo(c,k),a.lineTo(q,k),a.lineTo(q,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,
+ea);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(a,b,c,d,e,f){var q=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=q/2;var q=c+q/2,g=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,g),a.lineTo(q,g),a.lineTo(q,g+b),a.lineTo(c,g+b),a.moveTo(c,k),a.lineTo(q,k),a.lineTo(q,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,
e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,g+b),a.lineTo(0,g+b),a.lineTo(0,g),a.lineTo(c,g),a.close());a.end()};mxCellRenderer.registerShape("component",qa);mxUtils.extend(ua,mxRectangleShape);ua.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,q=e/2,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+q),new mxPoint(b+f,c+e),new mxPoint(b,c+q)],this.isRounded,g,!0);
a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ua);mxUtils.extend(ra,mxDoubleEllipse);ra.prototype.outerStroke=!0;ra.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",ra);mxUtils.extend(va,ra);va.prototype.outerStroke=!1;
-mxCellRenderer.registerShape("startState",va);mxUtils.extend(ja,mxArrowConnector);ja.prototype.defaultWidth=4;ja.prototype.isOpenEnded=function(){return!0};ja.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ja.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",ja);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=
-function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ga.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ga.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ga);mxUtils.extend(ha,mxActor);ha.prototype.size=30;ha.prototype.isRoundable=function(){return!0};
-ha.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ha);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=
+mxCellRenderer.registerShape("startState",va);mxUtils.extend(ka,mxArrowConnector);ka.prototype.defaultWidth=4;ka.prototype.isOpenEnded=function(){return!0};ka.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ka.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",ka);mxUtils.extend(ha,mxArrowConnector);ha.prototype.defaultWidth=10;ha.prototype.defaultArrowWidth=20;ha.prototype.getStartArrowWidth=
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ha.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ha.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ha);mxUtils.extend(ia,mxActor);ia.prototype.size=30;ia.prototype.isRoundable=function(){return!0};
+ia.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ia);mxUtils.extend(da,mxRectangleShape);da.prototype.dx=20;da.prototype.dy=20;da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=
function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*q,e*q));q=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();a.begin();a.moveTo(b+q,c);a.lineTo(b+
-q,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ea,mxActor);ea.prototype.dx=20;ea.prototype.dy=20;ea.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
-[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("corner",ea);mxUtils.extend(ma,mxActor);ma.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",ma);mxUtils.extend(ia,mxActor);ia.prototype.dx=20;ia.prototype.dy=20;ia.prototype.redrawPath=function(a,
+q,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",da);mxUtils.extend(fa,mxActor);fa.prototype.dx=20;fa.prototype.dy=20;fa.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("corner",fa);mxUtils.extend(ma,mxActor);ma.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",ma);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=20;ja.prototype.redrawPath=function(a,
b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,
-f,!0);a.end()};mxCellRenderer.registerShape("tee",ia);mxUtils.extend(Y,mxActor);Y.prototype.arrowWidth=.3;Y.prototype.arrowSize=.2;Y.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,
-c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",Y);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Y.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Y.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,
+f,!0);a.end()};mxCellRenderer.registerShape("tee",ja);mxUtils.extend(X,mxActor);X.prototype.arrowWidth=.3;X.prototype.arrowSize=.2;X.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,
+c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",X);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",X.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",X.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",sa);mxUtils.extend(K,mxActor);K.prototype.size=.1;K.prototype.fixedSize=20;K.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,
-Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",K);mxUtils.extend(ba,mxActor);ba.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",ba);mxUtils.extend(ka,
-mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ka);mxUtils.extend(V,mxActor);V.prototype.size=20;V.prototype.isRoundable=function(){return!0};V.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
-[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",V);mxUtils.extend(S,mxActor);S.prototype.size=.375;S.prototype.isRoundable=function(){return!0};S.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
-[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",S);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
+Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",K);mxUtils.extend(aa,mxActor);aa.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",aa);mxUtils.extend(ca,
+mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ca);mxUtils.extend(U,mxActor);U.prototype.size=20;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",U);mxUtils.extend(Y,mxActor);Y.prototype.size=.375;Y.prototype.isRoundable=function(){return!0};Y.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",Y);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",Ba);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,
c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Ea);mxUtils.extend(Ma,mxRhombus);Ma.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Ma);mxUtils.extend(Na,mxEllipse);Na.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();
a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",Na);mxUtils.extend(Oa,mxEllipse);Oa.prototype.paintVertexShape=function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",
@@ -3321,14 +3323,14 @@ m/2-3*q/2,d.y-3*m/2-q/2);a.stroke()}});mxMarker.addMarker("box",function(a,b,c,d
a.lineTo(d.x+m/2-3*q/2,d.y-3*m/2-q/2);a.moveTo(d.x-q/2+m/2,d.y-m/2-q/2);a.lineTo(d.x-m/2-3*q/2,d.y-3*m/2+q/2);a.stroke()}});mxMarker.addMarker("circle",Ra);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var q=d.clone(),m=Ra.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){m.apply(this,arguments);a.begin();a.moveTo(q.x-e*k,q.y-f*k);a.lineTo(q.x-2*n+e*k,q.y-2*p+f*k);a.moveTo(q.x-n-p+f*k,q.y-p+n-e*k);a.lineTo(q.x+p-n-f*k,q.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",
function(a,b,c,d,e,f,g,h,k,l){var q=e*(g+k+1),m=f*(g+k+1),n=d.clone();d.x-=q;d.y-=m;return function(){a.begin();a.moveTo(n.x-m,n.y+q);a.quadTo(d.x-m,d.y+q,d.x,d.y);a.quadTo(d.x+m,d.y-q,n.x+m,n.y-q);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var q=d.clone();q.x-=b;q.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(q.x,q.y);h?a.lineTo(q.x-e-f/2,q.y-f+e/2):a.lineTo(q.x+f/2-e,q.y-f-e/2);a.lineTo(q.x-e,q.y-f);a.close();
l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,q){f*=h+l;g*=h+l;var m=e.clone();return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-f-g/a,m.y-g+f/a):b.lineTo(m.x+g/a-f,m.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Va=function(a,b,c){return Da(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,
-g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},Da=function(a,b,c,d,e){return W(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,
-q=g.y-l.y,m=Math.sqrt(h*h+q*q);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,m,h/m,q/m,l,g,d,f)})},wa=function(a){return function(b){return[W(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",Y.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",Y.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,
-Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Sa=function(a){return function(b){return[W(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Qa=function(a,b,c){return function(d){var e=[W(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,
-parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ia=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[W(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,
-"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ta=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[W(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize",
+g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},Da=function(a,b,c,d,e){return V(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,
+q=g.y-l.y,m=Math.sqrt(h*h+q*q);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,m,h/m,q/m,l,g,d,f)})},wa=function(a){return function(b){return[V(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",X.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",X.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,
+Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Sa=function(a){return function(b){return[V(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Qa=function(a,b,c){return function(d){var e=[V(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,
+parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ia=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[V(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,
+"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ta=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[V(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize",
"0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
-!1)&&b.push(ta(a));return b}},ta=function(a,b){return W(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/
-2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},W=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=
+!1)&&b.push(ta(a));return b}},ta=function(a,b){return V(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/
+2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},V=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=
0;c<b.length;c++)this.copyStyle(b[c]);g&&g(a)};h.getPosition=c;h.setPosition=d;h.ignoreGrid=null!=e?e:!0;if(f){var k=h.positionChanged;h.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return h},Ja={link:function(a){return[Va(a,!0,10),Va(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,
mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*
(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
@@ -3338,29 +3340,29 @@ parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUt
a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=
Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ta(a,c/2))}b.push(W(a,[mxConstants.STYLE_STARTSIZE],
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ta(a,c/2))}b.push(V(a,[mxConstants.STYLE_STARTSIZE],
function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,
Math.min(b.width,c.x-b.x)))},!1,null,function(b){if(mxEvent.isControlDown(b.getEvent())&&(b=a.view.graph,b.isTableRow(a.cell)||b.isTableCell(a.cell))){for(var c=b.getSwimlaneDirection(a.style),d=b.model.getParent(a.cell),d=b.model.getChildCells(d,!0),e=[],f=0;f<d.length;f++)d[f]!=a.cell&&b.isSwimlane(d[f])&&b.getSwimlaneDirection(b.getCurrentCellStyle(d[f]))==c&&e.push(d[f]);b.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],e)}}));return b},label:Ca(),ext:Ca(),rectangle:Ca(),
-triangle:Ca(),rhombus:Ca(),umlLifeline:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[W(a,["width","height"],function(a){var b=Math.max(R.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",R.prototype.width))),
-c=Math.max(1.5*R.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",R.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(R.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*R.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[W(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
-"size",A.prototype.size));return b?new mxPoint(a.x+c,a.y+a.height/4):new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,b.x-a.x)):Math.max(0,Math.min(.5,(b.x-a.x)/a.width));this.state.style.size=c},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},cross:function(a){return[W(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",za.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},note2:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[W(a,["size"],function(a){var b=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ha.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},dataStorage:function(a){return[W(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?K.prototype.fixedSize:
-K.prototype.size));return new mxPoint(a.x+a.width-c*(b?1:a.width),a.getCenterY())},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-b.x)):Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width));this.state.style.size=c},!1)]},callout:function(a){var b=[W(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",y.prototype.position)));mxUtils.getValue(this.state.style,"base",y.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",y.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),W(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",y.prototype.position2)));
-return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),W(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",y.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},internalStorage:function(a){var b=[W(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ca.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[W(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",da.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",da.prototype.jettyHeight)));return new mxPoint(a.x+b/2,a.y+2*c)},function(a,b){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y))/2)})]},corner:function(a){return[W(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ea.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ea.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},tee:function(a){return[W(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
-b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},singleArrow:wa(1),doubleArrow:wa(.5),folder:function(a){return[W(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},document:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",t.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},tape:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",v.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[W(a,
-["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",k.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Sa(l.prototype.size),cylinder3:Sa(m.prototype.size),offPageConnector:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",S.prototype.size))));
+triangle:Ca(),rhombus:Ca(),umlLifeline:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[V(a,["width","height"],function(a){var b=Math.max(R.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",R.prototype.width))),
+c=Math.max(1.5*R.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",R.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(R.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*R.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[V(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
+"size",A.prototype.size));return b?new mxPoint(a.x+c,a.y+a.height/4):new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,b.x-a.x)):Math.max(0,Math.min(.5,(b.x-a.x)/a.width));this.state.style.size=c},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},cross:function(a){return[V(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",za.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},note2:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[V(a,["size"],function(a){var b=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ia.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},dataStorage:function(a){return[V(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?K.prototype.fixedSize:
+K.prototype.size));return new mxPoint(a.x+a.width-c*(b?1:a.width),a.getCenterY())},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-b.x)):Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width));this.state.style.size=c},!1)]},callout:function(a){var b=[V(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",y.prototype.position)));mxUtils.getValue(this.state.style,"base",y.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",y.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),V(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",y.prototype.position2)));
+return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),V(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",y.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
+c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},internalStorage:function(a){var b=[V(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",da.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",da.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[V(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ea.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
+mxUtils.getValue(this.state.style,"jettyHeight",ea.prototype.jettyHeight)));return new mxPoint(a.x+b/2,a.y+2*c)},function(a,b){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y))/2)})]},corner:function(a){return[V(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",fa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",fa.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},tee:function(a){return[V(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
+b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},singleArrow:wa(1),doubleArrow:wa(.5),folder:function(a){return[V(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},document:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
+"size",t.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},tape:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",v.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[V(a,
+["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",k.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Sa(l.prototype.size),cylinder3:Sa(n.prototype.size),offPageConnector:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));
return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var b=[Graph.createHandle(a,["size"],function(a){var b=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+b,a.y+b)},function(a,b){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,b.x-a.x)))/100})];a=Graph.createHandle(a,
["indent"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+b*a.height/200)},function(a,b){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(b.y-a.y)/a.height)))/100});b.push(a);return b},step:Ia(G.prototype.size,!0,null,!0,G.prototype.fixedSize),hexagon:Ia(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ia(B.prototype.size,!1),display:Ia(Aa.prototype.size,!1),cube:Qa(1,
-c.prototype.size,!1),card:Qa(.5,u.prototype.size,!0),loopLimit:Qa(.5,V.prototype.size,!0),trapezoid:Ta(.5,x.prototype.size,x.prototype.fixedSize),parallelogram:Ta(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=W;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
+c.prototype.size,!1),card:Qa(.5,u.prototype.size,!0),loopLimit:Qa(.5,U.prototype.size,!0),trapezoid:Ta(.5,x.prototype.size,x.prototype.fixedSize),parallelogram:Ta(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=V;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
null==mxStencilRegistry.getStencil(b)?b=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(b=mxConstants.SHAPE_SWIMLANE);b=Ja[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&(b=Ja[mxConstants.SHAPE_RECTANGLE]);null!=b&&(b=b(this.state),null!=b&&(a=null==a?b:a.concat(b)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=Ja[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ka=new mxPoint(1,0),La=new mxPoint(1,0),wa=mxUtils.toRadians(-30),Ka=mxUtils.getRotatedPoint(Ka,Math.cos(wa),Math.sin(wa)),wa=mxUtils.toRadians(-150),La=mxUtils.getRotatedPoint(La,Math.cos(wa),Math.sin(wa));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==
h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=Ka.x,l=Ka.y,m=La.x,n=La.y,q="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=p.x;var d=b-p.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);q?(c&&(p=new mxPoint(p.x+k*b,p.y+l*b),e.push(p)),p=new mxPoint(p.x+m*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+m*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+l*b));e.push(p)};var p=h;null==
@@ -3377,52 +3379,52 @@ mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwim
.5),!1));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};u.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};c.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(b+d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-d)));return a};m.prototype.getConstraints=function(a,b,c){a=[];b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(b+d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-d)));return a};n.prototype.getConstraints=function(a,b,c){a=[];b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.5*(.5*c-b)));a.push(new mxConnectionConstraint(new mxPoint(1,
0),!1,null,0,b+.5*(.5*c-b)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c-b-.5*(.5*c-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-b-.5*(.5*c-b)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*b));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*b));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-b));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-b));return a};p.prototype.getConstraints=
function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,.25*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;K.prototype.constraints=mxRectangleShape.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;Ba.prototype.constraints=mxEllipse.prototype.constraints;
-Ea.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraints=mxEllipse.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;Ha.prototype.constraints=mxRectangleShape.prototype.constraints;Aa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(b,c/2),e=Math.min(b-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};da.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,
-"jettyWidth",da.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",da.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,b),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(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};da.prototype.constraints=mxRectangleShape.prototype.constraints;K.prototype.constraints=mxRectangleShape.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;Ba.prototype.constraints=mxEllipse.prototype.constraints;
+Ea.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraints=mxEllipse.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;Ha.prototype.constraints=mxRectangleShape.prototype.constraints;Aa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(b,c/2),e=Math.min(b-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};ea.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,
+"jettyWidth",ea.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ea.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,b),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(1,0),!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(0,1),!1,null,b),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(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(c-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(c-.5*a,3.5*a))];c>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,b));c>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,b));c>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,b));return d};V.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
+.5),!1,null,b));c>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,b));return d};U.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];W.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
.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)];qa.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)];n.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,
+.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)];m.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)];v.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)];G.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)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
+.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)];ga.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)];w.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;t.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;ia.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
+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;ja.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*b+.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(b+d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*b-.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return a};ea.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return a};fa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return a};ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];Y.prototype.getConstraints=
+1),!1));return a};ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];X.prototype.getConstraints=
function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-e),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-e),c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));return a};sa.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Y.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Y.prototype.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-e),c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));return a};sa.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",X.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",X.prototype.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};za.prototype.getConstraints=
function(a,b,c){a=[];var d=Math.min(c,b),e=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(c-e)/2,f=d+e,g=(b-e)/2,e=g+e;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
-.9),!1)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+.9),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();a=b.deleteCells(b.getDeletableCells(b.getSelectionCells()),a);null!=a&&b.setSelectionCells(a)}var c=this.editorUi,d=c.editor,b=d.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(c.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("smartFit",function(){b.popupMenuHandler.hideMenu();var a=
b.view.scale,d=b.view.translate.x,e=b.view.translate.y;c.actions.get("resetView").funct();1E-5>Math.abs(a-b.view.scale)&&d==b.view.translate.x&&e==b.view.translate.y&&c.actions.get(b.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){b.isEnabled()&&(b.isSelectionEmpty()?c.actions.get("smartFit").funct():b.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));
-window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);d.graph.setSelectionCells(d.graph.importGraphModel(c.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));c.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=f;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=f;this.addAction("saveAs...",function(){c.saveFile(!0)},null,
+window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);d.graph.setSelectionCells(d.graph.importGraphModel(c.documentElement))}catch(n){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+n.message)}}));c.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=f;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=f;this.addAction("saveAs...",function(){c.saveFile(!0)},null,
null,Editor.ctrlKey+"+Shift+S").isEnabled=f;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(c);c.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){c.showDialog((new PageSetupDialog(c)).container,320,220,!0,!0)}).isEnabled=f;this.addAction("print...",function(){c.showDialog((new PrintDialog(c)).container,300,180,!0,!0)},null,"sprite-print",
Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(b,null,10,10)});this.addAction("undo",function(){c.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){c.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=c.copyXml(),null!=a&&b.removeCells(a)}catch(k){}null==a&&mxClipboard.cut(b)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{c.copyXml()}catch(g){}try{mxClipboard.copy(b)}catch(g){c.handleError(g)}},
null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(c.readGraphModelFromClipboard(function(a){if(null!=a){b.getModel().beginUpdate();try{c.pasteXml(a,!0)}finally{b.getModel().endUpdate()}}else mxClipboard.paste(b)}),a=!0)}catch(k){}a||mxClipboard.paste(b)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){function d(a){if(null!=a){for(var c=!0,d=0;d<
a.length&&c;d++)c=c&&b.model.isEdge(a[d]);var e=b.view.translate,d=b.view.scale,f=e.x,g=e.y,e=null;if(1==a.length&&c){var h=b.getCellGeometry(a[0]);null!=h&&(e=h.getTerminalPoint(!0))}e=null!=e?e:b.getBoundingBoxFromGeometry(a,c);null!=e&&(c=Math.round(b.snap(b.popupMenuHandler.triggerX/d-f)),d=Math.round(b.snap(b.popupMenuHandler.triggerY/d-g)),b.cellsMoved(a,c-e.x,d-e.y))}}function e(){b.getModel().beginUpdate();try{d(mxClipboard.paste(b))}finally{b.getModel().endUpdate()}}if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){a=
-!1;try{Editor.enableNativeCipboard&&(c.readGraphModelFromClipboard(function(a){if(null!=a){b.getModel().beginUpdate();try{d(c.pasteXml(a,!0))}finally{b.getModel().endUpdate()}}else e()}),a=!0)}catch(m){}a||e()}});this.addAction("copySize",function(){var a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&&(a=b.getCellGeometry(a),null!=a&&(c.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(b.isEnabled()&&!b.isSelectionEmpty()&&
+!1;try{Editor.enableNativeCipboard&&(c.readGraphModelFromClipboard(function(a){if(null!=a){b.getModel().beginUpdate();try{d(c.pasteXml(a,!0))}finally{b.getModel().endUpdate()}}else e()}),a=!0)}catch(n){}a||e()}});this.addAction("copySize",function(){var a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&&(a=b.getCellGeometry(a),null!=a&&(c.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(b.isEnabled()&&!b.isSelectionEmpty()&&
null!=c.copiedSize){b.getModel().beginUpdate();try{for(var a=b.getResizableCells(b.getSelectionCells()),d=0;d<a.length;d++)if(b.getModel().isVertex(a[d])){var e=b.getCellGeometry(a[d]);null!=e&&(e=e.clone(),e.width=c.copiedSize.width,e.height=c.copiedSize.height,b.getModel().setGeometry(a[d],e))}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=b.getSelectionCell()||b.getModel().getRoot();b.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||
(c.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function d(c,d){var f=e.getValue(c);d=c.cloneValue(d);d.removeAttribute("placeholders");null==f||isNaN(f.nodeType)||d.setAttribute("placeholders",f.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||d.setAttribute("label",b.convertValueToString(c));e.setValue(c,d)}var e=b.getModel();if(b.isEnabled()&&!b.isSelectionEmpty()&&null!=c.copiedValue){e.beginUpdate();try{var f=b.getEditableCells(b.getSelectionCells());
if(0==f.length)d(e.getRoot(),c.copiedValue);else for(var g=0;g<f.length;g++)d(f[g],c.copiedValue)}finally{e.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(b){a(null!=b&&mxEvent.isControlDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!b.isSelectionEmpty()){b.getModel().beginUpdate();try{for(var a=b.getSelectionCells(),c=0;c<a.length;c++)b.cellLabelChanged(a[c],"")}finally{b.getModel().endUpdate()}}},
@@ -3506,12 +3508,12 @@ b)})));this.put("file",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItem
Menus.prototype.addMenu=function(a,c,d){var b=this.get(a);null!=b&&(c.showDisabled||b.isEnabled())&&this.get(a).execute(c,d)};
Menus.prototype.addInsertTableCellItem=function(a,c){var d=this.editorUi.editor.graph;this.addInsertTableItem(a,mxUtils.bind(this,function(a,c,e){c=mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)?d.createCrossFunctionalSwimlane(c,e):d.createTable(c,e,null,null,mxEvent.isShiftDown(a)?"Table":null);a=mxEvent.isAltDown(a)?d.getFreeInsertPoint():d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([c],!0));a=d.importCells([c],a.x,a.y);null!=a&&0<a.length&&(d.scrollCellToVisible(a[0]),d.setSelectionCells(a))}),
c)};
-Menus.prototype.addInsertTableItem=function(a,c,d){function b(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=e.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){h=e.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=k,f=Math.min(20,h.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),m=d.rows.length;m<f;m++)for(var t=d.insertRow(m),w=0;w<d.rows[0].cells.length;w++)t.insertCell(-1);for(m=
-0;m<d.rows.length;m++)for(t=d.rows[m],w=t.cells.length;w<c;w++)t.insertCell(-1);l.innerHTML=g.cellIndex+1+"x"+(h.sectionRowIndex+1);for(d=0;d<k.rows.length;d++)for(f=k.rows[d],c=0;c<f.cells.length;c++)m=f.cells[c],d==h.sectionRowIndex&&c==g.cellIndex&&(b="blue"==m.style.backgroundColor),m.style.backgroundColor=d<=h.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}c=null!=c?c:mxUtils.bind(this,function(a,c,d){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
+Menus.prototype.addInsertTableItem=function(a,c,d){function b(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=e.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){h=e.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=k,f=Math.min(20,h.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),n=d.rows.length;n<f;n++)for(var t=d.insertRow(n),w=0;w<d.rows[0].cells.length;w++)t.insertCell(-1);for(n=
+0;n<d.rows.length;n++)for(t=d.rows[n],w=t.cells.length;w<c;w++)t.insertCell(-1);l.innerHTML=g.cellIndex+1+"x"+(h.sectionRowIndex+1);for(d=0;d<k.rows.length;d++)for(f=k.rows[d],c=0;c<f.cells.length;c++)n=f.cells[c],d==h.sectionRowIndex&&c==g.cellIndex&&(b="blue"==n.style.backgroundColor),n.style.backgroundColor=d<=h.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}c=null!=c?c:mxUtils.bind(this,function(a,c,d){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
"TD");if(null!=a&&null!=e.cellEditor.textarea){e.getParentByName(a,"TR");var f=e.cellEditor.textarea.getElementsByTagName("table");a=[];for(var g=0;g<f.length;g++)a.push(f[g]);e.container.focus();e.pasteHtmlAtCaret(b(c,d));c=e.cellEditor.textarea.getElementsByTagName("table");if(c.length==a.length+1)for(g=c.length-1;0<=g;g--)if(0==g||c[g]!=a[g-1]){e.selectNode(c[g].rows[0].cells[0]);break}}});var e=this.editorUi.editor.graph,h=null,g=null;a=a.addItem("",null,null,d,null,null,null,!0);a.firstChild.innerHTML=
"";var k=function(a,b){var c=document.createElement("table");c.setAttribute("border","1");c.style.borderCollapse="collapse";c.style.borderStyle="solid";c.setAttribute("cellPadding","8");for(var d=0;d<a;d++)for(var e=c.insertRow(d),f=0;f<b;f++)e.insertCell(-1);return c}(5,5);a.firstChild.appendChild(k);var l=document.createElement("div");l.style.padding="4px";l.style.fontSize=Menus.prototype.defaultFontSize+"px";l.innerHTML="1x1";a.firstChild.appendChild(l);mxEvent.addGestureListeners(k,null,null,
mxUtils.bind(this,function(a){var b=f(a);null!=g&&null!=h&&b&&(c(a,h.sectionRowIndex+1,g.cellIndex+1),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(k,"mouseover",f)};
-Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,h){return this.showIconOnly(a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var n=c[f];if(a.getModel().isEdge(n)){if(h){var p=a.getCellGeometry(n);null!=p&&(p=p.clone(),p.points=null,a.getModel().setGeometry(n,p))}for(var r=0;r<d.length;r++)a.setCellStyles(d[r],b[r],[n]);e.push(n)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
+Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,h){return this.showIconOnly(a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var m=c[f];if(a.getModel().isEdge(m)){if(h){var p=a.getCellGeometry(m);null!=p&&(p=p.clone(),p.points=null,a.getModel().setGeometry(m,p))}for(var r=0;r<d.length;r++)a.setCellStyles(d[r],b[r],[m]);e.push(m)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
"keys",d,"values",b,"cells",e))}finally{a.getModel().endUpdate()}}),e,f))};Menus.prototype.showIconOnly=function(a){var c=a.getElementsByTagName("td");for(i=0;i<c.length;i++)"mxPopupMenuItem"==c[i].getAttribute("class")&&(c[i].style.display="none");return a};
Menus.prototype.styleChange=function(a,c,d,b,f,e,h,g,k){var l=this.createStyleChangeFunction(d,b);a=a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=h&&a.cellEditor.isContentEditing()?h():l(g)}),e,f);k&&this.showIconOnly(a);return a};
Menus.prototype.createStyleChangeFunction=function(a,c){return mxUtils.bind(this,function(d){var b=this.editorUi.editor.graph;b.stopEditing(!1);b.getModel().beginUpdate();try{for(var f=b.getEditableCells(b.getSelectionCells()),e=!1,h=0;h<a.length;h++)if(b.setCellStyles(a[h],c[h],f),a[h]==mxConstants.STYLE_ALIGN&&b.updateLabelElements(f,function(a){a.removeAttribute("align");a.style.textAlign=null}),a[h]==mxConstants.STYLE_FONTFAMILY||"fontSource"==a[h])e=!0;if(e)for(e=0;e<f.length;e++)0==b.model.getChildCount(f[e])&&
@@ -3587,55 +3589,55 @@ Toolbar.prototype.addMenuHandler=function(a,c,d,b){if(null!=d){var f=this.editor
e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();e.destroy()});e.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}h=!0;mxEvent.consume(g)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){h=this.currentElt!=a;b.preventDefault()}))}};
Toolbar.prototype.destroy=function(){null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)};var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.frameBorder="0";a.setAttribute("width",(Editor.useLocalStorage?640:320)+0+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+0+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=function(a,c,d,b){function f(){var b=g.value;/(^#?[a-zA-Z0-9]*$)/.test(b)?("none"!=
b&&"#"!=b.charAt(0)&&(b="#"+b),ColorDialog.addRecentColor("none"!=b?b.substring(1):b,12),k(b),a.hideDialog()):a.handleError({message:mxResources.get("invalidInput")})}function e(){var a=h(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}function h(a,b,c,d){b=null!=b?b:12;var h=document.createElement("table");h.style.borderCollapse="collapse";h.setAttribute("cellspacing","0");h.style.marginBottom="20px";h.style.cellSpacing="0px";
-var k=document.createElement("tbody");h.appendChild(k);for(var n=a.length/b,p=0;p<n;p++){for(var r=document.createElement("tr"),t=0;t<b;t++)(function(a){var b=document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;r.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==
+var k=document.createElement("tbody");h.appendChild(k);for(var m=a.length/b,p=0;p<m;p++){for(var r=document.createElement("tr"),t=0;t<b;t++)(function(a){var b=document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;r.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==
a?(l.fromString("ffffff"),g.value="none"):l.fromString(a)}),mxEvent.addListener(b,"dblclick",f))})(a[p*b+t]);k.appendChild(r)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",r.appendChild(a),mxEvent.addListener(a,
-"click",function(){ColorDialog.resetRecentColors();h.parentNode.replaceChild(e(),h)}));m.appendChild(h);return h}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";g.style.width="216px";mxClient.IS_IE&&(g.style.marginTop="10px",document.body.appendChild(g));var k=null!=d?d:this.createApplyFunction();this.init=function(){mxClient.IS_TOUCH||g.focus()};var l=new mxJSColor.color(g);l.pickerOnfocus=!1;l.showPicker();d=document.createElement("div");mxJSColor.picker.box.style.position=
-"relative";mxJSColor.picker.box.style.width="230px";mxJSColor.picker.box.style.height="100px";mxJSColor.picker.box.style.paddingBottom="10px";d.appendChild(mxJSColor.picker.box);var m=document.createElement("center");d.appendChild(g);mxUtils.br(d);e();var n=h(this.presetColors);n.style.marginBottom="8px";n=h(this.defaultColors);n.style.marginBottom="16px";d.appendChild(m);n=document.createElement("div");n.style.textAlign="right";n.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),
-function(){a.hideDialog();null!=b&&b()});p.className="geBtn";a.editor.cancelFirst&&n.appendChild(p);var r=mxUtils.button(mxResources.get("apply"),f);r.className="geBtn gePrimaryBtn";n.appendChild(r);a.editor.cancelFirst||n.appendChild(p);null!=c&&("none"==c?(l.fromString("ffffff"),g.value="none"):l.fromString(c));d.appendChild(n);this.picker=l;this.colorInput=g;mxEvent.addListener(d,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=d};
+"click",function(){ColorDialog.resetRecentColors();h.parentNode.replaceChild(e(),h)}));n.appendChild(h);return h}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";g.style.width="216px";mxClient.IS_IE&&(g.style.marginTop="10px",document.body.appendChild(g));var k=null!=d?d:this.createApplyFunction();this.init=function(){mxClient.IS_TOUCH||g.focus()};var l=new mxJSColor.color(g);l.pickerOnfocus=!1;l.showPicker();d=document.createElement("div");mxJSColor.picker.box.style.position=
+"relative";mxJSColor.picker.box.style.width="230px";mxJSColor.picker.box.style.height="100px";mxJSColor.picker.box.style.paddingBottom="10px";d.appendChild(mxJSColor.picker.box);var n=document.createElement("center");d.appendChild(g);mxUtils.br(d);e();var m=h(this.presetColors);m.style.marginBottom="8px";m=h(this.defaultColors);m.style.marginBottom="16px";d.appendChild(n);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),
+function(){a.hideDialog();null!=b&&b()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var r=mxUtils.button(mxResources.get("apply"),f);r.className="geBtn gePrimaryBtn";m.appendChild(r);a.editor.cancelFirst||m.appendChild(p);null!=c&&("none"==c?(l.fromString("ffffff"),g.value="none"):l.fromString(c));d.appendChild(m);this.picker=l;this.colorInput=g;mxEvent.addListener(d,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=d};
ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" ");ColorDialog.prototype.defaultColors="none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" ");
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var c=this.editorUi.editor.graph;c.getModel().beginUpdate();try{c.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var d=document.createElement("h3");mxUtils.write(d,mxResources.get("about")+" GraphEditor");c.appendChild(d);d=document.createElement("img");d.style.border="0px";d.setAttribute("width","176");d.setAttribute("width","151");d.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(d);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);d=document.createElement("a");d.setAttribute("href",
-"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},TextareaDialog=function(a,c,d,b,f,e,h,g,k,l,m,n,p,r){h=null!=h?h:300;g=null!=g?g:120;l=null!=l?l:!1;var u,v,t=document.createElement("table"),w=document.createElement("tbody");u=document.createElement("tr");v=document.createElement("td");
-v.style.fontSize="10pt";v.style.width="100px";mxUtils.write(v,c);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");var x=document.createElement("textarea");m&&x.setAttribute("wrap","off");x.setAttribute("spellcheck","false");x.setAttribute("autocorrect","off");x.setAttribute("autocomplete","off");x.setAttribute("autocapitalize","off");mxUtils.write(x,d||"");x.style.resize="none";x.style.width=h+"px";x.style.height=g+"px";this.textarea=x;this.init=function(){x.focus();
+"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},TextareaDialog=function(a,c,d,b,f,e,h,g,k,l,n,m,p,r){h=null!=h?h:300;g=null!=g?g:120;l=null!=l?l:!1;var u,v,t=document.createElement("table"),w=document.createElement("tbody");u=document.createElement("tr");v=document.createElement("td");
+v.style.fontSize="10pt";v.style.width="100px";mxUtils.write(v,c);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");var x=document.createElement("textarea");n&&x.setAttribute("wrap","off");x.setAttribute("spellcheck","false");x.setAttribute("autocorrect","off");x.setAttribute("autocomplete","off");x.setAttribute("autocapitalize","off");mxUtils.write(x,d||"");x.style.resize="none";x.style.width=h+"px";x.style.height=g+"px";this.textarea=x;this.init=function(){x.focus();
x.scrollTop=0};v.appendChild(x);u.appendChild(v);w.appendChild(u);u=document.createElement("tr");v=document.createElement("td");v.style.paddingTop="14px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");null!=p&&(c=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(p)}),c.className="geBtn",v.appendChild(c));if(null!=r)for(c=0;c<r.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,x)});c.className="geBtn";v.appendChild(c)})(r[c][0],r[c][1]);e=mxUtils.button(e||
-mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&v.appendChild(e);null!=k&&k(v,x);null!=b&&(k=mxUtils.button(n||mxResources.get("apply"),function(){l||a.hideDialog();b(x.value)}),k.className="geBtn gePrimaryBtn",v.appendChild(k));a.editor.cancelFirst||v.appendChild(e);u.appendChild(v);w.appendChild(u);t.appendChild(w);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");
+mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&v.appendChild(e);null!=k&&k(v,x);null!=b&&(k=mxUtils.button(m||mxResources.get("apply"),function(){l||a.hideDialog();b(x.value)}),k.className="geBtn gePrimaryBtn",v.appendChild(k));a.editor.cancelFirst||v.appendChild(e);u.appendChild(v);w.appendChild(u);t.appendChild(w);this.container=t},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");
d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},
!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className="geBtn";if(a.editor.graph.isEnabled()){var e=
document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),f.appendChild(e));c.appendChild(f);
-e=mxUtils.button(mxResources.get("ok"),function(){var b=Graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(n){c=n}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,
-l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(n){c=n}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};EditDiagramDialog.showNewWindowOption=!0;
-var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+n.value:a+"."+n.value;"xml"===n.value?(p.setAttribute("disabled","true"),r.setAttribute("disabled","true"),u.setAttribute("disabled","true"),E.setAttribute("disabled","true")):(p.removeAttribute("disabled"),r.removeAttribute("disabled"),u.removeAttribute("disabled"),E.removeAttribute("disabled"));"png"===n.value||"svg"===n.value||"pdf"===n.value?x.removeAttribute("disabled"):x.setAttribute("disabled",
-"disabled");"png"===n.value||"jpg"===n.value||"pdf"===n.value?B.removeAttribute("disabled"):B.setAttribute("disabled","disabled");"png"===n.value?(v.removeAttribute("disabled"),t.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"))}function d(){r.style.backgroundColor=r.value*u.value>MAX_AREA||0>=r.value?"red":"";u.style.backgroundColor=r.value*u.value>MAX_AREA||0>=u.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/
-e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");f.appendChild(k);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";k=document.createElement("td");k.appendChild(m);f.appendChild(k);
-l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");f.appendChild(k);var n=document.createElement("select");n.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));n.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),n.appendChild(k));
-k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));n.appendChild(k);k=document.createElement("option");k.setAttribute("value","pdf");mxUtils.write(k,mxResources.get("formatPdf"));n.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));n.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),
-n.appendChild(k));k=document.createElement("td");k.appendChild(n);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");f.appendChild(k);var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("value","100");p.style.width="180px";k=document.createElement("td");k.appendChild(p);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");
+e=mxUtils.button(mxResources.get("ok"),function(){var b=Graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(m){c=m}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,
+l);var n=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(n));a.hideDialog()}catch(m){c=m}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};EditDiagramDialog.showNewWindowOption=!0;
+var ExportDialog=function(a){function c(){var a=n.value,b=a.lastIndexOf(".");n.value=0<b?a.substring(0,b+1)+m.value:a+"."+m.value;"xml"===m.value?(p.setAttribute("disabled","true"),r.setAttribute("disabled","true"),u.setAttribute("disabled","true"),E.setAttribute("disabled","true")):(p.removeAttribute("disabled"),r.removeAttribute("disabled"),u.removeAttribute("disabled"),E.removeAttribute("disabled"));"png"===m.value||"svg"===m.value||"pdf"===m.value?x.removeAttribute("disabled"):x.setAttribute("disabled",
+"disabled");"png"===m.value||"jpg"===m.value||"pdf"===m.value?B.removeAttribute("disabled"):B.setAttribute("disabled","disabled");"png"===m.value?(v.removeAttribute("disabled"),t.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"))}function d(){r.style.backgroundColor=r.value*u.value>MAX_AREA||0>=r.value?"red":"";u.style.backgroundColor=r.value*u.value>MAX_AREA||0>=u.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/
+e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");f.appendChild(k);var n=document.createElement("input");n.setAttribute("value",a.editor.getOrCreateFilename());n.style.width="180px";k=document.createElement("td");k.appendChild(n);f.appendChild(k);
+l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");f.appendChild(k);var m=document.createElement("select");m.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));m.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),m.appendChild(k));
+k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));m.appendChild(k);k=document.createElement("option");k.setAttribute("value","pdf");mxUtils.write(k,mxResources.get("formatPdf"));m.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));m.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),
+m.appendChild(k));k=document.createElement("td");k.appendChild(m);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");f.appendChild(k);var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("value","100");p.style.width="180px";k=document.createElement("td");k.appendChild(p);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");
k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");f.appendChild(k);var r=document.createElement("input");r.setAttribute("value",h);r.style.width="180px";k=document.createElement("td");k.appendChild(r);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");f.appendChild(k);var u=document.createElement("input");u.setAttribute("value",g);u.style.width="180px";k=document.createElement("td");
k.appendChild(u);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("dpi")+":");f.appendChild(k);var v=document.createElement("select");v.style.width="180px";k=document.createElement("option");k.setAttribute("value","100");mxUtils.write(k,"100dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","200");mxUtils.write(k,"200dpi");v.appendChild(k);k=document.createElement("option");
k.setAttribute("value","300");mxUtils.write(k,"300dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","400");mxUtils.write(k,"400dpi");v.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));v.appendChild(k);var t=document.createElement("input");t.style.width="180px";t.style.display="none";t.setAttribute("value","100");t.setAttribute("type","number");t.setAttribute("min","50");t.setAttribute("step",
"50");var w=!1;mxEvent.addListener(v,"change",function(){"custom"==this.value?(this.style.display="none",t.style.display="",t.focus()):(t.value=this.value,w||(p.value=this.value))});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value);isNaN(a)||0>=a?t.style.backgroundColor="red":(t.style.backgroundColor="",w||(p.value=a))});k=document.createElement("td");k.appendChild(v);k.appendChild(t);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize=
"10pt";mxUtils.write(k,mxResources.get("background")+":");f.appendChild(k);var x=document.createElement("input");x.setAttribute("type","checkbox");x.checked=null==b.background||b.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(x);mxUtils.write(k,mxResources.get("transparent"));f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("grid")+":");f.appendChild(k);var B=document.createElement("input");
B.setAttribute("type","checkbox");B.checked=!1;k=document.createElement("td");k.appendChild(B);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");f.appendChild(k);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("value",ExportDialog.lastBorderValue);E.style.width="180px";k=document.createElement("td");k.appendChild(E);f.appendChild(k);l.appendChild(f);
-e.appendChild(l);mxEvent.addListener(n,"change",c);c();mxEvent.addListener(p,"change",function(){w=!0;var a=Math.max(0,parseFloat(p.value)||100)/100;p.value=parseFloat((100*a).toFixed(2));0<h?(r.value=Math.floor(h*a),u.value=Math.floor(g*a)):(p.value="100",r.value=h,u.value=g);d()});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),u.value=Math.floor(g*a)):(p.value="100",r.value=h,u.value=g);d()});mxEvent.addListener(u,"change",function(){var a=
-parseInt(u.value)/g;0<a?(p.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(h*a)):(p.value="100",r.value=h,u.value=g);d()});f=document.createElement("tr");k=document.createElement("td");k.setAttribute("align","right");k.style.paddingTop="22px";k.colSpan=2;var H=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=m.value,d=n.value,e=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(E.value)),
+e.appendChild(l);mxEvent.addListener(m,"change",c);c();mxEvent.addListener(p,"change",function(){w=!0;var a=Math.max(0,parseFloat(p.value)||100)/100;p.value=parseFloat((100*a).toFixed(2));0<h?(r.value=Math.floor(h*a),u.value=Math.floor(g*a)):(p.value="100",r.value=h,u.value=g);d()});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),u.value=Math.floor(g*a)):(p.value="100",r.value=h,u.value=g);d()});mxEvent.addListener(u,"change",function(){var a=
+parseInt(u.value)/g;0<a?(p.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(h*a)):(p.value="100",r.value=h,u.value=g);d()});f=document.createElement("tr");k=document.createElement("td");k.setAttribute("align","right");k.style.paddingTop="22px";k.colSpan=2;var H=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=n.value,d=m.value,e=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(E.value)),
g=b.background,h=Math.max(1,parseInt(t.value));if(("svg"==d||"png"==d||"pdf"==d)&&x.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f,h,B.checked)}}));H.className="geBtn gePrimaryBtn";var A=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});A.className="geBtn";a.editor.cancelFirst?(k.appendChild(A),k.appendChild(H)):(k.appendChild(H),k.appendChild(A));f.appendChild(k);l.appendChild(f);e.appendChild(l);
this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
-ExportDialog.exportFile=function(a,c,d,b,f,e,h,g){g=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(g.getSvg(b,f,e)),c,d);else{var k=g.getGraphBounds(),l=mxUtils.createXmlDocument(),m=l.createElement("output");l.appendChild(m);l=new mxXmlCanvas2D(m);l.translate(Math.floor((e/f-k.x)/g.view.scale),Math.floor((e/f-k.y)/g.view.scale));l.scale(f/g.view.scale);(new mxImageExport).drawState(g.getView().getState(g.model.root),
-l);m="xml="+encodeURIComponent(mxUtils.getXml(m));l=Math.ceil(k.width*f/g.view.scale+2*e);f=Math.ceil(k.height*f/g.view.scale+2*e);m.length<=MAX_REQUEST_SIZE&&l*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+l+"&h="+f+"&"+m+"&dpi="+h)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
+ExportDialog.exportFile=function(a,c,d,b,f,e,h,g){g=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(g.getSvg(b,f,e)),c,d);else{var k=g.getGraphBounds(),l=mxUtils.createXmlDocument(),n=l.createElement("output");l.appendChild(n);l=new mxXmlCanvas2D(n);l.translate(Math.floor((e/f-k.x)/g.view.scale),Math.floor((e/f-k.y)/g.view.scale));l.scale(f/g.view.scale);(new mxImageExport).drawState(g.getView().getState(g.model.root),
+l);n="xml="+encodeURIComponent(mxUtils.getXml(n));l=Math.ceil(k.width*f/g.view.scale+2*e);f=Math.ceil(k.height*f/g.view.scale+2*e);n.length<=MAX_REQUEST_SIZE&&l*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+l+"&h="+f+"&"+n+"&dpi="+h)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,c,d,b){c.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(d)+"&format="+b)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
var EditDataDialog=function(a,c){function d(){0<B.value.length?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",e||"");e=h}var g={};try{var k=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(c),"metaData",null);null!=k&&(g=JSON.parse(k))}catch(A){}var l=new mxForm("properties");l.table.style.width=
-"100%";for(var m=e.attributes,n=[],p=[],r=0,u=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,c):null,v=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",
-mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin="0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<n.length;c++){if(n[c]==a){p[c]=null;l.table.deleteRow(b+(null!=u?1:0));break}null!=p[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},h=function(a,b,c){n[a]=b;p[a]=l.addTextarea(n[r]+":",c,
-2);p[a].style.width="100%";0<c.indexOf("\n")&&p[a].setAttribute("rows","2");v(p[a],b);null!=g[b]&&0==g[b].editable&&p[a].setAttribute("disabled","disabled")},k=[],t=f.getModel().getParent(c)==f.getModel().getRoot(),w=0;w<m.length;w++)!t&&"label"==m[w].nodeName||"placeholders"==m[w].nodeName||k.push({name:m[w].nodeName,value:m[w].nodeValue});k.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=u){m=document.createElement("div");m.style.width="100%";m.style.fontSize="11px";m.style.textAlign=
-"center";mxUtils.write(m,u);var x=l.addField(mxResources.get("id")+":",m);mxEvent.addListener(m,"dblclick",function(b){if(mxEvent.isControlDown(b)||mxEvent.isMetaDown(b))b=new FilenameDialog(a,u,mxResources.get("apply"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&b!=u&&(null==f.getModel().getCell(b)?(f.getModel().cellRemoved(c),c.setId(b),u=b,x.innerHTML=mxUtils.htmlEntities(b),f.getModel().cellAdded(c)):a.handleError({message:mxResources.get("alreadyExst",[b])}))}),mxResources.get("id")),
+"100%";for(var n=e.attributes,m=[],p=[],r=0,u=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,c):null,v=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",
+mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin="0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<m.length;c++){if(m[c]==a){p[c]=null;l.table.deleteRow(b+(null!=u?1:0));break}null!=p[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},h=function(a,b,c){m[a]=b;p[a]=l.addTextarea(m[r]+":",c,
+2);p[a].style.width="100%";0<c.indexOf("\n")&&p[a].setAttribute("rows","2");v(p[a],b);null!=g[b]&&0==g[b].editable&&p[a].setAttribute("disabled","disabled")},k=[],t=f.getModel().getParent(c)==f.getModel().getRoot(),w=0;w<n.length;w++)!t&&"label"==n[w].nodeName||"placeholders"==n[w].nodeName||k.push({name:n[w].nodeName,value:n[w].nodeValue});k.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=u){n=document.createElement("div");n.style.width="100%";n.style.fontSize="11px";n.style.textAlign=
+"center";mxUtils.write(n,u);var x=l.addField(mxResources.get("id")+":",n);mxEvent.addListener(n,"dblclick",function(b){if(mxEvent.isControlDown(b)||mxEvent.isMetaDown(b))b=new FilenameDialog(a,u,mxResources.get("apply"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&b!=u&&(null==f.getModel().getCell(b)?(f.getModel().cellRemoved(c),c.setId(b),u=b,x.innerHTML=mxUtils.htmlEntities(b),f.getModel().cellAdded(c)):a.handleError({message:mxResources.get("alreadyExst",[b])}))}),mxResources.get("id")),
a.showDialog(b.container,300,80,!0,!0),b.init()})}for(w=0;w<k.length;w++)h(r,k[w].name,k[w].value),r++;k=document.createElement("div");k.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";k.appendChild(l.table);h=document.createElement("div");h.style.boxSizing="border-box";h.style.paddingRight="160px";h.style.whiteSpace="nowrap";h.style.marginTop="6px";h.style.width="100%";var B=document.createElement("input");B.setAttribute("placeholder",mxResources.get("enterPropertyName"));
-B.setAttribute("type","text");B.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");B.style.boxSizing="border-box";B.style.marginLeft="2px";B.style.width="100%";h.appendChild(B);k.appendChild(h);b.appendChild(k);var E=mxUtils.button(mxResources.get("addProperty"),function(){var a=B.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(n,a);if(0<=b&&null!=p[b])p[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(n.splice(b,1),p.splice(b,1));
-n.push(a);var c=l.addTextarea(a+":","",2);c.style.width="100%";p.push(c);v(c,a);c.focus()}E.setAttribute("disabled","disabled");B.value=""}catch(G){mxUtils.alert(G)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<p.length?p[0].focus():B.focus()};E.setAttribute("title",mxResources.get("addProperty"));E.setAttribute("disabled","disabled");E.style.textOverflow="ellipsis";E.style.position="absolute";E.style.overflow="hidden";E.style.width="144px";E.style.right="0px";E.className=
-"geBtn";h.appendChild(E);k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});k.className="geBtn";h=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<n.length;d++)null==p[d]?e.removeAttribute(n[d]):(e.setAttribute(n[d],p[d].value),b=b||"placeholder"==n[d]&&"1"==e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(y){mxUtils.alert(y)}});h.className=
-"geBtn gePrimaryBtn";mxEvent.addListener(B,"keyup",d);mxEvent.addListener(B,"change",d);m=document.createElement("div");m.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){t=document.createElement("span");t.style.marginRight="10px";w=document.createElement("input");w.setAttribute("type","checkbox");w.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(w.setAttribute("checked",
+B.setAttribute("type","text");B.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");B.style.boxSizing="border-box";B.style.marginLeft="2px";B.style.width="100%";h.appendChild(B);k.appendChild(h);b.appendChild(k);var E=mxUtils.button(mxResources.get("addProperty"),function(){var a=B.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(m,a);if(0<=b&&null!=p[b])p[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(m.splice(b,1),p.splice(b,1));
+m.push(a);var c=l.addTextarea(a+":","",2);c.style.width="100%";p.push(c);v(c,a);c.focus()}E.setAttribute("disabled","disabled");B.value=""}catch(G){mxUtils.alert(G)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<p.length?p[0].focus():B.focus()};E.setAttribute("title",mxResources.get("addProperty"));E.setAttribute("disabled","disabled");E.style.textOverflow="ellipsis";E.style.position="absolute";E.style.overflow="hidden";E.style.width="144px";E.style.right="0px";E.className=
+"geBtn";h.appendChild(E);k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});k.className="geBtn";h=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<m.length;d++)null==p[d]?e.removeAttribute(m[d]):(e.setAttribute(m[d],p[d].value),b=b||"placeholder"==m[d]&&"1"==e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(y){mxUtils.alert(y)}});h.className=
+"geBtn gePrimaryBtn";mxEvent.addListener(B,"keyup",d);mxEvent.addListener(B,"change",d);n=document.createElement("div");n.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){t=document.createElement("span");t.style.marginRight="10px";w=document.createElement("input");w.setAttribute("type","checkbox");w.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(w.setAttribute("checked",
"checked"),w.defaultChecked=!0);mxEvent.addListener(w,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});t.appendChild(w);mxUtils.write(t,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){w=document.createElement("a");w.setAttribute("href",EditDataDialog.placeholderHelpLink);w.setAttribute("title",mxResources.get("help"));w.setAttribute("target","_blank");w.style.marginLeft="8px";w.style.cursor=
-"help";var H=document.createElement("img");mxUtils.setOpacity(H,50);H.style.height="16px";H.style.width="16px";H.setAttribute("border","0");H.setAttribute("valign","middle");H.style.marginTop=mxClient.IS_IE11?"0px":"-4px";H.setAttribute("src",Editor.helpImage);w.appendChild(H);t.appendChild(w)}m.appendChild(t)}a.editor.cancelFirst?(m.appendChild(k),m.appendChild(h)):(m.appendChild(h),m.appendChild(k));b.appendChild(m);this.container=b};
+"help";var H=document.createElement("img");mxUtils.setOpacity(H,50);H.style.height="16px";H.style.width="16px";H.setAttribute("border","0");H.setAttribute("valign","middle");H.style.marginTop=mxClient.IS_IE11?"0px":"-4px";H.setAttribute("src",Editor.helpImage);w.appendChild(H);t.appendChild(w)}n.appendChild(t)}a.editor.cancelFirst?(n.appendChild(k),n.appendChild(h)):(n.appendChild(h),n.appendChild(k));b.appendChild(n);this.container=b};
EditDataDialog.getDisplayIdForCell=function(a,c){var d=null;null!=a.editor.graph.getModel().getParent(c)&&(d=c.getId());return d};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";e.style.paddingRight="20px";var h=document.createElement("input");h.setAttribute("value",c);h.setAttribute("placeholder","http://www.example.com/");h.setAttribute("type","text");
h.style.marginTop="6px";h.style.width="400px";h.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="100% 50%";h.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display="inline-block";c.style.top="3px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";
@@ -3652,17 +3654,17 @@ b&&k.removeSelectionCells(k.getModel().getDescendants(c));mxEvent.consume(a)}});
mxUtils.write(g,b);f.appendChild(g);if(k.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_IE&&10>document.documentMode)b=document.createElement("div"),b.style.display="block",b.style.textAlign="right",b.style.whiteSpace="nowrap",b.style.position="absolute",b.style.right="6px",b.style.top="6px",0<a&&(g=document.createElement("a"),g.setAttribute("title",mxResources.get("toBack")),g.className="geButton",g.style.cssFloat="none",g.innerHTML="&#9660;",g.style.width="14px",g.style.height=
"14px",g.style.fontSize="14px",g.style.margin="0px",g.style.marginTop="-1px",b.appendChild(g),mxEvent.addListener(g,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<u-1&&(g=document.createElement("a"),g.setAttribute("title",mxResources.get("toFront")),g.className="geButton",g.style.cssFloat="none",g.innerHTML="&#9650;",g.style.width="14px",g.style.height="14px",g.style.fontSize="14px",g.style.margin="0px",g.style.marginTop="-1px",b.appendChild(g),mxEvent.addListener(g,
"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a+1);mxEvent.consume(b)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});k.getDefaultParent()==c&&(f.style.background=Editor.isDarkMode()?"#505759":"#e6eff8",f.style.fontWeight=k.isEnabled()?"bold":"",v=c);mxEvent.addListener(f,
-"click",function(a){k.isEnabled()&&(k.setDefaultParent(d),k.view.setCurrentRoot(null),mxEvent.isShiftDown(a)&&k.setSelectionCells(c.children),mxEvent.consume(a))});n.appendChild(f)}u=k.model.getChildCount(k.model.root);n.innerHTML="";H.clear();for(var b=u-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,k.convertValueToString(c)||mxResources.get("background"),c,c)})(k.model.getChildAt(k.model.root,b));var c=k.convertValueToString(v)||mxResources.get("background");w.setAttribute("title",mxResources.get("removeIt",
-[c]));E.setAttribute("title",mxResources.get("duplicateIt",[c]));B.setAttribute("title",mxResources.get("editData"));k.isSelectionEmpty()&&(x.className="geButton mxDisabled");h()}var k=a.editor.graph,l=document.createElement("div");l.style.userSelect="none";l.style.background=Editor.isDarkMode()?Dialog.backdropColor:"#fff";l.style.border="1px solid whiteSmoke";l.style.height="100%";l.style.marginBottom="10px";l.style.overflow="auto";var m=EditorUi.compactUi?"26px":"30px",n=document.createElement("div");
-n.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"#fff";n.style.position="absolute";n.style.overflow="auto";n.style.left="0px";n.style.right="0px";n.style.top="0px";n.style.bottom=parseInt(m)+7+"px";l.appendChild(n);var p=null,r=null;mxEvent.addListener(l,"dragover",function(a){a.dataTransfer.dropEffect="move";r=0;a.stopPropagation();a.preventDefault()});mxEvent.addListener(l,"drop",function(a){a.stopPropagation();a.preventDefault()});var u=null,v=null,t=document.createElement("div");
-t.className="geToolbarContainer";t.style.position="absolute";t.style.bottom="0px";t.style.left="0px";t.style.right="0px";t.style.height=m;t.style.overflow="hidden";t.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";t.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";t.style.borderWidth="1px 0px 0px 0px";t.style.borderColor="#c3c3c3";t.style.borderStyle="solid";t.style.display="block";t.style.whiteSpace="nowrap";m=document.createElement("a");m.className="geButton";
-var w=m.cloneNode();w.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(a){if(k.isEnabled()){k.model.beginUpdate();try{var b=k.model.root.getIndex(v);k.removeCells([v],!1);0==k.model.getChildCount(k.model.root)?(k.model.add(k.model.root,new mxCell),k.setDefaultParent(null)):0<b&&b<=k.model.getChildCount(k.model.root)?k.setDefaultParent(k.model.getChildAt(k.model.root,b-1)):k.setDefaultParent(null)}finally{k.model.endUpdate()}}mxEvent.consume(a)});
-k.isEnabled()||(w.className="geButton mxDisabled");t.appendChild(w);var x=m.cloneNode();x.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));x.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(x,"click",function(b){if(k.isEnabled()&&!k.isSelectionEmpty()){var c=mxUtils.getOffset(x);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=u-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(k.convertValueToString(c)||
-mxResources.get("background"),null,mxUtils.bind(this,function(){k.moveCells(k.getSelectionCells(),0,0,!1,c)}),b);1==k.getSelectionCount()&&k.model.isAncestor(c,k.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(k.model.getChildAt(k.model.root,c))}),c.x,c.y+x.offsetHeight,b)}});t.appendChild(x);var B=m.cloneNode();B.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';B.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(B,"click",function(b){k.isEnabled()&&
-a.showDataDialog(v);mxEvent.consume(b)});k.isEnabled()||(B.className="geButton mxDisabled");t.appendChild(B);var E=m.cloneNode();E.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(E,"click",function(a){if(k.isEnabled()){a=null;k.model.beginUpdate();try{a=k.cloneCell(v),k.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=k.addCell(a,k.model.root),k.setDefaultParent(a)}finally{k.model.endUpdate()}null==a||k.isCellLocked(a)||
-k.selectAll(a)}});k.isEnabled()||(E.className="geButton mxDisabled");t.appendChild(E);m=m.cloneNode();m.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';m.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(m,"click",function(a){if(k.isEnabled()){k.model.beginUpdate();try{var b=k.addCell(new mxCell(mxResources.get("untitledLayer")),k.model.root);k.setDefaultParent(b)}finally{k.model.endUpdate()}}mxEvent.consume(a)});k.isEnabled()||(m.className=
-"geButton mxDisabled");t.appendChild(m);l.appendChild(t);var H=new mxDictionary,A=document.createElement("span");A.setAttribute("title",mxResources.get("selectionOnly"));A.innerHTML="&#8226;";A.style.position="absolute";A.style.fontWeight="bold";A.style.fontSize="16pt";A.style.right="6px";A.style.top="5px";g();k.model.addListener(mxEvent.CHANGE,g);k.addListener("defaultParentChanged",g);k.selectionModel.addListener(mxEvent.CHANGE,function(){k.isSelectionEmpty()?x.className="geButton mxDisabled":x.className=
-"geButton";h()});this.window=new mxWindow(mxResources.get("layers"),l,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.init=function(){n.scrollTop=n.scrollHeight-n.clientHeight};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=g;this.window.setLocation=function(a,b){var c=window.innerHeight||
+"click",function(a){k.isEnabled()&&(k.setDefaultParent(d),k.view.setCurrentRoot(null),mxEvent.isShiftDown(a)&&k.setSelectionCells(c.children),mxEvent.consume(a))});m.appendChild(f)}u=k.model.getChildCount(k.model.root);m.innerHTML="";H.clear();for(var b=u-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,k.convertValueToString(c)||mxResources.get("background"),c,c)})(k.model.getChildAt(k.model.root,b));var c=k.convertValueToString(v)||mxResources.get("background");w.setAttribute("title",mxResources.get("removeIt",
+[c]));E.setAttribute("title",mxResources.get("duplicateIt",[c]));B.setAttribute("title",mxResources.get("editData"));k.isSelectionEmpty()&&(x.className="geButton mxDisabled");h()}var k=a.editor.graph,l=document.createElement("div");l.style.userSelect="none";l.style.background=Editor.isDarkMode()?Dialog.backdropColor:"#fff";l.style.border="1px solid whiteSmoke";l.style.height="100%";l.style.marginBottom="10px";l.style.overflow="auto";var n=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");
+m.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"#fff";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(n)+7+"px";l.appendChild(m);var p=null,r=null;mxEvent.addListener(l,"dragover",function(a){a.dataTransfer.dropEffect="move";r=0;a.stopPropagation();a.preventDefault()});mxEvent.addListener(l,"drop",function(a){a.stopPropagation();a.preventDefault()});var u=null,v=null,t=document.createElement("div");
+t.className="geToolbarContainer";t.style.position="absolute";t.style.bottom="0px";t.style.left="0px";t.style.right="0px";t.style.height=n;t.style.overflow="hidden";t.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";t.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";t.style.borderWidth="1px 0px 0px 0px";t.style.borderColor="#c3c3c3";t.style.borderStyle="solid";t.style.display="block";t.style.whiteSpace="nowrap";n=document.createElement("a");n.className="geButton";
+var w=n.cloneNode();w.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(a){if(k.isEnabled()){k.model.beginUpdate();try{var b=k.model.root.getIndex(v);k.removeCells([v],!1);0==k.model.getChildCount(k.model.root)?(k.model.add(k.model.root,new mxCell),k.setDefaultParent(null)):0<b&&b<=k.model.getChildCount(k.model.root)?k.setDefaultParent(k.model.getChildAt(k.model.root,b-1)):k.setDefaultParent(null)}finally{k.model.endUpdate()}}mxEvent.consume(a)});
+k.isEnabled()||(w.className="geButton mxDisabled");t.appendChild(w);var x=n.cloneNode();x.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));x.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(x,"click",function(b){if(k.isEnabled()&&!k.isSelectionEmpty()){var c=mxUtils.getOffset(x);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=u-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(k.convertValueToString(c)||
+mxResources.get("background"),null,mxUtils.bind(this,function(){k.moveCells(k.getSelectionCells(),0,0,!1,c)}),b);1==k.getSelectionCount()&&k.model.isAncestor(c,k.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(k.model.getChildAt(k.model.root,c))}),c.x,c.y+x.offsetHeight,b)}});t.appendChild(x);var B=n.cloneNode();B.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';B.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(B,"click",function(b){k.isEnabled()&&
+a.showDataDialog(v);mxEvent.consume(b)});k.isEnabled()||(B.className="geButton mxDisabled");t.appendChild(B);var E=n.cloneNode();E.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(E,"click",function(a){if(k.isEnabled()){a=null;k.model.beginUpdate();try{a=k.cloneCell(v),k.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=k.addCell(a,k.model.root),k.setDefaultParent(a)}finally{k.model.endUpdate()}null==a||k.isCellLocked(a)||
+k.selectAll(a)}});k.isEnabled()||(E.className="geButton mxDisabled");t.appendChild(E);n=n.cloneNode();n.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';n.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(n,"click",function(a){if(k.isEnabled()){k.model.beginUpdate();try{var b=k.addCell(new mxCell(mxResources.get("untitledLayer")),k.model.root);k.setDefaultParent(b)}finally{k.model.endUpdate()}}mxEvent.consume(a)});k.isEnabled()||(n.className=
+"geButton mxDisabled");t.appendChild(n);l.appendChild(t);var H=new mxDictionary,A=document.createElement("span");A.setAttribute("title",mxResources.get("selectionOnly"));A.innerHTML="&#8226;";A.style.position="absolute";A.style.fontWeight="bold";A.style.fontSize="16pt";A.style.right="6px";A.style.top="5px";g();k.model.addListener(mxEvent.CHANGE,g);k.addListener("defaultParentChanged",g);k.selectionModel.addListener(mxEvent.CHANGE,function(){k.isSelectionEmpty()?x.className="geButton mxDisabled":x.className=
+"geButton";h()});this.window=new mxWindow(mxResources.get("layers"),l,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.init=function(){m.scrollTop=m.scrollHeight-m.clientHeight};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=g;this.window.setLocation=function(a,b){var c=window.innerHeight||
document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var I=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,
"resize",I);this.destroy=function(){mxEvent.removeListener(window,"resize",I);this.window.destroy()}};
(function(){Sidebar.prototype.tagIndex="5V1dV+M6sv01rDvngax0oLvveYQEaGaAziE0PW8sxVYSDbblI9uk6V9/VVWS7ST+kB0zL3etbmIn3ltlfZRKUqkU/rpRLN6MmFJym5yM/8QL/Xnw7yLceXQ03fA3JaOTyfjCQCKZehvu66tErCMW6J9E1M4jlJcFTJWIPP1VIKK1ixj/zML4VBRiTMaf9HOKx8G7/lwy71V/ZJEv8Vv8cKea9KW646tU41nk678/4tK7SZVu5FpC9oz/TDPVnkEPJlsn4wVma1lEnVemGByy6q+M+SXkSmaQ6Vv27gJeBDzyOQDMu1ma5FVEEVBEtuokgQhdyZ62Uv/9qWWoYPRltgx4A3U970/hc6BnIuD+kdI+KbGTcelGce6ec4evOBl/k0r8llGKtWBTvulF98xVKjzEvxWXDVS/M8VHF57Hk0TDpzpxJQGScC9TIoX3euXvVV/UcWWpDFkqsCYyfaM/1ly36vGfgVhv0oiasyfh7ypgyaaBaKHl5/nThqb5VeAvZEigXx8k0AolJJUkVjo7jGBOHFOm29Se3FZin6VsyRL42V+2U90z9crTOGAeIEK8Q1UCnMlGxk4CLWb/gsflKt0y/MLnbzyQccgjaIivAjgTT/Gtr4Quf9cXXWRLjRKxyRwvkBko75hHnjisPzUkP/kyESnHtwoAtQ7kkrehL7UyzUAtLrh6E5g7Nnn9iYo2SWW8ZVr1QYsTIW8gE+ll5kHWQlXGdr/Qug1Zl/RDe2O4FL+fWPBaiJSUZGoDT6HRYT3DN9Gdgy4agY3Q59gj+iIOdAOB/MmYYlHKqYp5PMLaFHMVirSSG2XYySnnZrGHNW19JdaZoiYxGV8LbGq+9DKsT0APT3Sk1ldzXaZszQvOpfzlkndUYodytAPDOEuxuocyEqlUmM+Jbm6HevkAq0sAW8+MB9BmQJs+8HQr1Wup3G2zL6uCetJZjXKofV7J+FLnUUWtxZyLTYa20FzpV1GxEgnVdxH4JOgyS0QECr4F3z3nEUHWUQfUjUi/ZUv7tjqTGaCkl0q6Wou0Ef9tdhslUBAn9Xq4GshZkG6gTmx0m8EqvuGoYzb4iwMYdDnVMcpbS2QM3TYB3mM0Sp71/0fuSVPf7lmki1d10DN3LE6x0/CKut+GuddVgGpRyFCtc/sZYS/Cm9FySdUj3sgIPlOZeZvWNAm1o0uTXH81UO3zZEEqQDkwD5q37t+zdAOqNe/RS/aJ6Tdi5purBt73xV930PiLapT8HTTXqz2Kh7JloQ26bIlVOtAl6dIY9uBPMhbeCdgtu/ZLJeEe1XdduTSPrpc6v9+TlIf64jakMpeQ9RumQFVr3YiV3vcb+eZyy9Viw4Ogl1p+nM2xmofSyNSdYgHjnSzA6m26fu+wTKtwYM30S1LXTkxPsYp0qp+nbu8yg271r4xnWM3/hoseBI+8qttygmLlSfLhZtmsS7CZUd1Kds295iT2m4dTh7aH0qLgF2QqGo5qVVdLtHiPvIp2mdDXinvvXtBgGhLRI4/1sJs09z5TqY6sRCNVqlU+2qxPDNuRuxm20MqLmqNOO3CqHRqxEGEclC3jNtATkMOLhFZpOynrH5FAc3UlcKRsbJHvy/9wD8iylUSFJHhrrfmRYBPaZCGDZ2Mu6QXolr3prFf16OdvsxOjqyqUVPXzVEngw+g2Qrur8WehCxWnqu71sE9gv/QWnrSalK00WglxllLFX+VXVaxv1TMae7yFcRrlV2059PNiNr2+wdxh60gmKamJ7trRDvIm4xsecYXqxI7z6sQ5pICWKDHp6jFiEyjpgtLioL1lU6MmSu3VHZm0QtcI1RVNeCPPjIeKHnuZLamxJzHnNIzdyIzsV2+DJm+Y22ZVlPINS35AxuFl1Bo4nQ5IJ7PIfxyW8xzGplLgaG9BGginPqsrUhn55RCZiLoxbRn4v4dAbkYubdBLFkWoRfXYs24CvPz8lGzpNZchT1XDzN8OSEkcF8ZBhnP+1cq2jJgddJORxMmOmMX7w5A96HXzILoS882Mr/IBWqAHTcjxejheKQPvJRo3kWNuP0g0msMlzn6upFoK36/o6A6R34t5fG0RKMGiNdXSwyFVJX4R6mwE9Y+GsodSb1gcv7cCTRUWmCEx1rI2SAbsPvY2+m9QmTl7mCeBdrAdKeMnTGC24X4ylMvU3qWtzY2Yf5/QdB+kwyKPB1i9agqkwEqZJqm+HLULWY27rx0Q72mUWoass8VjGOIQHihN0cRKenQVagMsqEtZ40YXPq4geB2yGWCXNjHdvWUBLwzZJqO0hL+TVEJ2va5urbACZWbCVYXEuLKywZep5bhnERlBRuANDHRa5c1HgwZlFJY2kWnipFFzIUE+znKy+EtINIQLcbvWDo8tdUmlOANNl1A7/85EXGmvHeBG00tYB81LS0AuLBVnVATUY8Ryv9DreSbjX5/Gw7BN6qTSVmRHniapOrKd1UqFa33dmLRcn4eiO68TzJgwXYga5OrAdj+l/P+s/3w5u4BXnkOdFpGwo5wOb+7Cf+7CX/0GtfRfzjCN8YfJX05g2BeQMAv9mxwCtgIWyOwr5L/o7pR+6SJ3Fe/5QLwwr4C6BIv1fKyzpToXHJTbLiG8/GQotrMJyTgA31zp7sYz07uavDfhI0+ET93fNFPKrlqZnmkCBaS85u7Qkeu8E9ciU7jYt/Oin4Cirkdwp8G3qlPh7jTYKupVrjsR5kytjqzkeYIFXRodnI/DcJL3VsvKmexWjgEoQCsdT/N5gLf5grrxeJ6vHTm4gO6UlxdM9fCJr5VdTooZGIdRDXwVSKniAK23gL3Xr/TsPT66RK06s+5MS1xeX2UqEqZDcGRYCDPKrMfWwKV89WhCtCt0umFC9cHJWKCO87lZ93ND0Yx1Ilesax5NH5/A6H4+Kc+ulmZcK+SoYJnx5BWnwRUNUOzoqJMouyS0VN6PSOkRm10jTnAgsGXKVzQTWkNVwXMVcD3cwHzgiccCc+0iwrV+eIB8vYYrzXPHQmiE1ZMQ1dCqZe8YRowhM391K5bkoGWFgTnpJC0cvypov69W1PHZKu61VvUKlrlgOFehv8dRqYiSVFVPrFeh9R+a6FKwUKF/2DYN5EtABZqrc/t6ZBF2b+Aky+I4EDDf0hE76YPlKyXWsFCNdaYrfEHqwDPaoVMBPZl25/OkuXfYh1AuGViPJI2HzBH4syPx50fiP/fFS0ErkVp1KFpUCxjqH1AdWqWlSspDr9t9mp8sRe05lZKcAbbwhWfvXCT5uaMGgh6KpJLW1xfoBw3LaFijA7pLbA/dLBaAHq0vExEoc+vIsCVvS8dsgKfzHs2zF5UcNegfdc9XQw7LtzEBEfnVuw5qsk9o/ZpU+TG0Qy5lmqJsZZKl/bKVR1cmoRI9kMKywhvIGYGrFIq+bi/73BQ0hZ97urenL6JXo5mqakobbtIVV66p/w8gNxay1cYALkHB9QnaBuTxx//OCudewXQalev3OcXoIopkah29PmH7C415oHVru0dODdPkGKapDAJyVt7oUe06YBVuotXIfZ+gJPdtaYfWuto0odAH8LSEDeELJ+eFgmTOYjMjHzutTu3jF0WpG5cTsOdrF/oO4OA7ZEqfB4GIEzsLWN3o6/CT3nipaAhKotcVWg06C0PjypdFnnW8zKDa16wc7zM8ads4WfHympGqW4QkbMBZ9BJqM5HWi99YkIFBog0Hzio7lkrk6FpEIqHNUzdS+rD2lUqc/dJZEPYVaHSDy8bczBP5mZ0nMo6LJDO2Kt7crnZYv2dpIkqO4Lj+UwiaZGA0N9XXHbZnPaKg7UVm+cmsVbpgLwQqTBDlK2QRjYqU9WGg36q1rR4EKSmgVoQS93g0qWbzMLnj/zKeThc2Ny9xdcxvW89tJ4FBZ+TrYS822IEJJ+OfG7MBproKdaU+lm6ha0k6VD5Wkg2Rn63EH5QRvWjn4LGOw95S7TY+lo3TH5bgr0x4r7qHlmhA5xdL8inC2+X+qnIjibHk+hEt7HPJHmiPr5FDKwqa25qJBIaLoGOvda+c0H4n10rRyKPrgymjDoVVMM5x8qynOBbcSwY9gDZTfidm4q9hNigH6Zq7EjwAgaEWn4CdRLdtSHCS1yLr+oE6voukO1CwEDCn2jNsm2CDCNlvtAe2HK3BYr8H2yZ1uJHuZl7so7STbMGZwqkd6+yc2C8a0q/ngU2T1/pvyFPmk83Tn/jK+AeZjy7QxdUCkrSe3NbTqNgL40jzsEOzt6u1D9tkTG81GT/skQ2ayLenp/lHp2H3zgzG+tdOZtsNHX1oJuNi99VAhH9Z9NF0P6/LNDBfboa6fZhgGdkTPhmqg3Eaf+zelGaa70Uruxfjpw7m7dWUBlIMPOJLqqEnlbYw7m/rCMN8W4EIq3yU28lRr/00O6EP07B7pPtJPgO3BzSObqMkNTPyh4nQVpli6C+Kh7umeGXIdYrzyrTE4a54V+7GdziaNakWdy8rutDfP+5Q6uGXHqZnFasiznRQXfSQERvNwMTfZtcLB/4N88lR1Bd6tC6Wmg+3UpO1nNAGReekn+dT/fCb2QYDbrLizeyyPyxWZ8bSBMBkfKP5KJTH8MncwhpdhJEJPjKZR2kWM4anfp4/4AqMtort1M9HJXJkDjXvCa99fDR7j1goZ+Ci5eNlH6zuA1JT24fiScpErMTelfGWWtwxQgHFjjzCtuJuPPlabFdZTK9hY7OU1LD5pjsLmKV+V7LRWsksxq1hcNHhDR5nYFYqnRg0I1Y7DGhmMD12qaM7njEng52y6I//yONAG9BDsy/0hb98H4T2Hv7Q9t5BMyMPDTB4Nn9XzMNV9SGpaZMwKq/cRu6MBdc0PRqMupDoGiLfYQUGNXqIoSzglobh11Ll0aDyYCql7wahxgrlvX5sEk9cZ8huDzRQKtakbzDk+1FCGCwTPmIQ6tuLe/08bRLHSBvMs1uV8of6M2tpff8UM/Pjklg8LY7ij2R0alrmSxLrke4KNjZKlWGvuIKL9jaT+K844epjeCsbzgtnkPNwXuM/X3fC4BwyjB44eY2kUW1gqzKElvowWzyKevTim5hHprYrSXGfbPU290OwgmbZRoHEXmVmBwR7emHQ9K589FG7k96B/hk0nQWuRNKy6Ee92NUl1NrCPFkWodFqXT7dWLX8EYuTjUw/LIFnGWQh/wD6BXjF5f1UsZTtMB/UxgsRVUy8uA9OYDJGlyEbZyNpS1HacBx90z06HU8knhzZ+GJAVIo1Vl/L92CjS6WtHnxx8r5FZ4xmPbZPYWNQQGbmEnRmuZ+BSxs5k2zBqQJpskiklWy1PIuQ4XrcZbGXdyOzpNmGIhLrhZhgucX6peINVyxIRreX0Gvda5tspRgFQCo8FlPjIwyemeTOGHtHJCIiCLF1sTgfj3fTib1jX+DJSDoQaa0feE+++5K/Z4mSnEGL3N11JS8SdE9HeEraqGfFD0fVEJwXKwldJ25PbrDKdG6T+y0F1RlOcDth5Q1LnHvED0S48Kx/2FCEsd33NxRhFplVkqLAB2obiywGV+ucayDaPEbVTg7QOnlfSrsfbDAhf+w3rmPInvWoA13OtB5XbLiyp9hIlxATesgqVVuZanqbKm6MJh1Y9lBCLL9k9Gl8cwW+HVN5dYJRLrKWiYZmurNPX2FH4z9mJNcfpaWJPKJ1YKpu6aZ3cv+m5HAb00cnVoSnzXdi39v8OjrjroXiW7JZiggXhh5ecLu4/2OIdA7Ih+C08S2Hz/Mi1Fqe56VEdMY8L6Zn4/H4j64J+gKCZEl0trLXXWAjGMsGJWQg26I8EcMmW9IrrmlhBZrg+JIlHLZJUsDSTda8UlJHNIXvj2Y5Dm0N7+NY9pee1o2LUIfB7vYSCPXf0b/4OxT2bsD8RsTjfKH/6Z9VXOcwfICpjK3rhMzX9DytZOyWPLfXrWCUPg9NPwImrq4cFDp2bgze3FOyVbYDpm9SprndbD67s+TRiPMDD27nJfk83rKrqZ7X5xQq0q9YDHNhWMhV5/fLowhZv+42gEJbG6qJssvEbZBSVOXSZTsKYuja+uiYEEIglnuoh940Z5eYnsnancUvHRghyGUuRsN2kzpsWYZVmcuVBAd9W77MgSF8cWI9JZs5sAeipm0DrrRhtrqDCGj+YStWogZxgwj9oEfBAkdsCZHMvHQ0uwCj1xdrQQeRMG1SSzqzI4JDRSpiZTWQ8TCDQIm6wsMEi66wv1qClVex6HKgZJe6zcRte5SqGO6zX6dWll1JmiVrIz2g68ZgQnab6IEXIcRmwh3ZYRxAHN5hGCfHMT5dGKlkiVuP1WAvj64TsOvFLGDWJOJAP/lY+rOPooctUXaFcG5CMCa1a0AHPB6LmSeMTZjfdEePpjmWiipzbiI1JJMhSCDb6SkZvNPUfwVnB0LYx541RzxuJ/k8hFT3ptWjI2OJC8b3RVLQnYF/CSf9GYYUlJRr45LCdn5cmnOM+J+nGctEOKfpC22h0DCFPGOcUCZPT0PubViEX01O6XyqRR4tbFvn7ONCdyczP8nnzoqrvnzzLNmUx3kP0PNFsKof4FFvGGqlYWNjR/bvu+xaITXs0W3mplMCaGSq9dDgslfw95VecO/809fRxfT0YkqMuRWRmxYdiWa1RIXZ4s43G5IMY9p07mxL6Mn4UtAY33ZVfdkuC2NpZQ2orngTjbcXfnaxl7EVNqU7WUX1OZLvoBYVfDWmbgulWK24yneHH1cVriJPvce4Kh95HZSwgX8Tx5T8neyLftHFIDycVUHfSFbhqFqHRluMTCF73Rk7urVIY0gLE+jEreOr5DkbiOfzMTy0c16rX25fTSgzM38k16QXl41tRaVVG+mqHQ9Kj2tRjO4N49KlY/vbrXN4V1f3WuAjOGZmozND0lk84L9yZ3zmzFEzTpQwu8YD2B2viUbXWWKDSOkmchQHFhbnzo2qkgRHQ8tEBty9dVYSnR8lzW0QZLBgZ46HuswCmA8R9ltgtcHh8HNJD3RKA4PMUdZbLlFOtrvUhnEyICPSHGYAsR3mR598eOA4RDUx91qTOIbeVNIBkpDJiqcJlB1dnsAJOg2hOSqwoxkt5cC8PixAfV9cX8Gqx8PJzjAM7N5oP9h+T2rYzFYabfWizslupwMJu8s4qIywhoDnZ+gK/DqkqPM94mMlfji1sFJxfTppGJD3YpwMzng2OOP54IyfB2f8cgzjvK6saydCejFOBmc8G5zxfHDGz4MzfunPCEXQt3+YDK4TahiP0Ak1jEfohBrGI3RCDeMROqGG8QidMBlcJ9QwHqETahiP0Ak1jEfohBrGI3RCDWMfnSDjVL6Y+cxIeMnoK67frkNzxEEetjrhb7XHe/VlzX35Z/NSCj73REj+FIdndDml9mfNO0Si1lGgL+nuK5gEjn+Du6vZ3iiMhyK1J7EeLjJ0IJ0MTApUp8xL0fUFY+1PIThD4lH4kcAc0ZZ7fsEUO87W7k3yOaX2XX9x6sksJg8y+L2461euSImrmyKhGTR4ZOeLfsTzjUylzdYYbqqzuZbvRY8OMSAUjkF3l2M7rL3GgfcSMN/nCg7P1gX0PUvjzEbVbDt124lo0ptoAFl6SwF7LF4S3QbMsrY0LjilL47hGt08fS+aQ3tDMPNvaYbHaMjVCm4278rUQudkb2+mtp+2Z3RgWoYf/YJS812Jv/v7mYQmH57QA7rd3d5cFu+VZMFuaksRSzpcr7Lp9ktr8l9M6+y/mNb5x6Y1f5j/18prJ60PLq+dtD64vHbS+uDyAhVlI6M799fdE5h8YAK31gsPt6BVaZt6RsUp69DTk3fr9ROx1h3yS5LHHaarfvARrtguLAODtUQzBeyZU8d6kM5KpOZkDlwuH5J18iGsZwOxPmOw7TcZpG2xuxs4cH33aI5Jd5J0A/u0wKZ8oZC56GjUdHaNAwVZp8aD2xqnlQ7dlXy5uknqlI8rfmfa4p+V00n/cZ2kaqGdDEA7r5a267C7hbLPjMiWvXFYo0Y/ZnPdiBUy+ToCJYpL0l6tk/j+06MLbE6e4m3OCmUMBlbBmIwYySAVIUXwCUXkNy1blzguKWaN4jE6VDljtma3rNJVX2ak5eHgFEcCGB0nG3TrWcrDQ+wrQdSQmIkm0+0tpXzFpGTTidwVMBCtiEwAsXob3RfLWCX4ypxyl0oZVL1mDXTKAh75Jk66e3WYbjBMgC8SL0vqzqOpBO7WH5vDDkAZ6haFYTV80TxG3EGhkULjQpwqMUeO68F4KirOKKgkwXBn/2FvzDVZc9pEc2C+SiA3Pgq6yskW3VGGFYeCeDJ2blwWhh1SQRGzpMmTZIdgizN+NtQNGoLctdpe2WPnJ+N/XIVx+o67L/O4wYoztyZe5jFhh4EpiyoZ6kje0SLH+OEmmkWxpN90tkyJ4zpgyWbHhcM19WsZkH6Ras0i8du55AloXNdaztzYgSmjVSMTb53tH+BUg7xhGZYONOBme6EMCujYxrX+rN3BeYD6xunkoQ3XlnTdTqBDlETN0hSK5ABzV3IzOXRyoYOyyjWjlS7C4Gzl2KFuctjgTfkpR62bf3bRrzgai5lv1GzlwbDVWPlKbkk35kykmnDxNfh7Eyk+b73cNsoi+HsbRY71qHcpDnlyBic7MhgeB3Q5TsmbJMsckqeTLbVSk+tI5EHclWjjK84IzRcv3ASRtGEiPyEv+h/61AUTSdPlpplatvIkMKP6LPiW06Ed6OhY1wfKmLYftpG+gY7Fc4RyhcXwxBznF3yQ2LXoERXmbJgl6LsIFIGoOEPugOC7tnWi/CywOxNXSxuzuPakZB7BoTLnqxhxGxNtsOAVRmUdSnF0fvb2MtDBzKimE2/MA2mNB7qTEI8873ZXiid0El/MsdYrniqHt38sni8oclZHCnqsvxCLcqZV5+t+fnro/r7m5ryWStYNhRnMYvM+Tnm60EOFmFThlPqfZeZcvRe6EzZntaWkS0wsOJ8spTa4HjHk+6Ibt48fQlPMCVXtlFkLkvG2iMbZYpnXMBwMWHzFas7yPYRn2FSxmTraXlU05nQ71NwNh5Uc4uTB2MANp7Sh5+EmdN03vFN026Vw7ud/xJ2r5Q8KdgOHyTIb+oN5bt1bHpGwXf/vNj8HUrMgLTPqDioiQ1eBf7KAoiFR2zLDcwecuIa+t7TluwWGYR+m9rzA4ghBJ5iZsdwJqknTOi4mHXJ0HtARirSFPaHPBXL1KyZjxYJaSwJh5izfLind6Vpr9KPN18QcHuVG8GizwuetHvkllLGJuoi6sGeG/eObVOI3NJkAhoY154U58DxDm/F6suBsH7TdDa8wy2tA3fQ6YlC9NOXTGgF0TuGI+bD1SyTEX3M0aAXOM1NHtJU7n0ZywCkYmwWjBz30PNV21NvJzuSeO0EfLBzLSaFI8HQybXkJbo+4tZ/tLMW0krl0QcGMLniY2CkXc+kC1c9lJPUyS1OcetH6+4SiDIMPmf4dGpT+0lgaIX3TQmvUXIL7tS5MjYlzg7gjwTfSQF3xN9z0aDhTy1PUXKarOmnpnCoJzWDUmgLFgLBZGF0hcDmELWGhtiVWVYyHIcbCnNNabPDKOwolTaRtHq1FxLnabcBlpslwVCMGezrNyo69hvxMhe7NKq2yCuzowiK1zpsqmSSnl5yFGAIM7kBRVJ1H68B2DYvgp5cBwwNf58z3A5yua4hje1NQxjHTqlC3Bed2VIAx6JNYZTRNUNy1A2UYw6GIJmxFftcFSGvDF8JELCgYOq0S75NO7UvgzpwS72R8qv8/ZWop8DTbmR5fknemaluT2kvj5fRFJLLje6ss2UCcubWuqSZOMX53Uj4XDH+0nxTziHBunKMpfIOWCGTtjU0KwgfbJPYIawXWuUKzqHiBn+9NQxjAUFssWiW8m2z0WSihRldm5Q/ElaZpXEz/6FMhmihnSOm+CF/mw3DTbBjZdrj6CLXi3E5041VrkdJWbsdN3SXA6E78nQk8jJVwWuBLIXHTLNl9S9Ec04PI8pHWKvfRbYEEcvuS8CixfoyRS1PbcJa+8F+wBL2m181vTnDqPM0v3FlG1+IX+QKnipndmk/ZksMe4W/ANBlflVJJs2W7StlP4oAHehqJJ3NiUn8MSXwN4xO/eAtQGNcsGjSN/bzqTf4DMn7D4rLAvbO91851AIa6CmB9wgvHx0e30ekd9TiPUo9cwMH+3uBFFLT571cSLcAO8roTkUFVIjoWj5N7XieKjDzA4dPtYd3b+jiPZCB+xaTSDirhaBFZnWFuWhNLdP3Sb/diemM6EMb2ms3QNzgeGsc+dOUKGM1ktsSZMgjAqTjuIn5idqksZYIGnp6A8MItr205EY/N+dkKcxzX0bLo3kLK9I8hiEr5BNFrh+KEfgwopR5JhgOTPkq5+gBK/QFjy4GFftODSX9ILqqJg5X/TGjj1R8yV3cYSdoPqRDXLMCAGUNSBtJGzhgsO/Y4jyg+xbxXE4/UhoiespQF77gOa0e7eWi0s/FkrD9WNG0CW882fBvwlNxvvFfyzRgorU/HptUVBG6zdODOGk83i2jQkJ/09x4uccbM/F6NH7EINuHhNEZktuOlMlO0SkxXYfnHZpoRBlaYybU5t2wpfL9lQyThV1L6NUm34kZThkF9C91FPjq0dLTEeyeea4Zle02yhLzFiaaEfORJyjLFIrtJa9XA0Uow6UZAnjseLcPmbjwh94VHlsZGJvFhyLlaFp2fuFnzDo/N8PQNxE4Sv5tiJNcw3WJ05d/Mzi2K0n03poX0KACac1zyGqKn2QyqF6wS7MV+zr3Ffc5W5pn9sNl7vLq9ZZrziinM8xgi12CwVt16W+ucAf8z04VDZ2xY+BrLXtdGBSPi9wrCaqp7RnE87+gFdANgfrM75R4c7dvjxeDKy9T7IFTkqpPoAXYQiJZlrB3kA4/TjEKfHyvEPMjQ8/9oogUz+xaPZ4rkdhWwV3hy27QQUIXFY31wI1PasqxWgZv0xJ31xJ13xv3QajQbpCI/82OJnMLpHwJG11x3p1i4shPunlAdMbY+mDQ74SadcT/xlUw/yfthJ12wCVtxPGJgw35XmVR1CLBmupkxBU53VCE5e4Jdu6a1N/jU1l1rz5B4AuZARroHljjTAMIHFadYVUBjqegcRrgofTqgIKykRANWm7VhSMLHsnbdtYLhX+yd4fYTuTUr3ZK8TFkk6wIn7BA84rk3y4CZBY38HByV/9CefZZqa1Lfl8YJ/XyCfkewgYfsgze+EV67KWnwCyZouIcpJvqubXp6Dx4JM7UHUTRkQsZPvlpZHKKVgpsUaIrDDQU11B6PcKoPHFdt7I03bXa7mAqW41X3yDo3lSmmJL/vwBFhASlaZ0jsXfm6MfThLpmtsXarWZdaWwJP3MEp9za1p9FUGY8NLHuHwdEZkWHpAMndYxfT4lC6Wk739fkD6OMCDguCJSBoA4IClZL1lcDRBKiPmgie8rc3xdFw+kwjeHIM+OwY8Pkx4M9dwLDLEephqUG/cXOaBJxi241gdIG+4kXW43VXMcosk0FYzgZhOR+E5fMgLF8GYfnan+USwwljIWfLACtK/kQvqslwVGfDUZ0PQTVlefBuPZhz8PpuYJkMwnI2CMv5kSxwXGOqMvSUXAmcQrK3XWhuFO41mYyfKrRZTYG1ki5oNfaSB2hC6bslXXbkMUtOTIXkCwSfOD/vaNHt0ykmoqEaniUbpOlZskEanyYLB3zLcLiXhOpJgh1RuSzNZBias2Fozoeh+TwMzZdhaL52pzEGUM0iQB1kRM61k/HD1QkeK5NuTjntucUb3rj/tprpZ8605QWTue7CtACZEpkVMuFND5kWP3MmIwfedJDpkq3XNBgIMnvlDFVLdMVZ0HaSDRPKa4knt0sAoRsm4wvsLhYye9Oj0RIfhHRISpdp4+kRO8y0lcR7L3nwnGCMOLdFAsNyFfA3490RiFWHF8OdweQFbLdrOSJxvmjOlJkv6jLjZBjmZqunZ7Og8kSzaixkPM4YUa53yfEfsR6TCvKKsRd7//4P";
@@ -9758,7 +9760,7 @@ DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(thi
this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("tooltipsEnabledChanged",
this.changeListener),this.ui.addListener("pageViewChanged",this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))};
DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var a={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(a));EditorUi.debug("draft saved",this.draftId,a)}catch(d){console.error(d),this.removeDraft()}};
+DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var a={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(a));EditorUi.debug("draft saved",this.draftId,a)}catch(d){this.removeDraft()}};
DrawioFile.prototype.removeDraft=function(){try{null!=this.draftId&&(this.ui.removeDatabaseItem(".draft_"+this.draftId),EditorUi.debug("draft deleted",".draft_"+this.draftId))}catch(a){}};
DrawioFile.prototype.addUnsavedStatus=function(a){if(!this.inConflictState&&null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this)if(a instanceof Error&&null!=a.message&&""!=a.message){var d=mxUtils.htmlEntities(mxResources.get("unsavedChanges"));this.ui.editor.setStatus('<div title="'+d+'" class="geStatusAlert" style="overflow:hidden;">'+d+" ("+mxUtils.htmlEntities(a.message)+")</div>")}else{d=this.getErrorMessage(a);if(null==d&&null!=this.lastSaved){var c=this.ui.timeSince(new Date(this.lastSaved));
null!=c&&(d=mxResources.get("lastSaved",[c]))}null!=d&&60<d.length&&(d=d.substring(0,60)+"...");d=mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+(null!=d&&""!=d?" ("+mxUtils.htmlEntities(d)+")":"");this.ui.editor.setStatus('<div title="'+d+'" class="geStatusAlertOrange" style="cursor:pointer;overflow:hidden;">'+d+' <img src="'+Editor.saveImage+'" align="top" style="width:16px;margin-top:'+(mxClient.IS_FF?-3:-2)+'px"/></div>');d=this.ui.statusContainer.getElementsByTagName("div");
@@ -9793,9 +9795,10 @@ DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.proto
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,d,c){this.saveAs(this.title,d,c)};LocalFile.prototype.saveAs=function(a,d,c){this.saveFile(a,!1,d,c)};LocalFile.prototype.saveAs=function(a,d,c){this.saveFile(a,!1,d,c)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(a){this.desc=a};
LocalFile.prototype.getLatestVersion=function(a,d){null==this.fileHandle?a(null):this.ui.loadFileSystemEntry(this.fileHandle,a,d)};
LocalFile.prototype.saveFile=function(a,d,c,b,g){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;g||this.updateFileData();var f=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var m=this.getData(),e=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=c&&c()}),k=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var d=mxUtils.bind(this,
-function(a){this.savingFile=!1;null!=b&&b({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(b){this.invalidFileHandle=null;this.desc.lastModified==b.lastModified?a.write(f?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var b=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(m,
-b,e,d)}),d)}),d)}),d):(this.inConflictState=!0,d())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;d(a)}))}),d)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,f?"image/png":"text/xml",f);else if(c.length<MAX_REQUEST_SIZE){var k=a.lastIndexOf("."),k=0<k?a.substring(k+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+k+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+(f?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
-mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));e()}});f?(d=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(a)}),b,this.ui.getCurrentFile()!=this?m:null,d.scale,d.border)):k(m)};LocalFile.prototype.rename=function(a,d,c){this.title=a;this.descriptorChanged();null!=d&&d()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};LocalLibrary=function(a,d,c){LocalFile.call(this,a,d,c)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,d,c){this.saveFile(a,!1,d,c)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,d,c){DrawioFile.call(this,a,d);this.title=c};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.type="F";StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title};
+function(a){this.savingFile=!1;null!=b&&b({error:a})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(b){this.invalidFileHandle=null;this.desc.lastModified==b.lastModified?a.write(f?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){try{var b=this.desc;this.savingFile=!1;this.desc=
+a;this.fileSaved(m,b,e,d);this.removeDraft()}catch(z){d(z)}}),d)}),d)}),d):(this.inConflictState=!0,d())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;d(a)}))}),d)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,f?"image/png":"text/xml",f);else if(c.length<MAX_REQUEST_SIZE){var k=a.lastIndexOf("."),k=0<k?a.substring(k+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+k+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+(f?"&binary=1":""))).simulate(document,
+"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));e()}});f?(d=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(a)}),b,this.ui.getCurrentFile()!=this?m:null,d.scale,d.border)):k(m)};LocalFile.prototype.rename=function(a,d,c){this.title=a;this.descriptorChanged();null!=d&&d()};
+LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};LocalLibrary=function(a,d,c){LocalFile.call(this,a,d,c)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,d,c){this.saveFile(a,!1,d,c)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,d,c){DrawioFile.call(this,a,d);this.title=c};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.type="F";StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title};
StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.save=function(a,d,c){this.saveAs(this.getTitle(),d,c)};StorageFile.prototype.saveAs=function(a,d,c){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(a,!1,d,c)};
StorageFile.insertFile=function(a,d,c,b,g){var f=mxUtils.bind(this,function(f){var e=function(){var e=new StorageFile(a,c,d);e.saveFile(d,!1,function(){b(e)},g)};f?a.confirm(mxResources.get("replaceIt",[d]),e,g):e()});StorageFile.getFileContent(a,d,function(a){f(null!=a)},function(){f(!1)})};StorageFile.getFileContent=function(a,d,c,b){a.getDatabaseItem(d,function(a){c(null!=a?a.data:null)},mxUtils.bind(this,function(){null==a.database?a.getLocalData(d,c):null!=b&&b()}),"files")};
StorageFile.getFileInfo=function(a,d,c,b){a.getDatabaseItem(d,function(a){c(a)},mxUtils.bind(this,function(){null==a.database?a.getLocalData(d,function(a){c(null!=a?{title:d}:null)}):null!=b&&b()}),"filesInfo")};
@@ -10407,7 +10410,7 @@ null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=th
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 M=document.createElement("canvas"),J=new Image;J.onload=function(){try{M.getContext("2d").drawImage(J,0,0);var a=M.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(N){}};J.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(I){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};a.afterDecode=function(a,c,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.9.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.9.2";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&&"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(a,b,c,d,f,g,m){g=null!=g?g:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
diff --git a/src/main/webapp/js/diagramly/DrawioFile.js b/src/main/webapp/js/diagramly/DrawioFile.js
index caff4171..8cc2e8fc 100644
--- a/src/main/webapp/js/diagramly/DrawioFile.js
+++ b/src/main/webapp/js/diagramly/DrawioFile.js
@@ -1451,8 +1451,6 @@ DrawioFile.prototype.saveDraft = function()
}
catch (e)
{
- console.error(e);
-
// Removes any stored draft
this.removeDraft();
}
diff --git a/src/main/webapp/js/diagramly/LocalFile.js b/src/main/webapp/js/diagramly/LocalFile.js
index a0439843..3b646203 100644
--- a/src/main/webapp/js/diagramly/LocalFile.js
+++ b/src/main/webapp/js/diagramly/LocalFile.js
@@ -199,6 +199,9 @@ LocalFile.prototype.saveFile = function(title, revision, success, error, useCurr
}
});
+ // Saves a copy as a draft while saving
+ this.saveDraft();
+
this.fileHandle.createWritable().then(mxUtils.bind(this, function(writable)
{
this.fileHandle.getFile().then(mxUtils.bind(this, function(newDesc)
@@ -213,10 +216,20 @@ LocalFile.prototype.saveFile = function(title, revision, success, error, useCurr
{
this.fileHandle.getFile().then(mxUtils.bind(this, function(desc)
{
- var lastDesc = this.desc;
- this.savingFile = false;
- this.desc = desc;
- this.fileSaved(savedData, lastDesc, done, errorWrapper);
+ try
+ {
+ var lastDesc = this.desc;
+ this.savingFile = false;
+ this.desc = desc;
+ this.fileSaved(savedData, lastDesc, done, errorWrapper);
+
+ // Deletes draft after saving
+ this.removeDraft();
+ }
+ catch (e)
+ {
+ errorWrapper(e);
+ }
}), errorWrapper);
}), errorWrapper);
}), errorWrapper);
diff --git a/src/main/webapp/js/grapheditor/EditorUi.js b/src/main/webapp/js/grapheditor/EditorUi.js
index 8c8aa4c1..071f81f8 100644
--- a/src/main/webapp/js/grapheditor/EditorUi.js
+++ b/src/main/webapp/js/grapheditor/EditorUi.js
@@ -162,7 +162,7 @@ EditorUi = function(editor, container, lightbox)
['startSize', 'endSize'],
['sourcePerimeterSpacing', 'targetPerimeterSpacing'],
['strokeColor', 'strokeWidth'],
- ['fillColor', 'gradientColor'],
+ ['fillColor', 'gradientColor', 'gradientDirection'],
['align', 'verticalAlign'],
['opacity'],
['html']];
diff --git a/src/main/webapp/js/grapheditor/Format.js b/src/main/webapp/js/grapheditor/Format.js
index dd40a38b..ce5ac8c0 100644
--- a/src/main/webapp/js/grapheditor/Format.js
+++ b/src/main/webapp/js/grapheditor/Format.js
@@ -4550,7 +4550,8 @@ StyleFormatPanel.prototype.addFill = function(container)
ss.fill && ss.style.shape != 'image') ? '' : 'none';
var directions = [mxConstants.DIRECTION_NORTH, mxConstants.DIRECTION_EAST,
- mxConstants.DIRECTION_SOUTH, mxConstants.DIRECTION_WEST];
+ mxConstants.DIRECTION_SOUTH, mxConstants.DIRECTION_WEST,
+ mxConstants.DIRECTION_RADIAL];
for (var i = 0; i < directions.length; i++)
{
@@ -4609,12 +4610,16 @@ StyleFormatPanel.prototype.addFill = function(container)
mxEvent.addListener(gradientSelect, 'change', function(evt)
{
graph.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION, gradientSelect.value, ss.cells);
+ ui.fireEvent(new mxEventObject('styleChanged', 'keys', [mxConstants.STYLE_GRADIENT_DIRECTION],
+ 'values', [gradientSelect.value], 'cells', ss.cells));
mxEvent.consume(evt);
});
mxEvent.addListener(fillStyleSelect, 'change', function(evt)
{
graph.setCellStyles('fillStyle', fillStyleSelect.value, ss.cells);
+ ui.fireEvent(new mxEventObject('styleChanged', 'keys', [mxConstants.STYLE_GRADIENT_DIRECTION],
+ 'values', [gradientSelect.value], 'cells', ss.cells));
mxEvent.consume(evt);
});
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index b69288ae..41cbd4e8 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");(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:"14.9.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.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:"14.9.2",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"),
@@ -305,12 +305,12 @@ STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"en
STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",
STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",
FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",
-ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,
-DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",
-PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};
-mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;
-mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};
-mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
+ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",
+DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",
+PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};
+mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;
+mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};
+mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
mxMouseEvent.prototype.consume=function(a){(null!=a?a:null!=this.evt.touches||mxEvent.isMouseEvent(this.evt))&&this.evt.preventDefault&&this.evt.preventDefault();mxClient.IS_IE&&(this.evt.returnValue=!0);this.consumed=!0};function mxEventSource(a){this.setEventSource(a)}mxEventSource.prototype.eventListeners=null;mxEventSource.prototype.eventsEnabled=!0;mxEventSource.prototype.eventSource=null;mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled};
mxEventSource.prototype.setEventsEnabled=function(a){this.eventsEnabled=a};mxEventSource.prototype.getEventSource=function(){return this.eventSource};mxEventSource.prototype.setEventSource=function(a){this.eventSource=a};mxEventSource.prototype.addListener=function(a,b){null==this.eventListeners&&(this.eventListeners=[]);this.eventListeners.push(a);this.eventListeners.push(b)};
mxEventSource.prototype.removeListener=function(a){if(null!=this.eventListeners)for(var b=0;b<this.eventListeners.length;)this.eventListeners[b+1]==a?this.eventListeners.splice(b,2):b+=2};
@@ -507,10 +507,11 @@ mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};mxSvgCanvas2D.prototype.getAlternateText=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=f?this.foAltText:null};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){a=this.getAlternateText(a,b,c,d,e,f,g,k,l,m,n,p,q);d=this.state;return null!=a&&0<d.fontSize?(k=k==mxConstants.ALIGN_TOP?1:k==mxConstants.ALIGN_BOTTOM?0:.3,e=g==mxConstants.ALIGN_RIGHT?"end":g==mxConstants.ALIGN_LEFT?"start":"middle",g=this.createElement("text"),g.setAttribute("x",Math.round(b+d.dx)),g.setAttribute("y",Math.round(c+d.dy+k*d.fontSize)),g.setAttribute("fill",d.fontColor||"black"),g.setAttribute("font-family",
d.fontFamily),g.setAttribute("font-size",Math.round(d.fontSize)+"px"),"start"!=e&&g.setAttribute("text-anchor",e),(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&g.setAttribute("font-weight","bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&g.setAttribute("font-style","italic"),b=[],(d.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(d.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),
-0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
+0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};
+mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":e==mxConstants.DIRECTION_RADIAL?c="r":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
-mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
-e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
+mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement(e==mxConstants.DIRECTION_RADIAL?"radialGradient":"linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");
+c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&(!a||null==d.fillColor)&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=
c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
@@ -2044,10 +2045,10 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,e){var d=a.getSelectionCellsForChanges(e.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var m=[],c=0;c<
d.length;c++)null!=a.view.getState(d[c])&&m.push(d[c]);a.setSelectionCells(m)}};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,e,d,m,n,q,c,f,g,k){var l=f?57:0,p=e,u=d,t=f?0:64,A=mxUtils.getDocumentSize();null!=window.innerHeight&&(A.height=window.innerHeight);var y=A.height,I=Math.max(1,Math.round((A.width-e-t)/2)),x=Math.max(1,Math.round((y-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-t):e;d=Math.min(d,y-t);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",
+function Dialog(a,b,e,d,m,n,q,c,f,g,p){var l=f?57:0,k=e,u=d,t=f?0:64,A=mxUtils.getDocumentSize();null!=window.innerHeight&&(A.height=window.innerHeight);var y=A.height,I=Math.max(1,Math.round((A.width-e-t)/2)),x=Math.max(1,Math.round((y-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-t):e;d=Math.min(d,y-t);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",
this.bg.style.background=Dialog.backdropColor,this.bg.style.height=y+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));A=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=A.x+"px";this.bg.style.top=A.y+"px";I+=A.x;x+=A.y;m&&document.body.appendChild(this.bg);var F=a.createDiv(f?"geTransDialog":"geDialog");m=this.getPosition(I,x,e,d);I=m.x;x=m.y;F.style.width=e+"px";F.style.height=d+"px";F.style.left=I+"px";F.style.top=x+"px";F.style.zIndex=
-this.zIndex;F.appendChild(b);document.body.appendChild(F);!c&&b.clientHeight>F.clientHeight-t&&(b.style.overflowY="auto");if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=x+14+"px",n.style.left=I+e+38-l+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=n,!k)){var H=!1;
-mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){H=!0}),null,mxUtils.bind(this,function(c){H&&(a.hideDialog(!0),H=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var f=g();null!=f&&(p=e=f.w,u=d=f.h)}f=mxUtils.getDocumentSize();y=f.height;this.bg.style.height=y+"px";I=Math.max(1,Math.round((f.width-e-t)/2));x=Math.max(1,Math.round((y-d-a.footerHeight)/3));e=null!=document.body?Math.min(p,document.body.scrollWidth-t):p;d=Math.min(u,y-t);f=this.getPosition(I,x,e,
+this.zIndex;F.appendChild(b);document.body.appendChild(F);!c&&b.clientHeight>F.clientHeight-t&&(b.style.overflowY="auto");if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=x+14+"px",n.style.left=I+e+38-l+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=n,!p)){var H=!1;
+mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){H=!0}),null,mxUtils.bind(this,function(c){H&&(a.hideDialog(!0),H=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var f=g();null!=f&&(k=e=f.w,u=d=f.h)}f=mxUtils.getDocumentSize();y=f.height;this.bg.style.height=y+"px";I=Math.max(1,Math.round((f.width-e-t)/2));x=Math.max(1,Math.round((y-d-a.footerHeight)/3));e=null!=document.body?Math.min(k,document.body.scrollWidth-t):k;d=Math.min(u,y-t);f=this.getPosition(I,x,e,
d);I=f.x;x=f.y;F.style.left=I+"px";F.style.top=x+"px";F.style.width=e+"px";F.style.height=d+"px";!c&&b.clientHeight>F.clientHeight-t&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=x+14+"px",this.dialogImg.style.left=I+e+38-l+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=F;a.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";
@@ -2057,42 +2058,42 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
"/locked.png";
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a,b){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,b))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(a,b,e,d,m,n,q,c,f,g,k){f=null!=f?f:!0;var l=document.createElement("div");l.style.textAlign="center";if(null!=b){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,b);p.setAttribute("title",b);l.appendChild(p)}b=
-document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;l.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=n&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();n()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=k&&k()}),g.className="geBtn",e.appendChild(g));var u=mxUtils.button(d,function(){f&&a.hideDialog();null!=m&&m()});
+var ErrorDialog=function(a,b,e,d,m,n,q,c,f,g,p){f=null!=f?f:!0;var l=document.createElement("div");l.style.textAlign="center";if(null!=b){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="10px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";k.style.whiteSpace="nowrap";k.style.textOverflow="ellipsis";k.style.overflow="hidden";mxUtils.write(k,b);k.setAttribute("title",b);l.appendChild(k)}b=
+document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;l.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=n&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();n()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=p&&p()}),g.className="geBtn",e.appendChild(g));var u=mxUtils.button(d,function(){f&&a.hideDialog();null!=m&&m()});
u.className="geBtn";e.appendChild(u);null!=q&&(d=mxUtils.button(q,function(){f&&a.hideDialog();null!=c&&c()}),d.className="geBtn gePrimaryBtn",e.appendChild(d));this.init=function(){u.focus()};l.appendChild(e);this.container=l},PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var f=c.checked||g.checked,b=parseInt(l.value)/100;isNaN(b)&&(b=1,l.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,p=1/e.pageScale;if(f){var n=c.checked?1:parseInt(k.value);isNaN(n)||(p=mxUtils.getScaleForPageCount(n,e,d))}e.getGraphBounds();var u=n=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);p*=b;!f&&e.pageVisible?(b=e.getPageLayout(),n-=b.x*d.width,u-=b.y*d.height):
-f=!0;f=PrintDialog.createPrintPreview(e,p,d,0,n,u,f);f.open();a&&PrintDialog.printPreview(f)}var e=a.editor.graph,d,m,n=document.createElement("table");n.style.width="100%";n.style.height="100%";var q=document.createElement("tbody");d=document.createElement("tr");var c=document.createElement("input");c.setAttribute("type","checkbox");m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(c);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
+PrintDialog.prototype.create=function(a){function b(a){var f=c.checked||g.checked,b=parseInt(l.value)/100;isNaN(b)&&(b=1,l.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(f){var n=c.checked?1:parseInt(p.value);isNaN(n)||(k=mxUtils.getScaleForPageCount(n,e,d))}e.getGraphBounds();var u=n=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);k*=b;!f&&e.pageVisible?(b=e.getPageLayout(),n-=b.x*d.width,u-=b.y*d.height):
+f=!0;f=PrintDialog.createPrintPreview(e,k,d,0,n,u,f);f.open();a&&PrintDialog.printPreview(f)}var e=a.editor.graph,d,m,n=document.createElement("table");n.style.width="100%";n.style.height="100%";var q=document.createElement("tbody");d=document.createElement("tr");var c=document.createElement("input");c.setAttribute("type","checkbox");m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(c);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
m.appendChild(f);mxEvent.addListener(f,"click",function(a){c.checked=!c.checked;g.checked=!c.checked;mxEvent.consume(a)});mxEvent.addListener(c,"change",function(){g.checked=!c.checked});d.appendChild(m);q.appendChild(d);d=d.cloneNode(!1);var g=document.createElement("input");g.setAttribute("type","checkbox");m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(g);f=document.createElement("span");mxUtils.write(f," "+mxResources.get("posterPrint")+":");m.appendChild(f);mxEvent.addListener(f,
-"click",function(a){g.checked=!g.checked;c.checked=!g.checked;mxEvent.consume(a)});d.appendChild(m);var k=document.createElement("input");k.setAttribute("value","1");k.setAttribute("type","number");k.setAttribute("min","1");k.setAttribute("size","4");k.setAttribute("disabled","disabled");k.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(k);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);q.appendChild(d);mxEvent.addListener(g,"change",
-function(){g.checked?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled");c.checked=!g.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var l=document.createElement("input");l.setAttribute("value","100 %");l.setAttribute("size","5");l.style.width="50px";m.appendChild(l);d.appendChild(m);q.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2;
-m.style.paddingTop="20px";m.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&m.appendChild(f);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";m.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";m.appendChild(p);a.editor.cancelFirst||
+"click",function(a){g.checked=!g.checked;c.checked=!g.checked;mxEvent.consume(a)});d.appendChild(m);var p=document.createElement("input");p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.setAttribute("size","4");p.setAttribute("disabled","disabled");p.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(p);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);q.appendChild(d);mxEvent.addListener(g,"change",
+function(){g.checked?p.removeAttribute("disabled"):p.setAttribute("disabled","disabled");c.checked=!g.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var l=document.createElement("input");l.setAttribute("value","100 %");l.setAttribute("size","5");l.style.width="50px";m.appendChild(l);d.appendChild(m);q.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2;
+m.style.paddingTop="20px";m.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&m.appendChild(f);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});k.className="geBtn";m.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});k.className="geBtn gePrimaryBtn";m.appendChild(k);a.editor.cancelFirst||
m.appendChild(f);d.appendChild(m);q.appendChild(d);n.appendChild(q);this.container=n};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(e){}};
PrintDialog.createPrintPreview=function(a,b,e,d,m,n,q){b=new mxPrintPreview(a,b,e,d,m,n);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=q;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var c=b.writeHead;b.writeHead=function(a){c.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function b(){null==k||k==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=k,g.style.backgroundImage="")}function e(){null==u?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(p.setAttribute("title",u.src),p.style.fontSize="11px",p.innerHTML=mxUtils.htmlEntities(u.src.substring(0,42))+"...")}var d=a.editor.graph,m,
+var PageSetupDialog=function(a){function b(){null==p||p==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=p,g.style.backgroundImage="")}function e(){null==u?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(k.setAttribute("title",u.src),k.style.fontSize="11px",k.innerHTML=mxUtils.htmlEntities(u.src.substring(0,42))+"...")}var d=a.editor.graph,m,
n,q=document.createElement("table");q.style.width="100%";q.style.height="100%";var c=document.createElement("tbody");m=document.createElement("tr");n=document.createElement("td");n.style.verticalAlign="top";n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("paperSize")+":");m.appendChild(n);n=document.createElement("td");n.style.verticalAlign="top";n.style.fontSize="10pt";var f=PageSetupDialog.addPageFormatPanel(n,"pagesetupdialog",d.pageFormat);m.appendChild(n);c.appendChild(m);m=document.createElement("tr");
-n=document.createElement("td");mxUtils.write(n,mxResources.get("background")+":");m.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="18px";g.style.height="18px";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";var k=d.background;b();mxEvent.addListener(g,"click",function(c){a.pickColor(k||"none",function(a){k=
+n=document.createElement("td");mxUtils.write(n,mxResources.get("background")+":");m.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="18px";g.style.height="18px";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";var p=d.background;b();mxEvent.addListener(g,"click",function(c){a.pickColor(p||"none",function(a){p=
a;b()});mxEvent.consume(c)});n.appendChild(g);mxUtils.write(n,mxResources.get("gridSize")+":");var l=document.createElement("input");l.setAttribute("type","number");l.setAttribute("min","0");l.style.width="40px";l.style.marginLeft="6px";l.value=d.getGridSize();n.appendChild(l);mxEvent.addListener(l,"change",function(){var a=parseInt(l.value);l.value=Math.max(1,isNaN(a)?d.getGridSize():a)});m.appendChild(n);c.appendChild(m);m=document.createElement("tr");n=document.createElement("td");mxUtils.write(n,
-mxResources.get("image")+":");m.appendChild(n);n=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var u=d.backgroundImage;mxEvent.addListener(p,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(u=a,e())},u);mxEvent.consume(c)});e();n.appendChild(p);m.appendChild(n);c.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align",
-"right");var t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&n.appendChild(t);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(l.value);isNaN(c)||d.gridSize===c||d.setGridSize(c);c=new ChangePageSetup(a,k,u,f.get());c.ignoreColor=d.background==k;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=u?u.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==
+mxResources.get("image")+":");m.appendChild(n);n=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var u=d.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(u=a,e())},u);mxEvent.consume(c)});e();n.appendChild(k);m.appendChild(n);c.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align",
+"right");var t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&n.appendChild(t);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(l.value);isNaN(c)||d.gridSize===c||d.setGridSize(c);c=new ChangePageSetup(a,p,u,f.get());c.ignoreColor=d.background==p;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=u?u.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==
c.previousFormat.height&&c.ignoreColor&&c.ignoreImage||d.model.execute(c)});A.className="geBtn gePrimaryBtn";n.appendChild(A);a.editor.cancelFirst||n.appendChild(t);m.appendChild(n);c.appendChild(m);q.appendChild(c);this.container=q};
-PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function m(a,b,d){if(d||l!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<t.length;b++)d=t[b],x?"custom"==d.key&&(c.value=d.key,x=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
-e.height==d.format.height?(c.value=d.key,n.setAttribute("checked","checked"),n.defaultChecked=!0,n.checked=!0,q.removeAttribute("checked"),q.defaultChecked=!1,q.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(c.value=d.key,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,q.setAttribute("checked","checked"),q.defaultChecked=!0,a=q.checked=!0));a?(f.style.display="",k.style.display="none"):(l.value=e.width/100,p.value=e.height/100,n.setAttribute("checked","checked"),
-c.value="custom",f.style.display="none",k.style.display="")}}b="format-"+b;var n=document.createElement("input");n.setAttribute("name",b);n.setAttribute("type","radio");n.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",b);q.setAttribute("type","radio");q.setAttribute("value","landscape");var c=document.createElement("select");c.style.marginBottom="8px";c.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);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));f.appendChild(b);q.style.marginLeft="10px";q.style.marginRight="6px";f.appendChild(q);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));f.appendChild(g);var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";k.style.height="24px";var l=document.createElement("input");
-l.setAttribute("size","7");l.style.textAlign="right";k.appendChild(l);mxUtils.write(k," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";k.appendChild(p);mxUtils.write(k," in");f.style.display="none";k.style.display="none";for(var u={},t=PageSetupDialog.getFormats(),A=0;A<t.length;A++){var y=t[A];u[y.key]=y;var I=document.createElement("option");I.setAttribute("value",y.key);mxUtils.write(I,y.title);c.appendChild(I)}var x=!1;m();a.appendChild(c);mxUtils.br(a);
-a.appendChild(f);a.appendChild(k);var F=e,H=function(a,b){var g=u[c.value];null!=g.format?(l.value=g.format.width/100,p.value=g.format.height/100,k.style.display="none",f.style.display=""):(f.style.display="none",k.style.display="");g=parseFloat(l.value);if(isNaN(g)||0>=g)l.value=e.width/100;g=parseFloat(p.value);if(isNaN(g)||0>=g)p.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(l.value)),Math.floor(100*parseFloat(p.value)));"custom"!=c.value&&q.checked&&(g=new mxRectangle(0,0,
-g.height,g.width));b&&x||g.width==F.width&&g.height==F.height||(F=g,null!=d&&d(F))};mxEvent.addListener(b,"click",function(a){n.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){q.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(l,"blur",H);mxEvent.addListener(l,"click",H);mxEvent.addListener(p,"blur",H);mxEvent.addListener(p,"click",H);mxEvent.addListener(q,"change",H);mxEvent.addListener(n,"change",H);mxEvent.addListener(c,"change",function(a){x="custom"==c.value;
-H(a,!0)});H();return{set:function(a){e=a;m(null,null,!0)},get:function(){return F},widthInput:l,heightInput:p}};
+PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function m(a,b,d){if(d||l!=document.activeElement&&k!=document.activeElement){a=!1;for(b=0;b<t.length;b++)d=t[b],x?"custom"==d.key&&(c.value=d.key,x=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
+e.height==d.format.height?(c.value=d.key,n.setAttribute("checked","checked"),n.defaultChecked=!0,n.checked=!0,q.removeAttribute("checked"),q.defaultChecked=!1,q.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(c.value=d.key,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,q.setAttribute("checked","checked"),q.defaultChecked=!0,a=q.checked=!0));a?(f.style.display="",p.style.display="none"):(l.value=e.width/100,k.value=e.height/100,n.setAttribute("checked","checked"),
+c.value="custom",f.style.display="none",p.style.display="")}}b="format-"+b;var n=document.createElement("input");n.setAttribute("name",b);n.setAttribute("type","radio");n.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",b);q.setAttribute("type","radio");q.setAttribute("value","landscape");var c=document.createElement("select");c.style.marginBottom="8px";c.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);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));f.appendChild(b);q.style.marginLeft="10px";q.style.marginRight="6px";f.appendChild(q);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));f.appendChild(g);var p=document.createElement("div");p.style.marginLeft="4px";p.style.width="210px";p.style.height="24px";var l=document.createElement("input");
+l.setAttribute("size","7");l.style.textAlign="right";p.appendChild(l);mxUtils.write(p," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";p.appendChild(k);mxUtils.write(p," in");f.style.display="none";p.style.display="none";for(var u={},t=PageSetupDialog.getFormats(),A=0;A<t.length;A++){var y=t[A];u[y.key]=y;var I=document.createElement("option");I.setAttribute("value",y.key);mxUtils.write(I,y.title);c.appendChild(I)}var x=!1;m();a.appendChild(c);mxUtils.br(a);
+a.appendChild(f);a.appendChild(p);var F=e,H=function(a,b){var g=u[c.value];null!=g.format?(l.value=g.format.width/100,k.value=g.format.height/100,p.style.display="none",f.style.display=""):(f.style.display="none",p.style.display="");g=parseFloat(l.value);if(isNaN(g)||0>=g)l.value=e.width/100;g=parseFloat(k.value);if(isNaN(g)||0>=g)k.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(l.value)),Math.floor(100*parseFloat(k.value)));"custom"!=c.value&&q.checked&&(g=new mxRectangle(0,0,
+g.height,g.width));b&&x||g.width==F.width&&g.height==F.height||(F=g,null!=d&&d(F))};mxEvent.addListener(b,"click",function(a){n.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){q.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(l,"blur",H);mxEvent.addListener(l,"click",H);mxEvent.addListener(k,"blur",H);mxEvent.addListener(k,"click",H);mxEvent.addListener(q,"change",H);mxEvent.addListener(n,"change",H);mxEvent.addListener(c,"change",function(a){x="custom"==c.value;
+H(a,!0)});H();return{set:function(a){e=a;m(null,null,!0)},get:function(){return F},widthInput:l,heightInput:k}};
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(a,b,e,d,m,n,q,c,f,g,k,l){f=null!=f?f:!0;var p,u,t=document.createElement("table"),A=document.createElement("tbody");t.style.marginTop="8px";p=document.createElement("tr");u=document.createElement("td");u.style.whiteSpace="nowrap";u.style.fontSize="10pt";u.style.width=k?"80px":"120px";mxUtils.write(u,(m||mxResources.get("filename"))+":");p.appendChild(u);var y=document.createElement("input");y.setAttribute("value",b||"");y.style.marginLeft="4px";y.style.width=null!=l?l+
+var FilenameDialog=function(a,b,e,d,m,n,q,c,f,g,p,l){f=null!=f?f:!0;var k,u,t=document.createElement("table"),A=document.createElement("tbody");t.style.marginTop="8px";k=document.createElement("tr");u=document.createElement("td");u.style.whiteSpace="nowrap";u.style.fontSize="10pt";u.style.width=p?"80px":"120px";mxUtils.write(u,(m||mxResources.get("filename"))+":");k.appendChild(u);var y=document.createElement("input");y.setAttribute("value",b||"");y.style.marginLeft="4px";y.style.width=null!=l?l+
"px":"180px";var I=mxUtils.button(e,function(){if(null==n||n(y.value))f&&a.hideDialog(),d(y.value)});I.className="geBtn gePrimaryBtn";this.init=function(){if(null!=m||null==q)if(y.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?y.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=t.parentNode;if(null!=a){var c=null;mxEvent.addListener(a,"dragleave",function(a){null!=c&&(c.style.backgroundColor="",c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=y,c.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=c&&(c.style.backgroundColor="",c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(y.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),I.click());a.stopPropagation();a.preventDefault()}))}}};u=document.createElement("td");u.style.whiteSpace=
-"nowrap";u.appendChild(y);p.appendChild(u);if(null!=m||null==q)A.appendChild(p),null!=k&&(null!=a.editor.diagramFileTypes&&(p=FilenameDialog.createFileTypes(a,y,a.editor.diagramFileTypes),p.style.marginLeft="6px",p.style.width="74px",u.appendChild(p),y.style.width=null!=l?l-40+"px":"140px"),u.appendChild(FilenameDialog.createTypeHint(a,y,k)));null!=q&&(p=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(q),p.appendChild(u),A.appendChild(p));p=document.createElement("tr");
-u=document.createElement("td");u.colSpan=2;u.style.paddingTop="20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});k.className="geBtn";a.editor.cancelFirst&&u.appendChild(k);null!=c&&(l=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(c)}),l.className="geBtn",u.appendChild(l));mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&I.click()});u.appendChild(I);a.editor.cancelFirst||
-u.appendChild(k);p.appendChild(u);A.appendChild(p);t.appendChild(A);this.container=t};FilenameDialog.filenameHelpLink=null;
+"nowrap";u.appendChild(y);k.appendChild(u);if(null!=m||null==q)A.appendChild(k),null!=p&&(null!=a.editor.diagramFileTypes&&(k=FilenameDialog.createFileTypes(a,y,a.editor.diagramFileTypes),k.style.marginLeft="6px",k.style.width="74px",u.appendChild(k),y.style.width=null!=l?l-40+"px":"140px"),u.appendChild(FilenameDialog.createTypeHint(a,y,p)));null!=q&&(k=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(q),k.appendChild(u),A.appendChild(k));k=document.createElement("tr");
+u=document.createElement("td");u.colSpan=2;u.style.paddingTop="20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});p.className="geBtn";a.editor.cancelFirst&&u.appendChild(p);null!=c&&(l=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(c)}),l.className="geBtn",u.appendChild(l));mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&I.click()});u.appendChild(I);a.editor.cancelFirst||
+u.appendChild(p);k.appendChild(u);A.appendChild(k);t.appendChild(A);this.container=t};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,b,e){var d=document.createElement("img");d.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(d,70);var m=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var a=0;a<e.length;a++)if(0<e[a].ext.length&&b.value.toLowerCase().substring(b.value.length-e[a].ext.length-1)=="."+e[a].ext){d.setAttribute("src",
mxClient.imageBasePath+"/warning.png");d.setAttribute("title",mxResources.get(e[a].title));break}};mxEvent.addListener(b,"keyup",m);mxEvent.addListener(b,"change",m);mxEvent.addListener(d,"click",function(b){var e=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&a.showError(null,e,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
mxEvent.consume(b)});m();return d};
@@ -2103,36 +2104,36 @@ this.backgroundPageShape.init(a.container),f.style.position="absolute",a.contain
a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=c,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}};
mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,c=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,f=null!=c&&this.gridColor!=c.toLowerCase()?this.gridColor:"#ffffff",b="none",d="";if(a.isGridEnabled()||a.gridVisible){d=10;mxClient.IS_SVG?(b=unescape(encodeURIComponent(this.createSvgGrid(f))),b=window.btoa?btoa(b):Base64.encode(b,!0),b="url(data:image/svg+xml;base64,"+b+")",d=a.gridSize*this.scale*this.gridSteps):b="url("+this.gridImage+
")";var e=f=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),f=1+e.x,e=1+e.y);d=-Math.round(d-mxUtils.mod(this.translate.x*this.scale-f,d))+"px "+-Math.round(d-mxUtils.mod(this.translate.y*this.scale-e,d))+"px"}f=a.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=d,a.view.backgroundPageShape.node.style.backgroundImage=b,a.view.backgroundPageShape.node.style.backgroundColor=c,a.view.backgroundPageShape.node.style.borderColor=
-a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(a.container.className="geDiagramContainer",f.style.backgroundPosition=d,f.style.backgroundColor=c,f.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var c=this.graph.gridSize*this.scale;c<this.minGridSize;)c*=2;for(var b=this.gridSteps*c,d=[],e=1;e<this.gridSteps;e++){var l=e*c;d.push("M 0 "+l+" L "+b+" "+l+" M "+l+" 0 L "+l+
-" "+b)}return'<svg width="'+b+'" height="'+b+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+b+'" height="'+b+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+b+" 0 L 0 0 0 "+b+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);
-if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var d=this.gridSize*this.view.scale*this.view.gridSteps,d=-Math.round(d-mxUtils.mod(this.view.translate.x*this.view.scale+b,d))+"px "+-Math.round(d-mxUtils.mod(this.view.translate.y*this.view.scale+c,d))+"px";f.style.backgroundPosition=d}};mxGraph.prototype.updatePageBreaks=function(a,c,b){var f=this.view.scale,d=this.view.translate,e=this.pageFormat,p=f*this.pageScale,n=this.view.getBackgroundPageBounds();
-c=n.width;b=n.height;var t=new mxRectangle(f*d.x,f*d.y,e.width*p,e.height*p),m=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(b/t.height)-1:0,y=a?Math.ceil(c/t.width)-1:0,q=n.x+c,x=n.y+b;null==this.horizontalPageBreaks&&0<m&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<y&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?m:y,b=0;b<=c;b++){var f=a==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
+a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(a.container.className="geDiagramContainer",f.style.backgroundPosition=d,f.style.backgroundColor=c,f.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var c=this.graph.gridSize*this.scale;c<this.minGridSize;)c*=2;for(var f=this.gridSteps*c,b=[],d=1;d<this.gridSteps;d++){var e=d*c;b.push("M 0 "+e+" L "+f+" "+e+" M "+e+" 0 L "+e+
+" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+b.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);
+if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var d=this.gridSize*this.view.scale*this.view.gridSteps,d=-Math.round(d-mxUtils.mod(this.view.translate.x*this.view.scale+b,d))+"px "+-Math.round(d-mxUtils.mod(this.view.translate.y*this.view.scale+c,d))+"px";f.style.backgroundPosition=d}};mxGraph.prototype.updatePageBreaks=function(a,c,b){var f=this.view.scale,d=this.view.translate,e=this.pageFormat,k=f*this.pageScale,n=this.view.getBackgroundPageBounds();
+c=n.width;b=n.height;var t=new mxRectangle(f*d.x,f*d.y,e.width*k,e.height*k),m=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(b/t.height)-1:0,y=a?Math.ceil(c/t.width)-1:0,q=n.x+c,x=n.y+b;null==this.horizontalPageBreaks&&0<m&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<y&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?m:y,b=0;b<=c;b++){var f=a==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
Math.round(n.y+(b+1)*t.height)),new mxPoint(Math.round(q),Math.round(n.y+(b+1)*t.height))]:[new mxPoint(Math.round(n.x+(b+1)*t.width),Math.round(n.y)),new mxPoint(Math.round(n.x+(b+1)*t.width),Math.round(x))];null!=a[b]?(a[b].points=f,a[b].redraw()):(f=new mxPolyline(f,this.pageBreakColor),f.dialect=this.dialect,f.isDashed=this.pageBreakDashed,f.pointerEvents=!1,f.init(this.view.backgroundPane),f.redraw(),a[b]=f)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);
a(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,c,f){for(var d=0;d<c.length;d++){if(this.graph.isTableCell(c[d])||this.graph.isTableRow(c[d]))return!1;if(this.graph.getModel().isVertex(c[d])){var e=this.graph.getCellGeometry(c[d]);if(null!=e&&e.relative)return!1}}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(c,b){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),c=0<a.width?a.x/this.scale-this.translate.x:0,b=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
-e=this.graph.pageScale,l=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,c)/l),p=Math.floor(Math.min(0,b)/d);return new mxRectangle(this.scale*(this.translate.x+e*l),this.scale*(this.translate.y+p*d),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/l)-e)*l,this.scale*(Math.ceil(Math.max(1,b+a.height/this.scale)/d)-p)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
+e=this.graph.pageScale,l=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,c)/l),k=Math.floor(Math.min(0,b)/d);return new mxRectangle(this.scale*(this.translate.x+e*l),this.scale*(this.translate.y+k*d),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/l)-e)*l,this.scale*(Math.ceil(Math.max(1,b+a.height/this.scale)/d)-k)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var m=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,c,b,d,e,l){var f=m.apply(this,arguments);null==l||l||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var n=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
function(a,c,b){var f,d=this.graph.model.getParent(a);if(c)f=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),f=!this.graph.model.isEdge(d)&&!this.graph.isSiblingSelected(a)&&(null!=f&&f.relative||!this.graph.isContainer(d)||this.graph.isPart(a));else if(f=n.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))f=d,this.graph.isTable(f)||(f=this.graph.model.getParent(f)),f=!this.graph.selectionCellsHandler.isHandled(f)||this.graph.isCellSelected(f)&&this.graph.isToggleEvent(b.getEvent())||
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(b.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(d);return f};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var c=this.graph.getModel(),b=c.getParent(a),d=this.graph.view.getState(b),e=this.graph.isCellSelected(a);null!=d&&(c.isVertex(b)||c.isEdge(b));){var l=this.graph.isCellSelected(b),e=e||l;if(l||!e&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=b;b=c.getParent(b)}return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;this.initialDefaultVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.initialDefaultEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=
mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!d.standalone){var m="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
-n="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),l=null!=e?e.split(";"):[],e=0;e<l.length;e++){var k=
-l[e],p=k.indexOf("=");if(0<=p){g=k.substring(0,p);var n=k.substring(p+1);null!=f[g]&&"none"==n&&(a.push(n),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(aa){this.handleError(aa)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
-"keys",[],"values",[],"cells",[]))};var q=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<q.length;b++)0>mxUtils.indexOf(m,q[b])&&m.push(q[b]);var c="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),f=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["align","verticalAlign"],["opacity"],["html"]];for(b=0;b<f.length;b++)for(e=
-0;e<f[b].length;e++)m.push(f[b][e]);for(b=0;b<n.length;b++)0>mxUtils.indexOf(m,n[b])&&m.push(n[b]);var g=function(a,c,b,g,e,l,k){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;b=null!=b?b:d.getModel();if(k){k=[];for(var v=0;v<a.length;v++)k=k.concat(b.getDescendants(a[v]));a=k}b.beginUpdate();try{for(v=0;v<a.length;v++){var p=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(p),u=null!=t?t.split(";"):[];B=m.slice();for(var C=0;C<u.length;C++){var E=u[C],y=
-E.indexOf("=");if(0<=y){var x=E.substring(0,y),q=mxUtils.indexOf(B,x);0<=q&&B.splice(q,1);for(k=0;k<f.length;k++){var N=f[k];if(0<=mxUtils.indexOf(N,x))for(var A=0;A<N.length;A++){var H=mxUtils.indexOf(B,N[A]);0<=H&&B.splice(H,1)}}}}}var O=b.isEdge(p);k=O?e:g;for(var F=b.getStyle(p),C=0;C<B.length;C++){var x=B[C],I=k[x];null!=I&&("shape"!=x||O)&&(!O||l||0>mxUtils.indexOf(n,x))&&(F=mxUtils.setStyle(F,x,I))}Editor.simpleLabels&&(F=mxUtils.setStyle(mxUtils.setStyle(F,"html",null),"whiteSpace",null));
-b.setStyle(p,F)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){g(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){g(c.getProperty("cells"),!0)});this.insertHandler=g;this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown=k,this.toolbarContainer.onselectstart=
-k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=
-c;){if("geHint"==c.className)return!0;c=c.parentNode}}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var l=
-d.graphHandler.start;d.graphHandler.start=function(){null!=G.hoverIcons&&G.hoverIcons.reset();l.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var p=
-!1,u=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return p||u.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(p=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor=
-"";p=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||p||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,
-arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var y=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return p||y.apply(this,arguments)};var I=!1,x=null,F=null,H=null,L=mxUtils.bind(this,function(){if(null!=this.toolbar&&I!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
+n="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),l=null!=e?e.split(";"):[],e=0;e<l.length;e++){var p=
+l[e],k=p.indexOf("=");if(0<=k){g=p.substring(0,k);var n=p.substring(k+1);null!=f[g]&&"none"==n&&(a.push(n),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(aa){this.handleError(aa)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
+"keys",[],"values",[],"cells",[]))};var q=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<q.length;b++)0>mxUtils.indexOf(m,q[b])&&m.push(q[b]);var c="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),f=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(b=
+0;b<f.length;b++)for(e=0;e<f[b].length;e++)m.push(f[b][e]);for(b=0;b<n.length;b++)0>mxUtils.indexOf(m,n[b])&&m.push(n[b]);var g=function(a,c,b,g,e,p,l){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;b=null!=b?b:d.getModel();if(l){l=[];for(var v=0;v<a.length;v++)l=l.concat(b.getDescendants(a[v]));a=l}b.beginUpdate();try{for(v=0;v<a.length;v++){var k=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(k),u=null!=t?t.split(";"):[];B=m.slice();for(var C=0;C<u.length;C++){var E=
+u[C],y=E.indexOf("=");if(0<=y){var x=E.substring(0,y),q=mxUtils.indexOf(B,x);0<=q&&B.splice(q,1);for(l=0;l<f.length;l++){var N=f[l];if(0<=mxUtils.indexOf(N,x))for(var A=0;A<N.length;A++){var H=mxUtils.indexOf(B,N[A]);0<=H&&B.splice(H,1)}}}}}var O=b.isEdge(k);l=O?e:g;for(var F=b.getStyle(k),C=0;C<B.length;C++){var x=B[C],I=l[x];null!=I&&("shape"!=x||O)&&(!O||p||0>mxUtils.indexOf(n,x))&&(F=mxUtils.setStyle(F,x,I))}Editor.simpleLabels&&(F=mxUtils.setStyle(mxUtils.setStyle(F,"html",null),"whiteSpace",
+null));b.setStyle(k,F)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){g(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){g(c.getProperty("cells"),!0)});this.insertHandler=g;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});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?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=
+c;){if("geHint"==c.className)return!0;c=c.parentNode}}return p(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var l=
+d.graphHandler.start;d.graphHandler.start=function(){null!=G.hoverIcons&&G.hoverIcons.reset();l.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var k=
+!1,u=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return k||u.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(k=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor=
+"";k=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||k||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,
+arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var y=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return k||y.apply(this,arguments)};var I=!1,x=null,F=null,H=null,L=mxUtils.bind(this,function(){if(null!=this.toolbar&&I!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
c.push(a));a=b}a=this.toolbar.fontMenu;b=this.toolbar.sizeMenu;if(null==H)this.toolbar.createTextToolbar();else{for(var f=0;f<H.length;f++)this.toolbar.container.appendChild(H[f]);this.toolbar.fontMenu=x;this.toolbar.sizeMenu=F}I=d.cellEditor.isContentEditing();x=a;F=b;H=c}}),G=this,J=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){J.apply(this,arguments);L();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=d.getSelectedEditingElement();
null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=G.toolbar&&(G.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),G.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var D=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){try{D.apply(this,arguments),L()}catch(N){G.handleError(N)}};
d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(O){}var M=d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();M.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&(b.push(c.getProperty("terminal")),window.setTimeout(function(){null!=G.hoverIcons&&G.hoverIcons.update(d.view.getState(b[b.length-1]))},0));g(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var f=b.getProperty("cells"),
-g=!1,e=!1;if(0<f.length)for(var k=0;k<f.length&&(g=d.getModel().isVertex(f[k])||g,!(e=d.getModel().isEdge(f[k])||e)||!g);k++);else e=g=!0;for(var f=b.getProperty("keys"),l=b.getProperty("values"),k=0;k<f.length;k++){var p=0<=mxUtils.indexOf(q,f[k]);if("strokeColor"!=f[k]||null!=l[k]&&"none"!=l[k])if(0<=mxUtils.indexOf(n,f[k]))e||0<=mxUtils.indexOf(c,f[k])?null==l[k]?delete d.currentEdgeStyle[f[k]]:d.currentEdgeStyle[f[k]]=l[k]:g&&0<=mxUtils.indexOf(m,f[k])&&(null==l[k]?delete d.currentVertexStyle[f[k]]:
-d.currentVertexStyle[f[k]]=l[k]);else if(0<=mxUtils.indexOf(m,f[k])){if(g||p)null==l[k]?delete d.currentVertexStyle[f[k]]:d.currentVertexStyle[f[k]]=l[k];if(e||p||0<=mxUtils.indexOf(c,f[k]))null==l[k]?delete d.currentEdgeStyle[f[k]]:d.currentEdgeStyle[f[k]]=l[k]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
+g=!1,e=!1;if(0<f.length)for(var l=0;l<f.length&&(g=d.getModel().isVertex(f[l])||g,!(e=d.getModel().isEdge(f[l])||e)||!g);l++);else e=g=!0;for(var f=b.getProperty("keys"),p=b.getProperty("values"),l=0;l<f.length;l++){var k=0<=mxUtils.indexOf(q,f[l]);if("strokeColor"!=f[l]||null!=p[l]&&"none"!=p[l])if(0<=mxUtils.indexOf(n,f[l]))e||0<=mxUtils.indexOf(c,f[l])?null==p[l]?delete d.currentEdgeStyle[f[l]]:d.currentEdgeStyle[f[l]]=p[l]:g&&0<=mxUtils.indexOf(m,f[l])&&(null==p[l]?delete d.currentVertexStyle[f[l]]:
+d.currentVertexStyle[f[l]]=p[l]);else if(0<=mxUtils.indexOf(m,f[l])){if(g||k)null==p[l]?delete d.currentVertexStyle[f[l]]:d.currentVertexStyle[f[l]]=p[l];if(e||k||0<=mxUtils.indexOf(c,f[l]))null==p[l]?delete d.currentEdgeStyle[f[l]]:d.currentEdgeStyle[f[l]]=p[l]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
@@ -2146,12 +2147,12 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"
arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
EditorUi.prototype.installShapePicker=function(){var a=this.editor.graph,b=this;a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){"mouseDown"==c.getProperty("eventName")&&b.hideShapePicker()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));var e=
a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(e,c){if(this.isEnabled())if(null!=c||null==b.sidebar||mxEvent.isShiftDown(e)||a.isCellLocked(a.getDefaultParent()))d.apply(this,arguments);else{mxEvent.consume(e);var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.x,f.y)}),30)}};if(null!=
-this.hoverIcons){var m=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();m.apply(this,arguments)};var n=this.hoverIcons.execute;this.hoverIcons.execute=function(d,c,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?n.apply(this,arguments):this.graph.connectVertex(d.cell,c,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,e,p){var k=a.getCompositeParent(d.cell);g=a.getCellGeometry(k);for(f.consume();null!=k&&a.model.isVertex(k)&&null!=
-g&&g.relative;)cell=k,k=a.model.getParent(cell),g=a.getCellGeometry(k);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.getGraphX(),f.getGraphY(),k,mxUtils.bind(this,function(c){p(c);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(c))}),c)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,g,this)}))}}};
+this.hoverIcons){var m=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();m.apply(this,arguments)};var n=this.hoverIcons.execute;this.hoverIcons.execute=function(d,c,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?n.apply(this,arguments):this.graph.connectVertex(d.cell,c,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,e,k){var l=a.getCompositeParent(d.cell);g=a.getCellGeometry(l);for(f.consume();null!=l&&a.model.isVertex(l)&&null!=
+g&&g.relative;)cell=l,l=a.model.getParent(cell),g=a.getCellGeometry(l);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.getGraphX(),f.getGraphY(),l,mxUtils.bind(this,function(c){k(c);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(c))}),c)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,g,this)}))}}};
EditorUi.prototype.showShapePicker=function(a,b,e,d,m){a=this.createShapePicker(a,b,e,d,m,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),b=this.editor.graph,b.popupMenuHandler.hideMenu(),b.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a)};
-EditorUi.prototype.createShapePicker=function(a,b,e,d,m,n,q){var c=null;if(null!=q&&0<q.length){var f=this,g=this.editor.graph,c=document.createElement("div");m=g.view.getState(e);var k=null==e||null!=m&&g.isTransparentState(m)?null:g.copyStyle(e);e=6>q.length?35*q.length:140;c.className="geToolbarContainer geSidebarContainer geSidebar";c.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
-mxPopupMenu.prototype.zIndex+1+";";mxUtils.setPrefixedStyle(c.style,"transform","translate(-22px,-22px)");null!=g.background&&g.background!=mxConstants.NONE&&(c.style.backgroundColor=g.background);g.container.appendChild(c);e=mxUtils.bind(this,function(e){var l=document.createElement("a");l.className="geItem";l.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";c.appendChild(l);null!=k&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(k,[e]):f.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,l,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(l,"click",function(){var c=g.cloneCell(e);if(null!=d)d(c);else{c.geometry.x=g.snap(Math.round(a/g.view.scale)-g.view.translate.x-e.geometry.width/2);c.geometry.y=g.snap(Math.round(b/g.view.scale)-g.view.translate.y-e.geometry.height/2);g.model.beginUpdate();try{g.addCell(c)}finally{g.model.endUpdate()}g.setSelectionCell(c);
+EditorUi.prototype.createShapePicker=function(a,b,e,d,m,n,q){var c=null;if(null!=q&&0<q.length){var f=this,g=this.editor.graph,c=document.createElement("div");m=g.view.getState(e);var p=null==e||null!=m&&g.isTransparentState(m)?null:g.copyStyle(e);e=6>q.length?35*q.length:140;c.className="geToolbarContainer geSidebarContainer geSidebar";c.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
+mxPopupMenu.prototype.zIndex+1+";";mxUtils.setPrefixedStyle(c.style,"transform","translate(-22px,-22px)");null!=g.background&&g.background!=mxConstants.NONE&&(c.style.backgroundColor=g.background);g.container.appendChild(c);e=mxUtils.bind(this,function(e){var l=document.createElement("a");l.className="geItem";l.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";c.appendChild(l);null!=p&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(p,[e]):f.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,l,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(l,"click",function(){var c=g.cloneCell(e);if(null!=d)d(c);else{c.geometry.x=g.snap(Math.round(a/g.view.scale)-g.view.translate.x-e.geometry.width/2);c.geometry.y=g.snap(Math.round(b/g.view.scale)-g.view.translate.y-e.geometry.height/2);g.model.beginUpdate();try{g.addCell(c)}finally{g.model.endUpdate()}g.setSelectionCell(c);
g.scrollCellToVisible(c);g.startEditingAtCell(c);null!=f.hoverIcons&&f.hoverIcons.update(g.view.getState(c))}null!=n&&n()})});for(m=0;m<q.length;m++)e(q[m]);q=c.offsetTop+c.clientHeight-(g.container.scrollTop+g.container.offsetHeight);0<q&&(c.style.top=Math.max(g.container.scrollTop+22,b-q)+"px");q=c.offsetLeft+c.clientWidth-(g.container.scrollLeft+g.container.offsetWidth);0<q&&(c.style.left=Math.max(g.container.scrollLeft+22,a-q)+"px")}return c};
EditorUi.prototype.getCellsForShapePicker=function(a){var b=mxUtils.bind(this,function(a,b,m,n){return this.editor.graph.createVertex(null,null,n||"",0,0,b||120,m||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("rounded=1;whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
b("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),b("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),b("triangle;whiteSpace=wrap;html=1;",60,80),b("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80),b("shape=tape;whiteSpace=wrap;html=1;",120,100),b("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
@@ -2167,21 +2168,21 @@ e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond":"g
e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())};
EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var d=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var d=d||b.getSelectionCells(),d=b.getExportableCells(b.model.getTopmostCells(d)),c={},f=b.createCellLookup(d),g=b.cloneCells(d,null,c),e=new mxGraphModel,l=e.getChildAt(e.getRoot(),
-0),p=0;p<g.length;p++){e.add(l,g[p]);var n=b.view.getState(d[p]);if(null!=n){var t=b.getCellGeometry(g[p]);null!=t&&t.relative&&!e.isEdge(d[p])&&null==f[mxObjectIdentity.get(e.getParent(d[p]))]&&(t.offset=null,t.relative=!1,t.x=n.x/n.view.scale-n.view.translate.x,t.y=n.y/n.view.scale-n.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(c,f),g);mxClipboard.insertCount=1;mxClipboard.setCells(g)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
+0),k=0;k<g.length;k++){e.add(l,g[k]);var n=b.view.getState(d[k]);if(null!=n){var t=b.getCellGeometry(g[k]);null!=t&&t.relative&&!e.isEdge(d[k])&&null==f[mxObjectIdentity.get(e.getParent(d[k]))]&&(t.offset=null,t.relative=!1,t.x=n.x/n.view.scale-n.view.translate.x,t.y=n.y/n.view.scale-n.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(c,f),g);mxClipboard.insertCount=1;mxClipboard.setCells(g)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=e.apply(this,arguments);a.updatePasteActionStates();return d};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width,
-this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,f,d){if(null!=a.container&&!a.isViewer()){f=null!=f?f:0;d=null!=d?d:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,l=a.view.scale,v=mxRectangle.fromRectangle(g);
-v.x=v.x/l-k.x;v.y=v.y/l-k.y;v.width/=l;v.height/=l;var k=a.container.scrollTop,p=a.container.scrollLeft,B=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)B+=3;var n=a.container.offsetWidth-B,B=a.container.offsetHeight-B;c=c?Math.max(.3,Math.min(b||1,n/v.width)):l;b=(n-c*v.width)/2/c;var t=0==this.lightboxVerticalDivider?0:(B-c*v.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),t=Math.max(t,0));if(e||g.width<n||g.height<B)a.view.scaleAndTranslate(c,Math.floor(b-
-v.x),Math.floor(t-v.y)),a.container.scrollTop=k*c/l,a.container.scrollLeft=p*c/l;else if(0!=f||0!=d)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+f/l),Math.floor(g.y+d/l))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,f,d){if(null!=a.container&&!a.isViewer()){f=null!=f?f:0;d=null!=d?d:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),l=a.view.translate,p=a.view.scale,v=mxRectangle.fromRectangle(g);
+v.x=v.x/p-l.x;v.y=v.y/p-l.y;v.width/=p;v.height/=p;var l=a.container.scrollTop,k=a.container.scrollLeft,B=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)B+=3;var n=a.container.offsetWidth-B,B=a.container.offsetHeight-B;c=c?Math.max(.3,Math.min(b||1,n/v.width)):p;b=(n-c*v.width)/2/c;var t=0==this.lightboxVerticalDivider?0:(B-c*v.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),t=Math.max(t,0));if(e||g.width<n||g.height<B)a.view.scaleAndTranslate(c,Math.floor(b-
+v.x),Math.floor(t-v.y)),a.container.scrollTop=l*c/p,a.container.scrollLeft=k*c/p;else if(0!=f||0!=d)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+f/p),Math.floor(g.y+d/p))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var m=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var n=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
"0":this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",n);n();var q=0,n=mxUtils.bind(this,function(a,c,b){q++;var f=document.createElement("span");f.style.paddingLeft="8px";f.style.paddingRight="8px";f.style.cursor="pointer";mxEvent.addListener(f,"click",a);null!=b&&f.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");
a.setAttribute("src",c);f.appendChild(a);this.chromelessToolbar.appendChild(f);return f});null!=m.backBtn&&n(mxUtils.bind(this,function(a){window.location.href=m.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var c=n(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),f=document.createElement("div");f.style.display="inline-block";
-f.style.verticalAlign="top";f.style.fontFamily="Helvetica,Arial";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color="#ffffff";this.chromelessToolbar.appendChild(f);var g=n(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),k=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))});c.style.paddingLeft="0px";c.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",c.style.display="",f.style.display="inline-block"):(g.style.display="none",c.style.display="none",f.style.display="none");k()});this.editor.addListener("resetGraphView",l);this.editor.addListener("pageSelected",k)}n(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
-mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,u=null,t=mxUtils.bind(this,
-function(a){null!=p&&(window.clearTimeout(p),p=null);null!=u&&(window.clearTimeout(u),u=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";u=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),p=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
+f.style.verticalAlign="top";f.style.fontFamily="Helvetica,Arial";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color="#ffffff";this.chromelessToolbar.appendChild(f);var g=n(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),p=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))});c.style.paddingLeft="0px";c.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",c.style.display="",f.style.display="inline-block"):(g.style.display="none",c.style.display="none",f.style.display="none");p()});this.editor.addListener("resetGraphView",l);this.editor.addListener("pageSelected",p)}n(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
+mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var k=null,u=null,t=mxUtils.bind(this,
+function(a){null!=k&&(window.clearTimeout(k),k=null);null!=u&&(window.clearTimeout(u),u=null);k=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);k=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";u=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=k&&(window.clearTimeout(k),k=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
a||30)});if("1"==urlParams.layers){this.layersDialog=null;var y=n(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=y.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);
this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),I=a.getModel();I.addListener(mxEvent.CHANGE,function(){y.style.display=1<I.getChildCount(I.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(n);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||n(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():
@@ -2194,8 +2195,8 @@ t():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(thi
this.getPageLayout(),b=this.getPagePadding(),f=this.getPageSize(),d=Math.ceil(2*b.x+c.width*f.width),g=Math.ceil(2*b.y+c.height*f.height),e=a.minimumGraphSize;if(null==e||e.width!=d||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,d,g);d=b.x-c.x*f.width;b=b.y-c.y*f.height;this.autoTranslate||this.view.translate.x==d&&this.view.translate.y==b?L.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,f=a.view.translate.y,a.view.setTranslate(d,b),a.container.scrollLeft+=
Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((b-f)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var G=a.view.getBackgroundPane(),J=a.view.getDrawPane();a.cumulativeZoomFactor=1;var D=null,M=null,O=null,U=null,N=null,v=function(c){null!=D&&window.clearTimeout(D);window.setTimeout(function(){if(!a.isMouseDown||U)D=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),J.style.transformOrigin="",G.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",G.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";G.style.transform=""},0)):(J.style.transform="",G.style.transform=""),a.view.getDecoratorPane().style.opacity="",
-a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),f=mxUtils.getOffset(a.container),d=a.view.scale,g=0,k=0;null!=M&&(g=a.container.offsetWidth/2-M.x+f.x,k=a.container.offsetHeight/2-M.y+f.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=d&&(null!=O&&(g+=c.x-O.x,k+=c.y-O.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=N&&J.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=U=M=O=D=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},C=Date.now();a.lazyZoom=function(c,b,f){(b=b||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-C)){C=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
+a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),f=mxUtils.getOffset(a.container),d=a.view.scale,g=0,l=0;null!=M&&(g=a.container.offsetWidth/2-M.x+f.x,l=a.container.offsetHeight/2-M.y+f.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=d&&(null!=O&&(g+=c.x-O.x,l+=c.y-O.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),l*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==l||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
+1),a.container.scrollTop-=l*(a.cumulativeZoomFactor-1)));null!=N&&J.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=U=M=O=D=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},C=Date.now();a.lazyZoom=function(c,b,f){(b=b||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-C)){C=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*
this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==N&&""!=J.getAttribute("filter")&&(N=J.getAttribute("filter"),J.removeAttribute("filter"));O=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:M.x+a.container.scrollLeft-a.container.offsetLeft;var d=b?a.container.scrollTop+a.container.clientHeight/2:M.y+a.container.scrollTop-a.container.offsetTop;J.style.transformOrigin=c+"px "+d+"px";J.style.transform="scale("+
this.cumulativeZoomFactor+")";G.style.transformOrigin=c+"px "+d+"px";G.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":M.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":M.y+
@@ -2244,10 +2245,10 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,e,d){function m(a){if(null!=q){var l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,c+(b?l.x-q.x:q.y-l.y)-e));mxEvent.consume(a);c!=k()&&(f=!0,g=null)}}function n(a){m(a);q=c=null}var q=null,c=null,f=!0,g=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var k=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){q=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));c=k();f=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!f&&this.hsplitClickEnabled){var c=null!=g?g-e:0;g=k();d(c);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,m,n);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,m,n)})};
+EditorUi.prototype.addSplitHandler=function(a,b,e,d){function m(a){if(null!=q){var l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,c+(b?l.x-q.x:q.y-l.y)-e));mxEvent.consume(a);c!=p()&&(f=!0,g=null)}}function n(a){m(a);q=c=null}var q=null,c=null,f=!0,g=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var p=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){q=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));c=p();f=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!f&&this.hsplitClickEnabled){var c=null!=g?g-e:0;g=p();d(c);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,m,n);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,m,n)})};
EditorUi.prototype.handleError=function(a,b,e,d,m){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));var n=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(m=mxUtils.htmlEntities(a.message));this.showError(b,m,n,e,null,null,null,null,null,null,null,null,d?e:null)}else null!=e&&e()};
-EditorUi.prototype.showError=function(a,b,e,d,m,n,q,c,f,g,k,l,p){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,m,n,q,l,c,f);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,g||340,k||100+20*b,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,m,n,q,c,f,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,m,n,q,c,f,g);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(a,b,e,d,m,n,q,c,f,g,p,l,k){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,m,n,q,l,c,f);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,g||340,p||100+20*b,!0,!1,k);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,m,n,q,c,f,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,m,n,q,c,f,g);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,b,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(a,b)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),e=new mxDictionary,d=[],m=0;m<b.length;m++){var n=a.isTableCell(b[m])?a.model.getParent(b[m]):b[m];null==n||e.get(n)||(e.put(n,!0),d.push(n))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(q){this.handleError(q)}};
EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),m=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),n=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(n.container,230,m,!0,!1);n.init()};
@@ -2255,7 +2256,7 @@ EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind
EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(m){}return b};
EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){if(null!=b){var d=decodeURIComponent(b);this.isCompatibleString(d)&&(b=d)}a(b)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==b&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(b){b.text().then(mxUtils.bind(this,function(b){try{var d=this.parseHtmlData(b),e="text/plain"!=d.getAttribute("data-type")?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);try{var c=e.lastIndexOf("%3E");
-0<=c&&c<e.length-3&&(e=e.substring(0,c+3))}catch(k){}try{var f=d.getElementsByTagName("span"),g=null!=f&&0<f.length?mxUtils.trim(decodeURIComponent(f[0].textContent)):decodeURIComponent(e);this.isCompatibleString(g)&&(e=g)}catch(k){}}catch(k){}a(this.isCompatibleString(e)?e:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=e&&0<e.length&&"text"==b&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
+0<=c&&c<e.length-3&&(e=e.substring(0,c+3))}catch(p){}try{var f=d.getElementsByTagName("span"),g=null!=f&&0<f.length?mxUtils.trim(decodeURIComponent(f[0].textContent)):decodeURIComponent(e);this.isCompatibleString(g)&&(e=g)}catch(p){}}catch(p){}a(this.isCompatibleString(e)?e:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=e&&0<e.length&&"text"==b&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
else a(null)}))["catch"](function(b){a(null)})};
EditorUi.prototype.parseHtmlData=function(a){var b=null;if(null!=a&&0<a.length){var e="<meta "==a.substring(0,6),b=document.createElement("div");b.innerHTML=(e?'<meta charset="utf-8">':"")+this.editor.graph.sanitizeHtml(a);asHtml=!0;a=b.getElementsByTagName("style");if(null!=a)for(;0<a.length;)a[0].parentNode.removeChild(a[0]);null!=b.firstChild&&b.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.firstChild.nextSibling&&b.firstChild.nextSibling.nodeType==mxConstants.NODETYPE_ELEMENT&&"META"==
b.firstChild.nodeName&&"A"==b.firstChild.nextSibling.nodeName&&null==b.firstChild.nextSibling.nextSibling&&(a=null==b.firstChild.nextSibling.innerText?mxUtils.getTextContent(b.firstChild.nextSibling):b.firstChild.nextSibling.innerText,a==b.firstChild.nextSibling.getAttribute("href")&&(mxUtils.setTextContent(b,a),asHtml=!1));e=e&&null!=b.firstChild?b.firstChild.nextSibling:b.firstChild;null!=e&&null==e.nextSibling&&e.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==e.nodeName?(a=e.getAttribute("src"),
@@ -2271,14 +2272,14 @@ EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(thi
EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=b?b.src:"");null!=e&&0<e.length?(b=new Image,b.onload=function(){a(new mxImage(e,b.width,b.height),!1)},b.onerror=function(){a(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},b.src=e):a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()};EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);mxEvent.addListener(window,"resize",function(){b.update(!1)});return b};
EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
-EditorUi.prototype.createKeyHandler=function(a){function b(a,b,f){q.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(b=null!=b?b:1,f){d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),g=0;g<c.length;g++)if(d.getModel().isVertex(c[g])&&d.isCellResizable(c[g])){var e=d.getCellGeometry(c[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-b):38==a?e.height=Math.max(0,e.height-b):39==a?e.width+=b:40==a&&(e.height+=b),d.getModel().setGeometry(c[g],e))}}finally{d.getModel().endUpdate()}}else{var k=
-d.getSelectionCell(),e=d.model.getParent(k),c=null;1==d.getSelectionCount()&&d.model.isVertex(k)&&null!=d.layoutManager&&!d.isCellLocked(k)&&(c=d.layoutManager.getLayout(e));if(null!=c&&c.constructor==mxStackLayout)c=e.getIndex(k),37==a||38==a?d.model.add(e,k,Math.max(0,c-1)):39!=a&&40!=a||d.model.add(e,k,Math.min(d.model.getChildCount(e),c+1));else{c=d.getMovableCells(d.getSelectionCells());k=[];for(g=0;g<c.length;g++)e=d.getCurrentCellStyle(c[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(c[g]),
-d.model.isVertex(e)&&0>mxUtils.indexOf(c,e)&&k.push(e)):k.push(c[g]);0<k.length&&(c=e=0,37==a?e=-b:38==a?c=-b:39==a?e=b:40==a&&(c=b),d.moveCells(k,e,c))}}});null!=c&&window.clearTimeout(c);c=window.setTimeout(function(){if(0<q.length){d.getModel().beginUpdate();try{for(var a=0;a<q.length;a++)q[a]();q=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,m=new mxKeyHandler(d),n=m.isEventIgnored;m.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
+EditorUi.prototype.createKeyHandler=function(a){function b(a,b,f){q.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(b=null!=b?b:1,f){d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),g=0;g<c.length;g++)if(d.getModel().isVertex(c[g])&&d.isCellResizable(c[g])){var e=d.getCellGeometry(c[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-b):38==a?e.height=Math.max(0,e.height-b):39==a?e.width+=b:40==a&&(e.height+=b),d.getModel().setGeometry(c[g],e))}}finally{d.getModel().endUpdate()}}else{var l=
+d.getSelectionCell(),e=d.model.getParent(l),c=null;1==d.getSelectionCount()&&d.model.isVertex(l)&&null!=d.layoutManager&&!d.isCellLocked(l)&&(c=d.layoutManager.getLayout(e));if(null!=c&&c.constructor==mxStackLayout)c=e.getIndex(l),37==a||38==a?d.model.add(e,l,Math.max(0,c-1)):39!=a&&40!=a||d.model.add(e,l,Math.min(d.model.getChildCount(e),c+1));else{c=d.getMovableCells(d.getSelectionCells());l=[];for(g=0;g<c.length;g++)e=d.getCurrentCellStyle(c[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(c[g]),
+d.model.isVertex(e)&&0>mxUtils.indexOf(c,e)&&l.push(e)):l.push(c[g]);0<l.length&&(c=e=0,37==a?e=-b:38==a?c=-b:39==a?e=b:40==a&&(c=b),d.moveCells(l,e,c))}}});null!=c&&window.clearTimeout(c);c=window.setTimeout(function(){if(0<q.length){d.getModel().beginUpdate();try{for(var a=0;a<q.length;a++)q[a]();q=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,m=new mxKeyHandler(d),n=m.isEventIgnored;m.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&n.apply(this,arguments)};m.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};m.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var q=[],c=
null,f={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},g=m.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var c=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=c)return c.funct}if(null!=f[a.keyCode]&&!d.isSelectionEmpty())if(!this.isControlDown(a)&&mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var c=
d.connectVertex(d.getSelectionCell(),f[a.keyCode],d.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&d.model.isEdge(c[0])?d.setSelectionCell(d.model.getTerminal(c[0],!1)):d.setSelectionCell(c[c.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return g.apply(this,
-arguments)};m.bindAction=mxUtils.bind(this,function(a,c,b,f){var d=this.actions.get(b);null!=d&&(b=function(){d.isEnabled()&&d.funct()},c?f?m.bindControlShiftKey(a,b):m.bindControlKey(a,b):f?m.bindShiftKey(a,b):m.bindKey(a,b))});var k=this,l=m.escape;m.escape=function(a){l.apply(this,arguments)};m.enter=function(){};m.bindControlShiftKey(36,function(){d.exitGroup()});m.bindControlShiftKey(35,function(){d.enterGroup()});m.bindShiftKey(36,function(){d.home()});m.bindKey(35,function(){d.refresh()});
-m.bindAction(107,!0,"zoomIn");m.bindAction(109,!0,"zoomOut");m.bindAction(80,!0,"print");m.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)m.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),m.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),m.bindControlKey(13,function(){k.ctrlEnter()}),m.bindAction(8,!1,"delete"),m.bindAction(8,!0,"deleteAll"),m.bindAction(8,!1,"deleteLabels",!0),m.bindAction(46,!1,"delete"),m.bindAction(46,!0,"deleteAll"),
+arguments)};m.bindAction=mxUtils.bind(this,function(a,c,b,f){var d=this.actions.get(b);null!=d&&(b=function(){d.isEnabled()&&d.funct()},c?f?m.bindControlShiftKey(a,b):m.bindControlKey(a,b):f?m.bindShiftKey(a,b):m.bindKey(a,b))});var p=this,l=m.escape;m.escape=function(a){l.apply(this,arguments)};m.enter=function(){};m.bindControlShiftKey(36,function(){d.exitGroup()});m.bindControlShiftKey(35,function(){d.enterGroup()});m.bindShiftKey(36,function(){d.home()});m.bindKey(35,function(){d.refresh()});
+m.bindAction(107,!0,"zoomIn");m.bindAction(109,!0,"zoomOut");m.bindAction(80,!0,"print");m.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)m.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),m.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),m.bindControlKey(13,function(){p.ctrlEnter()}),m.bindAction(8,!1,"delete"),m.bindAction(8,!0,"deleteAll"),m.bindAction(8,!1,"deleteLabels",!0),m.bindAction(46,!1,"delete"),m.bindAction(46,!0,"deleteAll"),
m.bindAction(46,!1,"deleteLabels",!0),m.bindAction(36,!1,"resetView"),m.bindAction(72,!0,"fitWindow",!0),m.bindAction(74,!0,"fitPage"),m.bindAction(74,!0,"fitTwoPages",!0),m.bindAction(48,!0,"customZoom"),m.bindAction(82,!0,"turn"),m.bindAction(82,!0,"clearDefaultStyle",!0),m.bindAction(83,!0,"save"),m.bindAction(83,!0,"saveAs",!0),m.bindAction(65,!0,"selectAll"),m.bindAction(65,!0,"selectNone",!0),m.bindAction(73,!0,"selectVertices",!0),m.bindAction(69,!0,"selectEdges",!0),m.bindAction(69,!0,"editStyle"),
m.bindAction(66,!0,"bold"),m.bindAction(66,!0,"toBack",!0),m.bindAction(70,!0,"toFront",!0),m.bindAction(68,!0,"duplicate"),m.bindAction(68,!0,"setAsDefaultStyle",!0),m.bindAction(90,!0,"undo"),m.bindAction(89,!0,"autosize",!0),m.bindAction(88,!0,"cut"),m.bindAction(67,!0,"copy"),m.bindAction(86,!0,"paste"),m.bindAction(71,!0,"group"),m.bindAction(77,!0,"editData"),m.bindAction(71,!0,"grid",!0),m.bindAction(73,!0,"italic"),m.bindAction(76,!0,"lockUnlock"),m.bindAction(76,!0,"layers",!0),m.bindAction(80,
!0,"formatPanel",!0),m.bindAction(85,!0,"underline"),m.bindAction(85,!0,"ungroup",!0),m.bindAction(190,!0,"superscript"),m.bindAction(188,!0,"subscript"),m.bindAction(13,!1,"keyPressEnter"),m.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?m.bindAction(89,!0,"redo"):m.bindAction(90,!0,"redo",!0);return m};
@@ -2287,28 +2288,28 @@ EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),
"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var d=0;d<a.length;d++)e=e.replace(new RegExp("&"+a[d][0]+";","g"),"&#"+a[d][1]+";");return b(e)}})();
Date.prototype.toISOString||function(){function a(a){a=String(a);1===a.length&&(a="0"+a);return a}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,b=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},e=Math.pow(2,53)-1;return function(a){var d=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var n=1<arguments.length?arguments[1]:void 0,q;if("undefined"!==typeof n){if(!b(n))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(q=
-arguments[2])}var c;c=Number(d.length);c=isNaN(c)?0:0!==c&&isFinite(c)?(0<c?1:-1)*Math.floor(Math.abs(c)):c;c=Math.min(Math.max(c,0),e);for(var f=b(this)?Object(new this(c)):Array(c),g=0,k;g<c;)k=d[g],f[g]=n?"undefined"===typeof q?n(k,g):n.call(q,k,g):k,g+=1;f.length=c;return f}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
+arguments[2])}var c;c=Number(d.length);c=isNaN(c)?0:0!==c&&isFinite(c)?(0<c?1:-1)*Math.floor(Math.abs(c)):c;c=Math.min(Math.max(c,0),e);for(var f=b(this)?Object(new this(c)):Array(c),g=0,p;g<c;)p=d[g],f[g]=n?"undefined"===typeof q?n(p,g):n.call(q,p,g):p,g+=1;f.length=c;return f}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(a){this.unit!=a&&(this.unit=a,this.fireEvent(new mxEventObject("unitChanged","unit",a)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(a,b,e){return null};
mxImageShape.prototype.getImageDataUri=function(){var a=this.image;if("data:image/svg+xml;base64,"==a.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=a)this.clippedSvg=Graph.clipSvgDataUri(a),this.clippedImage=a;a=this.clippedSvg}return a};
Graph=function(a,b,e,d,m,n){mxGraph.call(this,a,b,e,d);this.themes=m||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=n?n:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
-return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var q=null,c=null,f=null,g=null,k=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(q=new mxPoint(d.getGraphX(),d.getGraphY()),k=this.isCellSelected(e.cell),f=e,c=d,null!=e.text&&null!=e.text.boundingBox&&
+return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var q=null,c=null,f=null,g=null,p=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(q=new mxPoint(d.getGraphX(),d.getGraphY()),p=this.isCellSelected(e.cell),f=e,c=d,null!=e.text&&null!=e.text.boundingBox&&
mxUtils.contains(e.text.boundingBox,d.getGraphX(),d.getGraphY()))g=mxEvent.LABEL_HANDLE;else{var l=this.selectionCellsHandler.getHandler(e.cell);null!=l&&null!=l.bends&&0<l.bends.length&&(g=l.getHandleForEvent(d))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&(l=this.selectionCellsHandler.getHandler(e.cell),null==l||null==l.getHandleForEvent(d))){var v=new mxRectangle(d.getGraphX()-1,d.getGraphY()-1);v.grow(mxEvent.isTouchEvent(d.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var p=this.model.getParent(e.cell),l=this.model.getParent(p);if(!this.isCellSelected(l)&&(mxUtils.intersects(v,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(l,0)!=p||mxUtils.intersects(v,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(v,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(p,0)!=e.cell||mxUtils.intersects(v,new mxRectangle(e.x+e.width-
-2,e.y,2,e.height)))&&(p=this.selectionCellsHandler.isHandled(l),this.selectCellForEvent(l,d.getEvent()),l=this.selectionCellsHandler.getHandler(l),null!=l)){var n=l.getHandleForEvent(d);null!=n&&(l.start(d.getGraphX(),d.getGraphY(),n),l.blockDelayedSelection=!p,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(l=this.getActualStartSize(e.cell),p=this.view.scale,(0<l.x||0<l.width)&&mxUtils.intersects(v,
-new mxRectangle(e.x+(l.x-l.width-1)*p+(0==l.x?e.width:0),e.y,1,e.height))||(0<l.y||0<l.height)&&mxUtils.intersects(v,new mxRectangle(e.x,e.y+(l.y-l.height-1)*p+(0==l.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),l=this.selectionCellsHandler.getHandler(e.cell),null!=l&&(n=mxEvent.CUSTOM_HANDLE-l.customHandles.length+1,l.start(d.getGraphX(),d.getGraphY(),n),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var k=this.model.getParent(e.cell),l=this.model.getParent(k);if(!this.isCellSelected(l)&&(mxUtils.intersects(v,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(l,0)!=k||mxUtils.intersects(v,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(v,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(k,0)!=e.cell||mxUtils.intersects(v,new mxRectangle(e.x+e.width-
+2,e.y,2,e.height)))&&(k=this.selectionCellsHandler.isHandled(l),this.selectCellForEvent(l,d.getEvent()),l=this.selectionCellsHandler.getHandler(l),null!=l)){var n=l.getHandleForEvent(d);null!=n&&(l.start(d.getGraphX(),d.getGraphY(),n),l.blockDelayedSelection=!k,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(l=this.getActualStartSize(e.cell),k=this.view.scale,(0<l.x||0<l.width)&&mxUtils.intersects(v,
+new mxRectangle(e.x+(l.x-l.width-1)*k+(0==l.x?e.width:0),e.y,1,e.height))||(0<l.y||0<l.height)&&mxUtils.intersects(v,new mxRectangle(e.x,e.y+(l.y-l.height-1)*k+(0==l.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),l=this.selectionCellsHandler.getHandler(e.cell),null!=l&&(n=mxEvent.CUSTOM_HANDLE-l.customHandles.length+1,l.start(d.getGraphX(),d.getGraphY(),n),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,e;for(e in d)if(null!=d[e].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(e=this.tolerance,null!=q&&null!=f&&null!=c){if(d=f,Math.abs(q.x-b.getGraphX())>e||Math.abs(q.y-b.getGraphY())>e){var l=this.selectionCellsHandler.getHandler(d.cell);null==l&&this.model.isEdge(d.cell)&&(l=this.createHandler(d));if(null!=l&&null!=l.bends&&0<l.bends.length){e=l.getHandleForEvent(c);
-var v=this.view.getEdgeStyle(d),p=v==mxEdgeStyle.EntityRelation;k||g!=mxEvent.LABEL_HANDLE||(e=g);if(p&&0!=e&&e!=l.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!p||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==l.bends.length-1||null!=d.visibleTargetState)p||e==mxEvent.LABEL_HANDLE||(p=d.absolutePoints,null!=p&&(null==v&&null==e||v==mxEdgeStyle.OrthConnector)&&(e=g,null==e&&(e=new mxRectangle(q.x,
-q.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,p[0].x,p[0].y)?e=0:mxUtils.contains(e,p[p.length-1].x,p[p.length-1].y)?e=l.bends.length-1:null!=v&&(2==p.length||3==p.length&&(0==Math.round(p[0].x-p[1].x)&&0==Math.round(p[1].x-p[2].x)||0==Math.round(p[0].y-p[1].y)&&0==Math.round(p[1].y-p[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,q.x,q.y),e=null==v?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),l.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
-l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,l),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||l.destroy());k=!1;q=c=f=g=null}}else if(d=b.getState(),null!=d&&this.isCellEditable(d.cell)){l=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),p=d.absolutePoints,null!=p)if(null!=d.text&&null!=d.text.boundingBox&&
-mxUtils.contains(d.text.boundingBox,b.getGraphX(),b.getGraphY()))l="move";else if(mxUtils.contains(e,p[0].x,p[0].y)||mxUtils.contains(e,p[p.length-1].x,p[p.length-1].y))l="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),l="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<p.length-1&&0<=e&&(l=0==Math.round(p[e].x-p[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=
-new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(p=this.model.getParent(d.cell),v=this.model.getParent(p),!this.isCellSelected(v)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(p,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))l="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(v,0)!=p||mxUtils.intersects(e,
-new mxRectangle(d.x,d.y+d.height-2,d.width,3)))l="row-resize";for(p=d;null==l&&null!=p&&(this.isTableCell(p.cell)||this.isTableRow(p.cell)||this.isTable(p.cell));){if(this.isSwimlane(p.cell)){var v=this.getActualStartSize(p.cell),n=this.view.scale;(0<v.x||0<v.width)&&mxUtils.intersects(e,new mxRectangle(p.x+(v.x-v.width-1)*n+(0==v.x?p.width*n:0),p.y,1,p.height))?l="col-resize":(0<v.y||0<v.height)&&mxUtils.intersects(e,new mxRectangle(p.x,p.y+(v.y-v.height-1)*n+(0==v.y?p.height:0),p.width,1))&&(l=
-"row-resize")}p=this.view.getState(this.model.getParent(p.cell))}}null!=l&&d.setCursor(l)}}),mouseUp:mxUtils.bind(this,function(a,b){g=q=c=f=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
+var v=this.view.getEdgeStyle(d),k=v==mxEdgeStyle.EntityRelation;p||g!=mxEvent.LABEL_HANDLE||(e=g);if(k&&0!=e&&e!=l.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!k||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==l.bends.length-1||null!=d.visibleTargetState)k||e==mxEvent.LABEL_HANDLE||(k=d.absolutePoints,null!=k&&(null==v&&null==e||v==mxEdgeStyle.OrthConnector)&&(e=g,null==e&&(e=new mxRectangle(q.x,
+q.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,k[0].x,k[0].y)?e=0:mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y)?e=l.bends.length-1:null!=v&&(2==k.length||3==k.length&&(0==Math.round(k[0].x-k[1].x)&&0==Math.round(k[1].x-k[2].x)||0==Math.round(k[0].y-k[1].y)&&0==Math.round(k[1].y-k[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,q.x,q.y),e=null==v?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),l.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
+l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,l),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||l.destroy());p=!1;q=c=f=g=null}}else if(d=b.getState(),null!=d&&this.isCellEditable(d.cell)){l=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),k=d.absolutePoints,null!=k)if(null!=d.text&&null!=d.text.boundingBox&&
+mxUtils.contains(d.text.boundingBox,b.getGraphX(),b.getGraphY()))l="move";else if(mxUtils.contains(e,k[0].x,k[0].y)||mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y))l="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),l="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<k.length-1&&0<=e&&(l=0==Math.round(k[e].x-k[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=
+new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(k=this.model.getParent(d.cell),v=this.model.getParent(k),!this.isCellSelected(v)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(k,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))l="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(v,0)!=k||mxUtils.intersects(e,
+new mxRectangle(d.x,d.y+d.height-2,d.width,3)))l="row-resize";for(k=d;null==l&&null!=k&&(this.isTableCell(k.cell)||this.isTableRow(k.cell)||this.isTable(k.cell));){if(this.isSwimlane(k.cell)){var v=this.getActualStartSize(k.cell),n=this.view.scale;(0<v.x||0<v.width)&&mxUtils.intersects(e,new mxRectangle(k.x+(v.x-v.width-1)*n+(0==v.x?k.width*n:0),k.y,1,k.height))?l="col-resize":(0<v.y||0<v.height)&&mxUtils.intersects(e,new mxRectangle(k.x,k.y+(v.y-v.height-1)*n+(0==v.y?k.height:0),k.width,1))&&(l=
+"row-resize")}k=this.view.getState(this.model.getParent(k.cell))}}null!=l&&d.setCursor(l)}}),mouseUp:mxUtils.bind(this,function(a,b){g=q=c=f=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var l=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=l.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)c.push(new mxRectangle(((g.x+k)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(k=1;k<g.height;k++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+k)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
-function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=p.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&
+function(){var a=l.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),p=0;p<g.width;p++)c.push(new mxRectangle(((g.x+p)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(p=1;p<g.height;p++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+p)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
+function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var k=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=k.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&
this.graph.isCellSelected(c[f])?this.graph.model.getParent(c[f]):this.graph.isTableRow(a)&&this.graph.isTableRow(c[f])&&this.graph.isCellSelected(c[f])?c[f]:this.graph.getCompositeParent(c[f]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}return d};var u=this.graphHandler.start;this.graphHandler.start=function(a,c,b,d){var f=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?f=!0:a=this.graph.model.getParent(a));f||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));
u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,c){c=this.graph.getCompositeParent(c);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var t=new mxRubberband(this);this.getRubberband=function(){return t};var A=(new Date).getTime(),y=0,I=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;I.apply(this,arguments);a!=this.currentState?(A=(new Date).getTime(),y=0):y=(new Date).getTime()-A};var x=
this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<y||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&x.apply(this,arguments)};var F=this.isToggleEvent;this.isToggleEvent=function(a){return F.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var H=t.isForceRubberbandEvent;t.isForceRubberbandEvent=function(a){return H.apply(this,
@@ -2339,18 +2340,18 @@ Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);th
d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(b.node,c,f,g);mxEvent.addListener(b.node,"click",function(a){mxEvent.consume(a)})};if(null!=this.tooltipHandler){var b=this.tooltipHandler.init;this.tooltipHandler.init=function(){b.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);"A"==b.nodeName&&(b=b.getAttribute("href"),null!=
b&&this.graph.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&this.graph.customLinkClicked(b)&&mxEvent.consume(a))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){if(null!=this.container&&this.flowAnimationStyle){var d=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(d)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.getVerticesAndEdges=function(a,b){a=null!=a?a:!0;b=null!=b?b:!0;var c=this.model;return c.filterDescendants(function(d){return a&&c.isVertex(d)||b&&c.isEdge(d)},c.getRoot())};Graph.prototype.getCommonStyle=function(a){for(var b={},c=0;c<a.length;c++){var d=this.view.getState(a[c]);this.mergeStyle(d.style,b,0==c)}return b};Graph.prototype.mergeStyle=function(a,
-b,c){if(null!=a){var d={},e;for(e in a){var k=a[e];null!=k&&(d[e]=!0,null==b[e]&&c?b[e]=k:b[e]!=k&&delete b[e])}for(e in b)d[e]||delete b[e]}};Graph.prototype.getStartEditingCell=function(a,b){var c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
-(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var k=d.substring(0,e),d=d.substring(e+1);null==b[k]&&d==mxConstants.NONE&&
-(b[k]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;this.model.beginUpdate();try{for(var d=0;d<b.length;d++)for(var e=this.getCurrentCellStyle(b[d]),k=0;k<c.length;k++){var l=e[c[k]],p=a[c[k]];l==p||null==l&&p==mxConstants.NONE||this.setCellStyles(c[k],p,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||
-mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,c,d,e,k){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,e,k){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),
-null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var f=this.model.getChildCount(c)-1;0<=f;f--){var g=this.model.getChildAt(c,f),n=this.getScaledCellAt(a,b,g,d,e,k);if(null!=n)return n;if(this.isCellVisible(g)&&(e&&this.model.isEdge(g)||d&&this.model.isVertex(g))&&(n=this.view.getState(g),null!=n&&(null==k||!k(n,a,b))&&this.intersects(n,a,b)))return g}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
+b,c){if(null!=a){var d={},e;for(e in a){var p=a[e];null!=p&&(d[e]=!0,null==b[e]&&c?b[e]=p:b[e]!=p&&delete b[e])}for(e in b)d[e]||delete b[e]}};Graph.prototype.getStartEditingCell=function(a,b){var c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
+(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var p=d.substring(0,e),d=d.substring(e+1);null==b[p]&&d==mxConstants.NONE&&
+(b[p]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;this.model.beginUpdate();try{for(var d=0;d<b.length;d++)for(var e=this.getCurrentCellStyle(b[d]),p=0;p<c.length;p++){var l=e[c[p]],k=a[c[p]];l==k||null==l&&k==mxConstants.NONE||this.setCellStyles(c[p],k,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||
+mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,c,d,e,p){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,e,p){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),
+null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var f=this.model.getChildCount(c)-1;0<=f;f--){var g=this.model.getChildAt(c,f),n=this.getScaledCellAt(a,b,g,d,e,p);if(null!=n)return n;if(this.isCellVisible(g)&&(e&&this.model.isEdge(g)||d&&this.model.isVertex(g))&&(n=this.view.getState(g),null!=n&&(null==p||!p(n,a,b))&&this.intersects(n,a,b)))return g}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.getAbsoluteParent=function(a){for(var b=this.getCellGeometry(a);null!=b&&b.relative;)a=this.getModel().getParent(a),b=this.getCellGeometry(cellToClone);return a};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=
this.model.getParent(a);if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();if(null!=a){for(var c=[],d=0;d<b.length;d++)a(b[d])||c.push(b[d]);b=c}return b};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,
c=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*c,(a.y+b.y)*c,a.width*c,a.height*c);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=
0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var b=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(a){a=b.apply(this,arguments);for(var d=[],c=0;c<a.length;c++)this.isTableRow(a[c])||this.isTableCell(a[c])||d.push(a[c]);return d};var e=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=
function(a){a=e.apply(this,arguments);for(var b=[],c=0;c<a.length;c++)this.isTable(a[c])||this.isTableRow(a[c])||this.isTableCell(a[c])||b.push(a[c]);return b};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var c=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+c+","+c+")translate("+Math.round(100*this.currentTranslate.x)/
100+","+Math.round(100*this.currentTranslate.y)/100+")");b!=a.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",a.getAttribute("transform"))}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,c=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);
-d.apply(this,arguments);a&&(this.scale=b,this.translate=c)};var m=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.useCssTransforms,e=this.view.scale,k=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);m.apply(this,arguments);d&&(this.view.scale=e,this.view.translate=k,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
+d.apply(this,arguments);a&&(this.scale=b,this.translate=c)};var m=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.useCssTransforms,e=this.view.scale,p=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);m.apply(this,arguments);d&&(this.view.scale=e,this.view.translate=p,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
Graph.prototype.openLink=function(a,b,e){var d=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var m=a.split("#")[1];window.location.hash=="#"+m&&(window.location.hash="");window.location.hash=m}else d=window.open(a,null!=b?b:"_blank"),null==d||e||(d.opener=null)}catch(n){}return d};
Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2368,28 +2369,28 @@ Graph.prototype.isLabelMovable=function(a){var b=this.getCurrentCellStyle(a);ret
Graph.prototype.getClickableLinkForCell=function(a){do{var b=this.getLinkForCell(a);if(null!=b)return b;a=this.model.getParent(a)}while(null!=a);return null};Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,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 d=this.dateFormatCache,m=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,n=/[^-+\dA-Z]/g,q=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var c=e?"getUTC":"get",f=a[c+"Date"](),g=a[c+"Day"](),k=a[c+"Month"](),l=a[c+"FullYear"](),p=a[c+"Hours"](),u=a[c+"Minutes"](),t=a[c+"Seconds"](),c=a[c+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),y={d:f,dd:q(f),ddd:d.i18n.dayNames[g],dddd:d.i18n.dayNames[g+7],m:k+1,mm:q(k+1),mmm:d.i18n.monthNames[k],mmmm:d.i18n.monthNames[k+
-12],yy:String(l).slice(2),yyyy:l,h:p%12||12,hh:q(p%12||12),H:p,HH:q(p),M:u,MM:q(u),s:t,ss:q(t),l:q(c,3),L:q(99<c?Math.round(c/10):c),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(m)||[""]).pop().replace(n,""),o:(0<A?"-":"+")+q(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in y?y[a]:a.slice(1,
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var c=e?"getUTC":"get",f=a[c+"Date"](),g=a[c+"Day"](),p=a[c+"Month"](),l=a[c+"FullYear"](),k=a[c+"Hours"](),u=a[c+"Minutes"](),t=a[c+"Seconds"](),c=a[c+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),y={d:f,dd:q(f),ddd:d.i18n.dayNames[g],dddd:d.i18n.dayNames[g+7],m:p+1,mm:q(p+1),mmm:d.i18n.monthNames[p],mmmm:d.i18n.monthNames[p+
+12],yy:String(l).slice(2),yyyy:l,h:k%12||12,hh:q(k%12||12),H:k,HH:q(k),M:u,MM:q(u),s:t,ss:q(t),l:q(c,3),L:q(99<c?Math.round(c/10):c),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(m)||[""]).pop().replace(n,""),o:(0<A?"-":"+")+q(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in y?y[a]:a.slice(1,
a.length-1)})};Graph.prototype.getLayerForCells=function(a){var b=null;if(0<a.length){for(b=a[0];!this.model.isLayer(b);)b=this.model.getParent(b);for(var e=1;e<a.length;e++)if(!this.model.isAncestor(b,a[e])){b=null;break}}return b};
Graph.prototype.createLayersDialog=function(a){var b=document.createElement("div");b.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),m=0;m<d;m++)mxUtils.bind(this,function(d){var n=document.createElement("div");n.style.overflow="hidden";n.style.textOverflow="ellipsis";n.style.padding="2px";n.style.whiteSpace="nowrap";var c=document.createElement("input");c.style.display="inline-block";c.setAttribute("type","checkbox");e.isVisible(d)&&(c.setAttribute("checked","checked"),
c.defaultChecked=!0);n.appendChild(c);var f=this.convertValueToString(d)||mxResources.get("background")||"Background";n.setAttribute("title",f);mxUtils.write(n,f);b.appendChild(n);mxEvent.addListener(c,"click",function(){null!=c.getAttribute("checked")?c.removeAttribute("checked"):c.setAttribute("checked","checked");e.setVisible(d,c.checked);null!=a&&a(d)})})(e.getChildAt(e.root,m));return b};
Graph.prototype.replacePlaceholders=function(a,b,e,d){d=[];if(null!=b){for(var m=0;match=this.placeholderPattern.exec(b);){var n=match[0];if(2<n.length&&"%label%"!=n&&"%tooltip%"!=n){var q=null;if(match.index>m&&"%"==b.charAt(match.index-1))q=n.substring(1);else{var c=n.substring(1,n.length-1);if("id"==c)q=a.id;else if(0>c.indexOf("{"))for(var f=a;null==q&&null!=f;)null!=f.value&&"object"==typeof f.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(q=f.getAttribute(c+"_"+Graph.diagramLanguage)),
null==q&&(q=f.hasAttribute(c)?null!=f.getAttribute(c)?f.getAttribute(c):"":null)),f=this.model.getParent(f);null==q&&(q=this.getGlobalVariable(c));null==q&&null!=e&&(q=e[c])}d.push(b.substring(m,match.index)+(null!=q?q:n));m=match.index+n.length}}d.push(b.substring(m))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],e=0;e<a.length;e++){var d=this.model.getCell(a[e].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(a,b,e,d,m,n,q,c){n=n?n:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var f=this.isCloneConnectSource(a),g=f?a:this.getCompositeParent(a),k=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);b==mxConstants.DIRECTION_NORTH?(k.x+=g.geometry.width/2,k.y-=e):b==
-mxConstants.DIRECTION_SOUTH?(k.x+=g.geometry.width/2,k.y+=g.geometry.height+e):(k.x=b==mxConstants.DIRECTION_WEST?k.x-e:k.x+(g.geometry.width+e),k.y+=g.geometry.height/2);var l=this.view.getState(this.model.getParent(a));e=this.view.scale;var p=this.view.translate,g=p.x*e,p=p.y*e;null!=l&&this.model.isVertex(l.cell)&&(g=l.x,p=l.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(k.x+=a.parent.geometry.x,k.y+=a.parent.geometry.y);n=n?null:(new mxRectangle(g+k.x*e,p+k.y*e)).grow(40*e);n=null!=n?
+Graph.prototype.connectVertex=function(a,b,e,d,m,n,q,c){n=n?n:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var f=this.isCloneConnectSource(a),g=f?a:this.getCompositeParent(a),p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=g.geometry.width/2,p.y-=e):b==
+mxConstants.DIRECTION_SOUTH?(p.x+=g.geometry.width/2,p.y+=g.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(g.geometry.width+e),p.y+=g.geometry.height/2);var l=this.view.getState(this.model.getParent(a));e=this.view.scale;var k=this.view.translate,g=k.x*e,k=k.y*e;null!=l&&this.model.isVertex(l.cell)&&(g=l.x,k=l.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);n=n?null:(new mxRectangle(g+p.x*e,k+p.y*e)).grow(40*e);n=null!=n?
this.getCells(0,0,0,0,null,null,n,null,!0):null;var l=this.view.getState(a),u=null,t=null;if(null!=n){n=n.reverse();for(var A=0;A<n.length;A++)if(!this.isCellLocked(n[A])&&!this.model.isEdge(n[A])&&n[A]!=a)if(!this.model.isAncestor(a,n[A])&&this.isContainer(n[A])&&(null==u||n[A]==this.model.getParent(a)))u=n[A];else if(null==t&&this.isCellConnectable(n[A])&&!this.model.isAncestor(n[A],a)&&!this.isSwimlane(n[A])){var y=this.view.getState(n[A]);null==l||null==y||mxUtils.intersects(l,y)||(t=n[A])}}var I=
-!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||m;I&&("1"!=urlParams.sketch||m)&&(b==mxConstants.DIRECTION_NORTH?k.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?k.y+=a.geometry.height/2:k.x=b==mxConstants.DIRECTION_WEST?k.x-a.geometry.width/2:k.x+a.geometry.width/2);var x=[],F=t,t=u;m=mxUtils.bind(this,function(e){if(null==q||null!=e||null==t&&f){this.model.beginUpdate();try{if(null==F&&I){var g=this.getAbsoluteParent(null!=e?e:a),g=f?a:this.getCompositeParent(g);F=null!=e?e:this.duplicateCells([g],
-!1)[0];null!=e&&this.addCells([F],this.model.getParent(a),null,null,null,!0);var l=this.getCellGeometry(F);null!=l&&(null!=e&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?k.y-=l.height/2:b==mxConstants.DIRECTION_SOUTH?k.y+=l.height/2:k.x=b==mxConstants.DIRECTION_WEST?k.x-l.width/2:k.x+l.width/2),l.x=k.x-l.width/2,l.y=k.y-l.height/2);null!=u?(this.addCells([F],u,null,null,null,!0),t=null):I&&!f&&this.addCells([F],this.getDefaultParent(),null,null,null,!0)}var p=mxEvent.isControlDown(d)&&
-mxEvent.isShiftDown(d)&&I||null==t&&f?null:this.insertEdge(this.model.getParent(a),null,"",a,F,this.createCurrentEdgeStyle());if(null!=p&&this.connectionHandler.insertBeforeSource){var n=null;for(e=a;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&&(n=e.parent.getIndex(e),this.model.add(e.parent,p,n))}null==t&&null!=F&&null!=a.parent&&f&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
-F,n));null!=p&&x.push(p);null==t&&null!=F&&x.push(F);null==F&&null!=p&&p.geometry.setTerminalPoint(k,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=c)c(x);else return x});if(null==q||null!=F||!I||null==t&&f)return m(F);q(g+k.x*e,p+k.y*e,m)};
+!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||m;I&&("1"!=urlParams.sketch||m)&&(b==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2);var x=[],F=t,t=u;m=mxUtils.bind(this,function(e){if(null==q||null!=e||null==t&&f){this.model.beginUpdate();try{if(null==F&&I){var g=this.getAbsoluteParent(null!=e?e:a),g=f?a:this.getCompositeParent(g);F=null!=e?e:this.duplicateCells([g],
+!1)[0];null!=e&&this.addCells([F],this.model.getParent(a),null,null,null,!0);var l=this.getCellGeometry(F);null!=l&&(null!=e&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?p.y-=l.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=l.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-l.width/2:p.x+l.width/2),l.x=p.x-l.width/2,l.y=p.y-l.height/2);null!=u?(this.addCells([F],u,null,null,null,!0),t=null):I&&!f&&this.addCells([F],this.getDefaultParent(),null,null,null,!0)}var k=mxEvent.isControlDown(d)&&
+mxEvent.isShiftDown(d)&&I||null==t&&f?null:this.insertEdge(this.model.getParent(a),null,"",a,F,this.createCurrentEdgeStyle());if(null!=k&&this.connectionHandler.insertBeforeSource){var n=null;for(e=a;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=k.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==k.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,k,n))}null==t&&null!=F&&null!=a.parent&&f&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
+F,n));null!=k&&x.push(k);null==t&&null!=F&&x.push(F);null==F&&null!=k&&k.geometry.setTerminalPoint(p,!1);null!=k&&this.fireEvent(new mxEventObject("cellsInserted","cells",[k]))}finally{this.model.endUpdate()}}if(null!=c)c(x);else return x});if(null==q||null!=F||!I||null==t&&f)return m(F);q(g+p.x*e,k+p.y*e,m)};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var e=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),d=a;null==e&&null!=d;)null!=d.value&&"object"==typeof d.value&&(e=d.hasAttribute(b)?null!=d.getAttribute(b)?d.getAttribute(b):"":null),d=this.model.getParent(d);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=b.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=b.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a,b){return mxEvent.isShiftDown(a)||"1"==mxUtils.getValue(b.style,"moveCells","0")};
-Graph.prototype.foldCells=function(a,b,e,d,m){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var n=0;n<e.length;n++){var q=this.view.getState(e[n]),c=this.getCellGeometry(e[n]);if(null!=q&&null!=c){var f=Math.round(c.width-q.width/this.view.scale),g=Math.round(c.height-q.height/this.view.scale);if(0!=g||0!=f){var k=this.model.getParent(e[n]),l=this.layoutManager.getLayout(k);
-null==l?null!=m&&this.isMoveCellsEvent(m,q)&&this.moveSiblings(q,k,f,g):null!=m&&mxEvent.isAltDown(m)||l.constructor!=mxStackLayout||l.resizeLast||this.resizeParentStacks(k,l,f,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.foldCells=function(a,b,e,d,m){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var n=0;n<e.length;n++){var q=this.view.getState(e[n]),c=this.getCellGeometry(e[n]);if(null!=q&&null!=c){var f=Math.round(c.width-q.width/this.view.scale),g=Math.round(c.height-q.height/this.view.scale);if(0!=g||0!=f){var p=this.model.getParent(e[n]),l=this.layoutManager.getLayout(p);
+null==l?null!=m&&this.isMoveCellsEvent(m,q)&&this.moveSiblings(q,p,f,g):null!=m&&mxEvent.isAltDown(m)||l.constructor!=mxStackLayout||l.resizeLast||this.resizeParentStacks(p,l,f,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var m=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<m.length;b++)if(m[b]!=a.cell){var n=this.view.getState(m[b]),q=this.getCellGeometry(m[b]);null!=n&&null!=q&&(q=q.clone(),q.translate(Math.round(e*Math.max(0,Math.min(1,(n.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(n.y-a.y)/a.height)))),this.model.setGeometry(m[b],q))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var m=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==m&&!b.resizeLast;){var n=this.getCellGeometry(a),q=this.view.getState(a);null!=q&&null!=n&&(n=n.clone(),b.horizontal?n.width+=e+Math.min(0,q.width/this.view.scale-n.width):n.height+=d+Math.min(0,q.height/this.view.scale-n.height),this.model.setGeometry(a,
n));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
@@ -2441,27 +2442,27 @@ Graph.prototype.createTable=function(a,b,e,d,m,n,q,c,f){e=null!=e?e:60;d=null!=d
Graph.prototype.createCrossFunctionalSwimlane=function(a,b,e,d,m,n,q,c,f){e=null!=e?e:120;d=null!=d?d:120;m=null!=m?m:40;q=null!=q?q:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+m+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";c=null!=c?c:"swimlane;connectable=0;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";f=null!=f?f:"swimlane;connectable=0;startSize=0;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";m=this.createVertex(null,
null,"",0,0,b*e,a*d,null!=n?n:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+m+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");n=mxUtils.getValue(this.getCellStyle(m),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);m.geometry.width+=n;m.geometry.height+=n;q=this.createVertex(null,null,"",0,n,b*e+n,d,q);m.insert(this.createParent(q,this.createVertex(null,null,"",n,0,e,d,c),b,e,0));return 1<a?(q.geometry.y=d+n,this.createParent(m,this.createParent(q,
this.createVertex(null,null,"",n,0,e,d,f),b,e,0),a-1,0,d)):m};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
-Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var m=this.getCellGeometry(a);if(null!=m){m=m.clone();m.height+=b;d.setGeometry(a,m);var n=d.getParent(a),q=d.getChildCells(n,!0);if(!e){var c=mxUtils.indexOf(q,a);if(c<q.length-1){var f=q[c+1],g=this.getCellGeometry(f);null!=g&&(g=g.clone(),g.y+=b,g.height-=b,d.setGeometry(f,g))}}var k=this.getCellGeometry(n);null!=k&&(e||(e=a==q[q.length-1]),e&&(k=k.clone(),k.height+=b,d.setGeometry(n,k)));
+Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var m=this.getCellGeometry(a);if(null!=m){m=m.clone();m.height+=b;d.setGeometry(a,m);var n=d.getParent(a),q=d.getChildCells(n,!0);if(!e){var c=mxUtils.indexOf(q,a);if(c<q.length-1){var f=q[c+1],g=this.getCellGeometry(f);null!=g&&(g=g.clone(),g.y+=b,g.height-=b,d.setGeometry(f,g))}}var p=this.getCellGeometry(n);null!=p&&(e||(e=a==q[q.length-1]),e&&(p=p.clone(),p.height+=b,d.setGeometry(n,p)));
null!=this.layoutManager&&this.layoutManager.executeLayout(n,!0)}}finally{d.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),m=d.getParent(a),n=d.getParent(m),q=d.getChildCells(m,!0);a=mxUtils.indexOf(q,a);var c=a==q.length-1;d.beginUpdate();try{for(var f=d.getChildCells(n,!0),g=0;g<f.length;g++){var m=f[g],q=d.getChildCells(m,!0),k=q[a],l=this.getCellGeometry(k);null!=l&&(l=l.clone(),l.width+=b,d.setGeometry(k,l));a<q.length-1&&(k=q[a+1],l=this.getCellGeometry(k),null!=l&&(l=l.clone(),l.x+=b,e||(l.width-=b),d.setGeometry(k,l)))}if(c||
-e){var p=this.getCellGeometry(n);null!=p&&(p=p.clone(),p.width+=b,d.setGeometry(n,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(n,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),m=d.getParent(a),n=d.getParent(m),q=d.getChildCells(m,!0);a=mxUtils.indexOf(q,a);var c=a==q.length-1;d.beginUpdate();try{for(var f=d.getChildCells(n,!0),g=0;g<f.length;g++){var m=f[g],q=d.getChildCells(m,!0),p=q[a],l=this.getCellGeometry(p);null!=l&&(l=l.clone(),l.width+=b,d.setGeometry(p,l));a<q.length-1&&(p=q[a+1],l=this.getCellGeometry(p),null!=l&&(l=l.clone(),l.x+=b,e||(l.width-=b),d.setGeometry(p,l)))}if(c||
+e){var k=this.getCellGeometry(n);null!=k&&(k=k.clone(),k.width+=b,d.setGeometry(n,k))}null!=this.layoutManager&&this.layoutManager.executeLayout(n,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
TableLayout.prototype.getSize=function(a,b){for(var e=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var m=this.graph.getCellGeometry(a[d]);null!=m&&(e+=b?m.width:m.height)}return e};TableLayout.prototype.getRowLayout=function(a,b){for(var e=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0),m=this.getSize(e,!0),n=b-d.x-d.width,q=[],d=d.x,c=0;c<e.length;c++){var f=this.graph.getCellGeometry(e[c]);null!=f&&(d+=f.width*n/m,q.push(Math.round(d)))}return q};
TableLayout.prototype.layoutRow=function(a,b,e,d){var m=this.graph.getModel(),n=m.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var q=a.x,c=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var f=0;f<n.length;f++){var g=this.graph.getCellGeometry(n[f]);null!=g&&(g=g.clone(),g.y=a.y,g.height=e-a.y-a.height,null!=b?(g.x=b[f],g.width=b[f+1]-g.x,f==n.length-1&&f<b.length-2&&(g.width=d-g.x-a.x-a.width)):(g.x=q,q+=g.width,f==n.length-1?g.width=d-a.x-a.width-c:c+=g.width),m.setGeometry(n[f],g))}return c};
-TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),m="1"==mxUtils.getValue(d,"resizeLastRow","0"),n="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),q=this.graph.getModel(),c=0;q.beginUpdate();try{var f=e.height-b.y-b.height,g=e.width-b.x-b.width,k=q.getChildCells(a,!0),l=this.getSize(k,!1);if(0<f&&0<g&&0<k.length&&0<l){if(m){var p=this.graph.getCellGeometry(k[k.length-
-1]);null!=p&&(p=p.clone(),p.height=f-l+p.height,q.setGeometry(k[k.length-1],p))}for(var u=n?null:this.getRowLayout(k[0],g),t=b.y,A=0;A<k.length;A++)p=this.graph.getCellGeometry(k[A]),null!=p&&(p=p.clone(),p.x=b.x,p.width=g,p.y=Math.round(t),t=m||d?t+p.height:t+p.height/l*f,p.height=Math.round(t)-p.y,q.setGeometry(k[A],p)),c=Math.max(c,this.layoutRow(k[A],u,p.height,g));d&&f<l&&(e=e.clone(),e.height=t+b.height,q.setGeometry(a,e));n&&g<c+Graph.minTableColumnWidth&&(e=e.clone(),e.width=c+b.width+b.x+
+TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),m="1"==mxUtils.getValue(d,"resizeLastRow","0"),n="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),q=this.graph.getModel(),c=0;q.beginUpdate();try{var f=e.height-b.y-b.height,g=e.width-b.x-b.width,p=q.getChildCells(a,!0),l=this.getSize(p,!1);if(0<f&&0<g&&0<p.length&&0<l){if(m){var k=this.graph.getCellGeometry(p[p.length-
+1]);null!=k&&(k=k.clone(),k.height=f-l+k.height,q.setGeometry(p[p.length-1],k))}for(var u=n?null:this.getRowLayout(p[0],g),t=b.y,A=0;A<p.length;A++)k=this.graph.getCellGeometry(p[A]),null!=k&&(k=k.clone(),k.x=b.x,k.width=g,k.y=Math.round(t),t=m||d?t+k.height:t+k.height/l*f,k.height=Math.round(t)-k.y,q.setGeometry(p[A],k)),c=Math.max(c,this.layoutRow(p[A],u,k.height,g));d&&f<l&&(e=e.clone(),e.height=t+b.height,q.setGeometry(a,e));n&&g<c+Graph.minTableColumnWidth&&(e=e.clone(),e.width=c+b.width+b.x+
Graph.minTableColumnWidth,q.setGeometry(a,e))}}finally{q.endUpdate()}}};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){c=null!=c?c:!0;var d=this.getState(a);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=b.apply(this,
arguments);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};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 a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return d.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var m=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){m.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var f=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=
-c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var k=c[g+1],n=c[g],m=[],q=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,q.x,q.y,k.x,k.y)<1*this.scale*this.scale;)k=q,g++,q=c[g+2];for(var b=f(0,n.x,n.y)||b,L=0;L<this.validEdges.length;L++){var G=this.validEdges[L],J=G.absolutePoints;if(null!=J&&mxUtils.intersects(a,G)&&"1"!=G.style.noJump)for(G=0;G<J.length-1;G++){for(var D=J[G+1],M=J[G],q=J[G+2];G<J.length-2&&mxUtils.ptSegDistSq(M.x,M.y,q.x,q.y,D.x,D.y)<1*this.scale*this.scale;)D=
-q,G++,q=J[G+2];q=mxUtils.intersection(n.x,n.y,k.x,k.y,M.x,M.y,D.x,D.y);if(null!=q&&(Math.abs(q.x-n.x)>e||Math.abs(q.y-n.y)>e)&&(Math.abs(q.x-k.x)>e||Math.abs(q.y-k.y)>e)&&(Math.abs(q.x-M.x)>e||Math.abs(q.y-M.y)>e)&&(Math.abs(q.x-D.x)>e||Math.abs(q.y-D.y)>e)){D=q.x-n.x;M=q.y-n.y;q={distSq:D*D+M*M,x:q.x,y:q.y};for(D=0;D<m.length;D++)if(m[D].distSq>q.distSq){m.splice(D,0,q);q=null;break}null==q||0!=m.length&&m[m.length-1].x===q.x&&m[m.length-1].y===q.y||m.push(q)}}}for(G=0;G<m.length;G++)b=f(1,m[G].x,
+c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var p=c[g+1],n=c[g],m=[],q=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,q.x,q.y,p.x,p.y)<1*this.scale*this.scale;)p=q,g++,q=c[g+2];for(var b=f(0,n.x,n.y)||b,L=0;L<this.validEdges.length;L++){var G=this.validEdges[L],J=G.absolutePoints;if(null!=J&&mxUtils.intersects(a,G)&&"1"!=G.style.noJump)for(G=0;G<J.length-1;G++){for(var D=J[G+1],M=J[G],q=J[G+2];G<J.length-2&&mxUtils.ptSegDistSq(M.x,M.y,q.x,q.y,D.x,D.y)<1*this.scale*this.scale;)D=
+q,G++,q=J[G+2];q=mxUtils.intersection(n.x,n.y,p.x,p.y,M.x,M.y,D.x,D.y);if(null!=q&&(Math.abs(q.x-n.x)>e||Math.abs(q.y-n.y)>e)&&(Math.abs(q.x-p.x)>e||Math.abs(q.y-p.y)>e)&&(Math.abs(q.x-M.x)>e||Math.abs(q.y-M.y)>e)&&(Math.abs(q.x-D.x)>e||Math.abs(q.y-D.y)>e)){D=q.x-n.x;M=q.y-n.y;q={distSq:D*D+M*M,x:q.x,y:q.y};for(D=0;D<m.length;D++)if(m[D].distSq>q.distSq){m.splice(D,0,q);q=null;break}null==q||0!=m.length&&m[m.length-1].x===q.x&&m[m.length-1].y===q.y||m.push(q)}}}for(G=0;G<m.length;G++)b=f(1,m[G].x,
m[G].y)||b}q=c[c.length-1];b=f(0,q.x,q.y)||b}a.routedPoints=d;return b}return!1};var n=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)n.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,l=null,k=null,p=[],m=null;a.begin();for(var q=0;q<this.state.routedPoints.length;q++){var G=this.state.routedPoints[q],J=new mxPoint(G.x/this.scale,G.y/this.scale);0==q?J=c[0]:q==this.state.routedPoints.length-1&&(J=c[c.length-1]);var D=!1;if(null!=l&&1==G.type){var M=this.state.routedPoints[q+1],G=M.x/this.scale-J.x,M=M.y/this.scale-J.y,G=G*G+M*M;null==m&&(m=new mxPoint(J.x-l.x,J.y-l.y),
-k=Math.sqrt(m.x*m.x+m.y*m.y),0<k?(m.x=m.x*f/k,m.y=m.y*f/k):m=null);G>f*f&&0<k&&(G=l.x-J.x,M=l.y-J.y,G=G*G+M*M,G>f*f&&(D=new mxPoint(J.x-m.x,J.y-m.y),G=new mxPoint(J.x+m.x,J.y+m.y),p.push(D),this.addPoints(a,p,b,d,!1,null,g),p=0>Math.round(m.x)||0==Math.round(m.x)&&0>=Math.round(m.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(D.x-m.y*p,D.y+m.x*p),a.lineTo(G.x-m.y*p,G.y+m.x*p),a.lineTo(G.x,G.y)):"arc"==e?(p*=1.3,a.curveTo(D.x-m.y*p,D.y+m.x*p,G.x-m.y*p,G.y+m.x*p,G.x,G.y)):(a.moveTo(G.x,G.y),g=!0),p=[G],D=!0))}else m=
-null;D||(p.push(J),l=J)}this.addPoints(a,p,b,d,!1,null,g);a.stroke()}};var q=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):q.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,d,f){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)c.apply(this,
-arguments);else{b=this.getTerminalPort(a,b,f);var e=this.getNextPoint(a,d,f),g=this.graph.isOrthogonal(a),l=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=l)var p=Math.cos(-l),n=Math.sin(-l),e=mxUtils.getRotatedPoint(e,p,n,k);p=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);p+=parseFloat(a.style[f?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,
-e,0==l&&g,p);0!=l&&(p=Math.cos(l),n=Math.sin(l),e=mxUtils.getRotatedPoint(e,p,n,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,d,f,e),f)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var l=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||l<d)b=g,d=l}}null!=b&&(f=b)}return f};var f=mxStencil.prototype.evaluateTextAttribute;
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,l=null,p=null,k=[],m=null;a.begin();for(var q=0;q<this.state.routedPoints.length;q++){var G=this.state.routedPoints[q],J=new mxPoint(G.x/this.scale,G.y/this.scale);0==q?J=c[0]:q==this.state.routedPoints.length-1&&(J=c[c.length-1]);var D=!1;if(null!=l&&1==G.type){var M=this.state.routedPoints[q+1],G=M.x/this.scale-J.x,M=M.y/this.scale-J.y,G=G*G+M*M;null==m&&(m=new mxPoint(J.x-l.x,J.y-l.y),
+p=Math.sqrt(m.x*m.x+m.y*m.y),0<p?(m.x=m.x*f/p,m.y=m.y*f/p):m=null);G>f*f&&0<p&&(G=l.x-J.x,M=l.y-J.y,G=G*G+M*M,G>f*f&&(D=new mxPoint(J.x-m.x,J.y-m.y),G=new mxPoint(J.x+m.x,J.y+m.y),k.push(D),this.addPoints(a,k,b,d,!1,null,g),k=0>Math.round(m.x)||0==Math.round(m.x)&&0>=Math.round(m.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(D.x-m.y*k,D.y+m.x*k),a.lineTo(G.x-m.y*k,G.y+m.x*k),a.lineTo(G.x,G.y)):"arc"==e?(k*=1.3,a.curveTo(D.x-m.y*k,D.y+m.x*k,G.x-m.y*k,G.y+m.x*k,G.x,G.y)):(a.moveTo(G.x,G.y),g=!0),k=[G],D=!0))}else m=
+null;D||(k.push(J),l=J)}this.addPoints(a,k,b,d,!1,null,g);a.stroke()}};var q=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):q.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,d,f){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)c.apply(this,
+arguments);else{b=this.getTerminalPort(a,b,f);var e=this.getNextPoint(a,d,f),g=this.graph.isOrthogonal(a),l=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),p=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=l)var k=Math.cos(-l),n=Math.sin(-l),e=mxUtils.getRotatedPoint(e,k,n,p);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[f?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,
+e,0==l&&g,k);0!=l&&(k=Math.cos(l),n=Math.sin(l),e=mxUtils.getRotatedPoint(e,k,n,p));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,d,f,e),f)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var l=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||l<d)b=g,d=l}}null!=b&&(f=b)}return f};var f=mxStencil.prototype.evaluateTextAttribute;
mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=f.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"string"===typeof c&&"stencil("==c.substring(0,8))try{var b=c.substring(8,c.length-
1),d=mxUtils.parseXml(Graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(t){null!=window.console&&console.log("Error in shape: "+t)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var m=b[d];if(!mxStencilRegistry.filesLoaded[m])if(mxStencilRegistry.filesLoaded[m]=!0,".xml"==m.toLowerCase().substring(m.length-4,m.length))mxStencilRegistry.loadStencilSet(m,
@@ -2481,16 +2482,16 @@ b=0;b<c.length;b++)null!=this.currentEdgeStyle[c[b]]&&(a+=c[b]+"="+this.currentE
";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.updateCellStyles=function(a,c,b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)if(this.model.isVertex(b[d])||this.model.isEdge(b[d])){this.setCellStyles(a,null,[b[d]]);var f=this.getCellStyle(b[d])[a];c!=(null==f?mxConstants.NONE:f)&&this.setCellStyles(a,
c,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,c){c=null!=c?c:{};for(var b=0;b<a.length;b++){var d=a[b];c[mxObjectIdentity.get(d)]=
d.getId();for(var f=this.model.getChildCount(d),e=0;e<f;e++)this.createCellLookup([this.model.getChildAt(d,e)],c)}return c};Graph.prototype.createCellMapping=function(a,c,b){b=null!=b?b:{};for(var d in a){var f=c[d];null==b[f]&&(b[f]=a[d].getId()||"")}return b};Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=new mxCodec(a.ownerDocument),e=new mxGraphModel;f.decode(a,e);a=[];var f={},g={},l=e.getChildren(this.cloneCell(e.root,this.isCloneInvalidEdges(),f));if(null!=
-l){var k=this.createCellLookup([e.root]),l=l.slice();this.model.beginUpdate();try{if(1!=l.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<l.length;e++)p=this.model.getChildren(this.moveCells([l[e]],c,b,!1,this.model.getRoot())[0]),null!=p&&(a=a.concat(p));else{var p=e.getChildren(l[0]);null!=p&&(a=this.moveCells(p,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,k,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
-(c=this.snap(c),b=this.snap(b));var v=this.getBoundingBoxFromGeometry(a,!0);null!=v&&this.moveCells(a,c-v.x,b-v.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,l=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(l,b[f]);var k=this.view.getState(a[f]);if(null!=k){var p=this.getCellGeometry(b[f]);null!=p&&p.relative&&!this.model.isEdge(a[f])&&
-null==d.get(this.model.getParent(a[f]))&&(p.offset=null,p.relative=!1,p.x=k.x/k.view.scale-k.view.translate.x,p.y=k.y/k.view.scale-k.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var c=Graph.prototype.isExtendParent;
-Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null!=b){var d=this.getCurrentCellStyle(b);if(null!=d.expand)return"0"!=d.expand}return c.apply(this,arguments)&&(null==b||!this.isTable(b))};var f=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,c,b,d,e,g,l,k){null==k&&(k=this.model.getParent(a),this.isTable(k)||this.isTableRow(k))&&(k=this.getCellAt(g,l,null,!0,!1));b=null;this.model.beginUpdate();try{b=f.apply(this,[a,c,b,d,e,g,l,k]);this.model.setValue(b,
-"");var p=this.getChildCells(b,!0);for(c=0;c<p.length;c++){var v=this.getCellGeometry(p[c]);null!=v&&v.relative&&0<v.x&&this.model.remove(p[c])}var X=this.getChildCells(a,!0);for(c=0;c<X.length;c++)v=this.getCellGeometry(X[c]),null!=v&&v.relative&&0>=v.x&&this.model.remove(X[c]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[b]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+l){var p=this.createCellLookup([e.root]),l=l.slice();this.model.beginUpdate();try{if(1!=l.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<l.length;e++)k=this.model.getChildren(this.moveCells([l[e]],c,b,!1,this.model.getRoot())[0]),null!=k&&(a=a.concat(k));else{var k=e.getChildren(l[0]);null!=k&&(a=this.moveCells(k,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,p,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
+(c=this.snap(c),b=this.snap(b));var v=this.getBoundingBoxFromGeometry(a,!0);null!=v&&this.moveCells(a,c-v.x,b-v.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,l=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(l,b[f]);var p=this.view.getState(a[f]);if(null!=p){var k=this.getCellGeometry(b[f]);null!=k&&k.relative&&!this.model.isEdge(a[f])&&
+null==d.get(this.model.getParent(a[f]))&&(k.offset=null,k.relative=!1,k.x=p.x/p.view.scale-p.view.translate.x,k.y=p.y/p.view.scale-p.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var c=Graph.prototype.isExtendParent;
+Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null!=b){var d=this.getCurrentCellStyle(b);if(null!=d.expand)return"0"!=d.expand}return c.apply(this,arguments)&&(null==b||!this.isTable(b))};var f=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,c,b,d,e,g,l,p){null==p&&(p=this.model.getParent(a),this.isTable(p)||this.isTableRow(p))&&(p=this.getCellAt(g,l,null,!0,!1));b=null;this.model.beginUpdate();try{b=f.apply(this,[a,c,b,d,e,g,l,p]);this.model.setValue(b,
+"");var k=this.getChildCells(b,!0);for(c=0;c<k.length;c++){var v=this.getCellGeometry(k[c]);null!=v&&v.relative&&0<v.x&&this.model.remove(k[c])}var X=this.getChildCells(a,!0);for(c=0;c<X.length;c++)v=this.getCellGeometry(X[c]),null!=v&&v.relative&&0>=v.x&&this.model.remove(X[c]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[b]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
mxConstants.NONE,[a]);var n=this.model.getTerminal(b,!1);if(null!=n){var t=this.getCurrentCellStyle(n);null!=t&&"1"==t.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[b]))}}finally{this.model.endUpdate()}return b};var g=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,b){if(c||b)g.apply(this,arguments);
-else{var d=this.getSelectionCell(),f=null,e=[],l=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(e.push(c),c==d)f=e.length-1;else if(a&&null==d&&0<e.length||null!=f&&a&&e.length>f||!a&&0<f)return;for(var b=0;b<this.model.getChildCount(c);b++)l(this.model.getChildAt(c,b))});l(this.model.root);0<e.length&&(f=null!=f?mxUtils.mod(f+(a?1:-1),e.length):0,this.setSelectionCell(e[f]))}};var k=Graph.prototype.moveCells;Graph.prototype.moveCells=
-function(a,c,b,d,f,e,g){g=null!=g?g:{};if(this.isTable(f)){for(var l=[],p=0;p<a.length;p++)this.isTable(a[p])?l=l.concat(this.model.getChildCells(a[p],!0).reverse()):l.push(a[p]);a=l}this.model.beginUpdate();try{l=[];for(p=0;p<a.length;p++)if(null!=f&&this.isTableRow(a[p])){var v=this.model.getParent(a[p]),n=this.getCellGeometry(a[p]);this.isTable(v)&&l.push(v);if(null!=v&&null!=n&&this.isTable(v)&&this.isTable(f)&&(d||v!=f)){if(!d){var X=this.getCellGeometry(v);null!=X&&(X=X.clone(),X.height-=n.height,
-this.model.setGeometry(v,X))}X=this.getCellGeometry(f);null!=X&&(X=X.clone(),X.height+=n.height,this.model.setGeometry(f,X));var t=this.model.getChildCells(f,!0);if(0<t.length){a[p]=d?this.cloneCell(a[p]):a[p];var m=this.model.getChildCells(a[p],!0),u=this.model.getChildCells(t[0],!0),C=u.length-m.length;if(0<C)for(var B=0;B<C;B++){var y=this.cloneCell(m[m.length-1]);null!=y&&(y.value="",this.model.add(a[p],y))}else if(0>C)for(B=0;B>C;B--)this.model.remove(m[m.length+B-1]);m=this.model.getChildCells(a[p],
-!0);for(B=0;B<u.length;B++){var la=this.getCellGeometry(u[B]),sa=this.getCellGeometry(m[B]);null!=la&&null!=sa&&(sa=sa.clone(),sa.width=la.width,this.model.setGeometry(m[B],sa))}}}}for(var x=k.apply(this,arguments),p=0;p<l.length;p++)!d&&this.model.contains(l[p])&&0==this.model.getChildCount(l[p])&&this.model.remove(l[p]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),x)}finally{this.model.endUpdate()}return x};var l=Graph.prototype.removeCells;Graph.prototype.removeCells=
+else{var d=this.getSelectionCell(),f=null,e=[],l=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(e.push(c),c==d)f=e.length-1;else if(a&&null==d&&0<e.length||null!=f&&a&&e.length>f||!a&&0<f)return;for(var b=0;b<this.model.getChildCount(c);b++)l(this.model.getChildAt(c,b))});l(this.model.root);0<e.length&&(f=null!=f?mxUtils.mod(f+(a?1:-1),e.length):0,this.setSelectionCell(e[f]))}};var p=Graph.prototype.moveCells;Graph.prototype.moveCells=
+function(a,c,b,d,f,e,g){g=null!=g?g:{};if(this.isTable(f)){for(var l=[],k=0;k<a.length;k++)this.isTable(a[k])?l=l.concat(this.model.getChildCells(a[k],!0).reverse()):l.push(a[k]);a=l}this.model.beginUpdate();try{l=[];for(k=0;k<a.length;k++)if(null!=f&&this.isTableRow(a[k])){var v=this.model.getParent(a[k]),n=this.getCellGeometry(a[k]);this.isTable(v)&&l.push(v);if(null!=v&&null!=n&&this.isTable(v)&&this.isTable(f)&&(d||v!=f)){if(!d){var X=this.getCellGeometry(v);null!=X&&(X=X.clone(),X.height-=n.height,
+this.model.setGeometry(v,X))}X=this.getCellGeometry(f);null!=X&&(X=X.clone(),X.height+=n.height,this.model.setGeometry(f,X));var t=this.model.getChildCells(f,!0);if(0<t.length){a[k]=d?this.cloneCell(a[k]):a[k];var m=this.model.getChildCells(a[k],!0),u=this.model.getChildCells(t[0],!0),C=u.length-m.length;if(0<C)for(var B=0;B<C;B++){var y=this.cloneCell(m[m.length-1]);null!=y&&(y.value="",this.model.add(a[k],y))}else if(0>C)for(B=0;B>C;B--)this.model.remove(m[m.length+B-1]);m=this.model.getChildCells(a[k],
+!0);for(B=0;B<u.length;B++){var ma=this.getCellGeometry(u[B]),sa=this.getCellGeometry(m[B]);null!=ma&&null!=sa&&(sa=sa.clone(),sa.width=ma.width,this.model.setGeometry(m[B],sa))}}}}for(var x=p.apply(this,arguments),k=0;k<l.length;k++)!d&&this.model.contains(l[k])&&0==this.model.getChildCount(l[k])&&this.model.remove(l[k]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),x)}finally{this.model.endUpdate()}return x};var l=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,c){var b=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var f=this.model.getParent(a[d]),e=this.model.getParent(f);1==this.model.getChildCount(f)&&1==this.model.getChildCount(e)?0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e)&&b.push(e):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(e=this.model.getParent(a[d]),0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e))){for(var g=this.model.getChildCells(e,!0),k=0,p=0;p<g.length;p++)0<=mxUtils.indexOf(a,
g[p])&&k++;k==g.length&&b.push(e)}b.push(a[d])}b=l.apply(this,[b,c])}finally{this.model.endUpdate()}return b};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
e[1]),2<e.length?"0"!=e[2]:!0,null,3<e.length?e[3]:0,4<e.length?e[4]:0))}}catch(za){}return d}if(null!=a.shape&&null!=a.shape.bounds){e=a.shape.direction;f=a.shape.bounds;b=a.shape.scale;d=f.width/b;f=f.height/b;if(e==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH)e=d,d=f,f=e;b=a.shape.getConstraints(a.style,d,f);if(null!=b)return b;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};
@@ -2499,9 +2500,9 @@ b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,c,b){for(va
arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&
(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a,c){var b=this.getModel(),d=[];b.beginUpdate();try{for(var f=0;f<a.length;f++){var e=a[f];if(b.isEdge(e)){var g=b.getTerminal(e,!0),l=b.getTerminal(e,!1);b.setTerminal(e,l,!0);b.setTerminal(e,g,!1);var k=b.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();var p=k.getTerminalPoint(!0),v=k.getTerminalPoint(!1);k.setTerminalPoint(p,!1);k.setTerminalPoint(v,!0);b.setGeometry(e,
k);var n=this.view.getState(e),t=this.view.getState(g),m=this.view.getState(l);if(null!=n){var X=null!=t?this.getConnectionConstraint(n,t,!0):null,u=null!=m?this.getConnectionConstraint(n,m,!1):null;this.setConnectionConstraint(e,g,!0,u);this.setConnectionConstraint(e,l,!1,X);var C=mxUtils.getValue(n.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(n.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[e]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
-C,[e])}d.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){k=k.clone();k.x+=k.width/2-k.height/2;k.y+=k.height/2-k.width/2;var B=k.width;k.width=k.height;k.height=B;b.setGeometry(e,k)}var y=this.view.getState(e);if(null!=y){var x=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],la=mxUtils.getValue(y.style,mxConstants.STYLE_DIRECTION,
-mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,x[mxUtils.mod(mxUtils.indexOf(x,la)+(c?-1:1),x.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||
-this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
+C,[e])}d.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){k=k.clone();k.x+=k.width/2-k.height/2;k.y+=k.height/2-k.width/2;var B=k.width;k.width=k.height;k.height=B;b.setGeometry(e,k)}var y=this.view.getState(e);if(null!=y){var x=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],ma=mxUtils.getValue(y.style,mxConstants.STYLE_DIRECTION,
+mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,x[mxUtils.mod(mxUtils.indexOf(x,ma)+(c?-1:1),x.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var k=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||
+this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}k.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
function(a){a=this.model.getDescendants(a);if(0<a.length)for(var c=0;c<a.length;c++){var b=this.view.getState(a[c]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(a[c]):this.isReplacePlaceholders(a[c])&&this.view.invalidate(a[c],!1,!1)}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);
b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),d=0;d<b.length;d++)c(b[d])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),l=0;l<g.length;l++)c(g[l]);
d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=Graph.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);
@@ -2532,8 +2533,8 @@ d=f,e=1;e<b.length-1;e++){var p=this.view.getState(this.model.getParent(b[e].cel
a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,l,k,p,v,n,t,m){var u=null;if(null!=m)for(u=new mxDictionary,v=0;v<m.length;v++)u.put(m[v],!0);if(m=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var C="page"==t?this.view.getBackgroundPageBounds():e&&null==u||d||"diagram"==t?this.getGraphBounds():
this.getBoundingBox(this.getSelectionCells());if(null==C)throw Error(mxResources.get("drawingEmpty"));var B=this.view.scale,y=mxUtils.createXmlDocument(),x=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=x.style?x.style.backgroundColor=a:x.setAttribute("style","background-color:"+a));null==y.createElementNS?(x.setAttribute("xmlns",mxConstants.NS_SVG),x.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):x.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);a=c/B;var X=Math.max(1,Math.ceil(C.width*a)+2*b)+(p?5:0),K=Math.max(1,Math.ceil(C.height*a)+2*b)+(p?5:0);x.setAttribute("version","1.1");x.setAttribute("width",X+"px");x.setAttribute("height",K+"px");x.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+X+" "+K);y.appendChild(x);var q=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"g"):y.createElement("g");x.appendChild(q);var E=this.createSvgCanvas(q);E.foOffset=f?-.5:0;E.textOffset=f?-.5:0;E.imageOffset=
-f?-.5:0;E.translate(Math.floor((b/c-C.x)/B),Math.floor((b/c-C.y)/B));var A=document.createElement("div"),F=E.getAlternateText;E.getAlternateText=function(a,c,b,d,f,e,g,l,k,p,v,n,z){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(A.innerHTML=e,e=mxUtils.extractTextWithWhitespace(A.childNodes));for(var ra=Math.ceil(2*d/this.state.fontSize),Da=[],oa=0,Qa=0;(0==ra||oa<ra)&&Qa<e.length;){var Ta=e.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<oa)break}else Da.push(e.charAt(Qa)),255>Ta&&
-oa++;Qa++}Da.length<e.length&&1<e.length-Da.length&&(e=mxUtils.trim(Da.join(""))+"...");return e}catch(fb){return F.apply(this,arguments)}else return F.apply(this,arguments)};var D=this.backgroundImage;if(null!=D){c=B/c;var la=this.view.translate,H=new mxRectangle(la.x*c,la.y*c,D.width*c,D.height*c);mxUtils.intersects(C,H)&&E.image(la.x,la.y,D.width,D.height,D.src,!0)}E.scale(a);E.textEnabled=g;l=null!=l?l:this.createSvgImageExport();var Z=l.drawCellState,Q=l.getLinkForCellState;l.getLinkForCellState=
+f?-.5:0;E.translate(Math.floor((b/c-C.x)/B),Math.floor((b/c-C.y)/B));var A=document.createElement("div"),F=E.getAlternateText;E.getAlternateText=function(a,c,b,d,f,e,g,l,k,p,v,n,z){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(A.innerHTML=e,e=mxUtils.extractTextWithWhitespace(A.childNodes));for(var ra=Math.ceil(2*d/this.state.fontSize),Da=[],ha=0,Qa=0;(0==ra||ha<ra)&&Qa<e.length;){var Ta=e.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<ha)break}else Da.push(e.charAt(Qa)),255>Ta&&
+ha++;Qa++}Da.length<e.length&&1<e.length-Da.length&&(e=mxUtils.trim(Da.join(""))+"...");return e}catch(fb){return F.apply(this,arguments)}else return F.apply(this,arguments)};var D=this.backgroundImage;if(null!=D){c=B/c;var ma=this.view.translate,H=new mxRectangle(ma.x*c,ma.y*c,D.width*c,D.height*c);mxUtils.intersects(C,H)&&E.image(ma.x,ma.y,D.width,D.height,D.src,!0)}E.scale(a);E.textEnabled=g;l=null!=l?l:this.createSvgImageExport();var Z=l.drawCellState,Q=l.getLinkForCellState;l.getLinkForCellState=
function(a,c){var b=Q.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};l.getLinkTargetForCellState=function(a,c){return a.view.graph.getLinkTargetForCell(a.cell)};l.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=u?u.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==u||d)&&null!=f;)d=null!=u?u.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==u||d)&&Z.apply(this,arguments)};l.drawState(this.getView().getState(this.model.root),
E);this.updateSvgLinks(x,k,!0);this.addForeignObjectWarning(E,x);return x}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&0<c.getElementsByTagName("foreignObject").length){var b=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=a.createElement("a");f.setAttribute("transform","translate(0,-5)");
null==f.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(f.setAttribute("xlink:href",Graph.foreignObjectWarningLink),f.setAttribute("target","_blank")):(f.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),f.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var e=a.createElement("text");e.setAttribute("text-anchor","middle");e.setAttribute("font-size","10px");e.setAttribute("x","50%");e.setAttribute("y","100%");mxUtils.write(e,Graph.foreignObjectWarningText);
@@ -2619,9 +2620,9 @@ this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.sec
this.secondDiv=null)),c.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var aa=(new Date).getTime(),pa=0,ga=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){ga.apply(this,arguments);b!=this.currentTerminalState?(aa=(new Date).getTime(),pa=0):pa=(new Date).getTime()-aa;this.currentTerminalState=
b};var ea=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<pa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ea.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,
-mxConstants.HANDLE_STROKECOLOR)};var ma=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ma.apply(this,arguments)};var V=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
-if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return V.apply(this,arguments)};var ca=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ca.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var na=mxVertexHandler.prototype.getSelectionBounds;
-mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):na.apply(this,arguments)};var T=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
+mxConstants.HANDLE_STROKECOLOR)};var na=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return na.apply(this,arguments)};var V=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
+if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return V.apply(this,arguments)};var ca=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ca.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var oa=mxVertexHandler.prototype.getSelectionBounds;
+mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):oa.apply(this,arguments)};var T=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&T.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var P=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){P.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var ua=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){ua.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
@@ -2633,40 +2634,40 @@ this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document
var f=document.createElement("img");f.setAttribute("src",Dialog.prototype.clearImage);f.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));f.setAttribute("width","13");f.setAttribute("height","10");f.style.marginLeft="4px";f.style.marginBottom="-1px";f.style.cursor="pointer";this.linkHint.appendChild(f);mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var e=
document.createElement("div");e.style.marginTop=null!=c||0<d?"6px":"0px";e.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(e)}}}catch(ya){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var da=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){da.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});
var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var ia=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ia.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var qa=mxVertexHandler.prototype.redrawHandles;
+this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var ja=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ja.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var qa=mxVertexHandler.prototype.redrawHandles;
mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var a=0;a<this.moveHandles.length;a++)this.moveHandles[a].style.left=this.moveHandles[a].rowState.x+this.moveHandles[a].rowState.width-5+"px",this.moveHandles[a].style.top=this.moveHandles[a].rowState.y+this.moveHandles[a].rowState.height/2-6+"px";if(null!=this.cornerHandles){var a=this.getSelectionBorderInset(),c=this.cornerHandles,b=c[0].bounds.height/2;c[0].bounds.x=this.state.x-c[0].bounds.width/2+a;c[0].bounds.y=
this.state.y-b+a;c[0].redraw();c[1].bounds.x=c[0].bounds.x+this.state.width-2*a;c[1].bounds.y=c[0].bounds.y;c[1].redraw();c[2].bounds.x=c[0].bounds.x;c[2].bounds.y=this.state.y+this.state.height-2*a;c[2].redraw();c[3].bounds.x=c[1].bounds.x;c[3].bounds.y=c[2].bounds.y;c[3].redraw();for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");qa.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null,null==b&&(b=this.state),b=b.y+b.height,null!=c&&(b=Math.max(b,c.y+c.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(b+this.verticalOffset/2+Editor.hintOffset)+"px")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){R.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=
this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].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 ka=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(ka.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
-null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ba=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ba.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
-function(){ja.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 a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function m(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function f(){mxShape.call(this)}function g(){mxShape.call(this)}function k(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function l(){mxActor.call(this)}function p(){mxCylinder.call(this)}
+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 la=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(la.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
+null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ba=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ba.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ka=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
+function(){ka.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 a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function m(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function f(){mxShape.call(this)}function g(){mxShape.call(this)}function p(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function l(){mxActor.call(this)}function k(){mxCylinder.call(this)}
function u(){mxCylinder.call(this)}function t(){mxActor.call(this)}function A(){mxActor.call(this)}function y(){mxActor.call(this)}function I(){mxActor.call(this)}function x(){mxActor.call(this)}function F(){mxActor.call(this)}function H(){mxActor.call(this)}function L(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;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 G(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}
function D(){mxActor.call(this)}function M(){mxActor.call(this)}function O(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function v(){mxCylinder.call(this)}function C(){mxShape.call(this)}function B(){mxShape.call(this)}function E(){mxEllipse.call(this)}function K(){mxShape.call(this)}function Z(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function pa(){mxShape.call(this)}function ga(){mxShape.call(this)}
-function ea(){mxShape.call(this)}function ma(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function na(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function ua(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ia(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function R(){mxActor.call(this)}
-function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function ja(){mxActor.call(this)}function X(){mxActor.call(this)}function la(){mxActor.call(this)}function sa(){mxActor.call(this)}function va(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function S(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
+function ea(){mxShape.call(this)}function na(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function oa(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function ua(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ja(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function R(){mxActor.call(this)}
+function la(){mxActor.call(this)}function ba(){mxActor.call(this)}function ka(){mxActor.call(this)}function X(){mxActor.call(this)}function ma(){mxActor.call(this)}function sa(){mxActor.call(this)}function va(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function S(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function ia(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
function Ea(){mxEllipse.call(this)}function Ca(){mxActor.call(this)}function xa(){mxActor.call(this)}function Ga(){mxActor.call(this)}function Y(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ia(){mxConnector.call(this)}function Ua(a,c,b,d,f,e,g,l,k,p){g+=k;var z=d.clone();d.x-=f*(2*g+k);d.y-=e*(2*g+k);f*=g+k;e*=g+k;return function(){a.ellipse(z.x-
f-g,z.y-e-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var z=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=z,z=e,e=g;a.rotate(-this.getShapeRotation(),z,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var z=this.state.view.graph,e=z.getActualStartSize(this.state.cell),
-g=z.model.getChildCells(this.state.cell,!0);if(0<g.length){var ra="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),oa="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(ra)for(ra=1;ra<g.length;ra++){var l=z.getCellGeometry(g[ra]);null!=l&&(a.begin(),a.moveTo(c+e.x,b+l.y),a.lineTo(c+d-e.width,b+l.y),a.end(),a.stroke())}if(oa)for(d=z.model.getChildCells(g[0],!0),ra=1;ra<d.length;ra++)l=z.getCellGeometry(d[ra]),null!=l&&(a.begin(),a.moveTo(c+l.x+e.x,b+e.y),a.lineTo(c+l.x+e.x,b+f-e.height),
-a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
-a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-z,0);a.lineTo(d,z);a.lineTo(d,f);a.lineTo(z,f);a.lineTo(0,f-z);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-z,0),a.lineTo(d,z),a.lineTo(z,z),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(z,z),a.lineTo(z,f),a.lineTo(0,f-z),
-a.close(),a.fill()),a.begin(),a.moveTo(z,f),a.lineTo(z,z),a.lineTo(0,0),a.moveTo(z,z),a.lineTo(d,z),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Ra=Math.tan(mxUtils.toRadians(30)),Ja=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-z),b+.5*(f-z),z,z);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ra);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ja);
-a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ja)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ra));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ja)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ja)*c),a.lineTo(.5*c,(1-Ja)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ja),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ja)*c),a.lineTo(0,.75*
-c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
+g=z.model.getChildCells(this.state.cell,!0);if(0<g.length){var ra="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),l="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(ra)for(ra=1;ra<g.length;ra++){var ha=z.getCellGeometry(g[ra]);null!=ha&&(a.begin(),a.moveTo(c+e.x,b+ha.y),a.lineTo(c+d-e.width,b+ha.y),a.end(),a.stroke())}if(l)for(d=z.model.getChildCells(g[0],!0),ra=1;ra<d.length;ra++)ha=z.getCellGeometry(d[ra]),null!=ha&&(a.begin(),a.moveTo(c+ha.x+e.x,b+e.y),a.lineTo(c+ha.x+e.x,b+
+f-e.height),a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",
+this.darkOpacity2))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-z,0);a.lineTo(d,z);a.lineTo(d,f);a.lineTo(z,f);a.lineTo(0,f-z);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-z,0),a.lineTo(d,z),a.lineTo(z,z),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(z,z),a.lineTo(z,
+f),a.lineTo(0,f-z),a.close(),a.fill()),a.begin(),a.moveTo(z,f),a.lineTo(z,z),a.lineTo(0,0),a.moveTo(z,z),a.lineTo(d,z),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Ra=Math.tan(mxUtils.toRadians(30)),Ja=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);
+e.prototype.size=6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-z),b+.5*(f-z),z,z);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ra);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*
+c,c*Ja);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ja)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ra));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ja)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ja)*c),a.lineTo(.5*c,(1-Ja)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ja),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ja)*c),a.lineTo(0,
+.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};n.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",n);mxUtils.extend(q,mxCylinder);q.prototype.size=30;q.prototype.darkOpacity=0;q.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-z,0);a.lineTo(d,z);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-z,0),a.lineTo(d-z,z),a.lineTo(d,z),a.close(),a.fill()),a.begin(),a.moveTo(d-z,0),a.lineTo(d-z,z),a.lineTo(d,z),a.end(),a.stroke())};
mxCellRenderer.registerShape("note",q);mxUtils.extend(c,q);mxCellRenderer.registerShape("note2",c);c.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,0)}return null};mxUtils.extend(f,mxShape);f.prototype.isoAngle=15;f.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
Math.PI/200,z=Math.min(d*Math.tan(z),.5*f);a.translate(c,b);a.begin();a.moveTo(.5*d,0);a.lineTo(d,z);a.lineTo(d,f-z);a.lineTo(.5*d,f);a.lineTo(0,f-z);a.lineTo(0,z);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,z);a.lineTo(.5*d,2*z);a.lineTo(d,z);a.moveTo(.5*d,2*z);a.lineTo(.5*d,f);a.stroke()};mxCellRenderer.registerShape("isoCube2",f);mxUtils.extend(g,mxShape);g.prototype.size=15;g.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.translate(c,b);0==z?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,z),a.arcTo(.5*d,z,0,0,1,.5*d,0),a.arcTo(.5*d,z,0,0,1,d,z),a.lineTo(d,f-z),a.arcTo(.5*d,z,0,0,1,.5*d,f),a.arcTo(.5*d,z,0,0,1,0,f-z),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,z),a.arcTo(.5*d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke())};mxCellRenderer.registerShape("cylinder2",g);mxUtils.extend(k,mxCylinder);k.prototype.size=15;k.prototype.paintVertexShape=function(a,
+"size",this.size))));a.translate(c,b);0==z?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,z),a.arcTo(.5*d,z,0,0,1,.5*d,0),a.arcTo(.5*d,z,0,0,1,d,z),a.lineTo(d,f-z),a.arcTo(.5*d,z,0,0,1,.5*d,f),a.arcTo(.5*d,z,0,0,1,0,f-z),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,z),a.arcTo(.5*d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke())};mxCellRenderer.registerShape("cylinder2",g);mxUtils.extend(p,mxCylinder);p.prototype.size=15;p.prototype.paintVertexShape=function(a,
c,b,d,f){var z=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"lid",!0);a.translate(c,b);0==z?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),e?(a.moveTo(0,z),a.arcTo(.5*d,z,0,0,1,.5*d,0),a.arcTo(.5*d,z,0,0,1,d,z)):(a.moveTo(0,0),a.arcTo(.5*d,z,0,0,0,.5*d,z),a.arcTo(.5*d,z,0,0,0,d,0)),a.lineTo(d,f-z),a.arcTo(.5*d,z,0,0,1,.5*d,f),a.arcTo(.5*d,z,0,0,1,0,f-z),a.close(),a.fillAndStroke(),a.setShadow(!1),e&&(a.begin(),a.moveTo(d,z),a.arcTo(.5*
-d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke()))};mxCellRenderer.registerShape("cylinder3",k);mxUtils.extend(l,mxActor);l.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,
+d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke()))};mxCellRenderer.registerShape("cylinder3",p);mxUtils.extend(l,mxActor);l.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(k,mxCylinder);k.prototype.tabWidth=60;k.prototype.tabHeight=20;k.prototype.tabPosition="right";k.prototype.arcSize=.1;k.prototype.paintVertexShape=function(a,
c,b,d,f){a.translate(c,b);c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),e=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(l*=Math.min(d,f));l=Math.min(l,.5*d,.5*(f-b));c=Math.max(c,
l);c=Math.min(d-l,c);e||(l=0);a.begin();"left"==z?(a.moveTo(Math.max(l,0),b),a.lineTo(Math.max(l,0),0),a.lineTo(c,0),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d-Math.max(l,0),0),a.lineTo(d-Math.max(l,0),b));e?(a.moveTo(0,l+b),a.arcTo(l,l,0,0,1,l,b),a.lineTo(d-l,b),a.arcTo(l,l,0,0,1,d,l+b),a.lineTo(d,f-l),a.arcTo(l,l,0,0,1,d-l,f),a.lineTo(l,f),a.arcTo(l,l,0,0,1,0,f-l)):(a.moveTo(0,b),a.lineTo(d,b),a.lineTo(d,f),a.lineTo(0,f));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
-"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",p);p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
+"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",k);k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(z*=Math.min(a.width,a.height));z=Math.min(z,.5*a.width,.5*(a.height-c));d||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(a.width,a.width-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,z,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};
mxUtils.extend(u,mxCylinder);u.prototype.arcSize=.1;u.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);var z=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1);c=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));b=mxUtils.getValue(this.style,"umlStateConnection",null);e||(c*=Math.min(d,f));c=Math.min(c,.5*d,.5*f);z||(c=0);z=0;null!=b&&(z=10);a.begin();a.moveTo(z,c);a.arcTo(c,c,0,0,1,z+c,0);a.lineTo(d-c,0);a.arcTo(c,c,0,0,1,d,
c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(z+c,f);a.arcTo(c,c,0,0,1,z,f-c);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,f-20,10,10,3,3),a.stroke(),a.roundrect(d-20,f-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,f-15),a.lineTo(d-20,f-15),a.stroke());"connPointRefEntry"==b?(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke()):"connPointRefExit"==b&&(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
@@ -2675,7 +2676,7 @@ c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(z+c,f);a.arcTo(c,c,0,0,1,z,
d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-
2*c,d)}return a};mxCellRenderer.registerShape("tape",A);mxUtils.extend(y,mxActor);y.prototype.size=.3;y.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};y.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/
4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",y);var Za=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Za.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
-this.scale,a.height*c),0,0)}return null};k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
+this.scale,a.height*c),0,0)}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(z*=Math.min(a.width,a.height));z=Math.min(z,.5*a.width,.5*(a.height-c));d||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(a.width,a.width-
b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,z,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};u.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};c.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,Math.max(0,c*this.scale))}return null};mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
@@ -2700,8 +2701,8 @@ O.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"f
!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(U,mxRectangleShape);U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",U);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Xa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,
mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=z){var g=this.style["symbol"+e+"Align"],l=this.style["symbol"+e+"VerticalAlign"],k=this.style["symbol"+e+"Width"],p=this.style["symbol"+e+"Height"],v=this.style["symbol"+e+"Spacing"]||0,ra=this.style["symbol"+e+"VSpacing"]||v,oa=this.style["symbol"+e+"ArcSpacing"];null!=oa&&(oa*=this.getArcSize(d+this.strokewidth,
-f+this.strokewidth),v+=oa,ra+=oa);var oa=c,Da=b,oa=g==mxConstants.ALIGN_CENTER?oa+(d-k)/2:g==mxConstants.ALIGN_RIGHT?oa+(d-k-v):oa+v,Da=l==mxConstants.ALIGN_MIDDLE?Da+(f-p)/2:l==mxConstants.ALIGN_BOTTOM?Da+(f-p-ra):Da+ra;a.save();g=new z;g.style=this.style;z.prototype.paintVertexShape.call(g,a,oa,Da,k,p);a.restore()}e++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(v,mxCylinder);v.prototype.redrawPath=function(a,
+0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=z){var g=this.style["symbol"+e+"Align"],l=this.style["symbol"+e+"VerticalAlign"],k=this.style["symbol"+e+"Width"],p=this.style["symbol"+e+"Height"],v=this.style["symbol"+e+"Spacing"]||0,ra=this.style["symbol"+e+"VSpacing"]||v,ha=this.style["symbol"+e+"ArcSpacing"];null!=ha&&(ha*=this.getArcSize(d+this.strokewidth,
+f+this.strokewidth),v+=ha,ra+=ha);var ha=c,Da=b,ha=g==mxConstants.ALIGN_CENTER?ha+(d-k)/2:g==mxConstants.ALIGN_RIGHT?ha+(d-k-v):ha+v,Da=l==mxConstants.ALIGN_MIDDLE?Da+(f-p)/2:l==mxConstants.ALIGN_BOTTOM?Da+(f-p-ra):Da+ra;a.save();g=new z;g.style=this.style;z.prototype.paintVertexShape.call(g,a,ha,Da,k,p);a.restore()}e++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(v,mxCylinder);v.prototype.redrawPath=function(a,
c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",v);mxUtils.extend(C,mxShape);C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();
a.stroke()};mxCellRenderer.registerShape("umlActor",C);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(E,mxEllipse);E.prototype.paintVertexShape=function(a,
c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",E);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",K);mxUtils.extend(Z,mxShape);Z.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
@@ -2725,28 +2726,28 @@ mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.st
Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(z+l,g+f),new mxPoint(z+l,g+k-f),new mxPoint(p,g+k),new mxPoint(z,g+k-f),new mxPoint(z,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),g=[new mxPoint(z+f,g),new mxPoint(z+l-f,g),new mxPoint(z+l,a),new mxPoint(z+l-f,g+k),new mxPoint(z+f,g+k),new mxPoint(z,a),new mxPoint(z+f,g)]);p=new mxPoint(p,a);d&&(b.x<z||b.x>z+l?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",
mxPerimeter.HexagonPerimeter2);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",pa);mxUtils.extend(ga,mxShape);ga.prototype.size=10;ga.prototype.inset=2;ga.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,
"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+g);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-g,e/2);a.quadTo((d-e)/2-g,e+g,d/2,e+g);a.quadTo((d+e)/2+g,e+g,(d+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",ga);mxUtils.extend(ea,mxShape);ea.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);
-a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",ea);mxUtils.extend(ma,mxShape);ma.prototype.inset=2;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ma);mxUtils.extend(V,mxCylinder);V.prototype.jettyWidth=
+a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",ea);mxUtils.extend(na,mxShape);na.prototype.inset=2;na.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",na);mxUtils.extend(V,mxCylinder);V.prototype.jettyWidth=
20;V.prototype.jettyHeight=10;V.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,z=Math.min(c,f-c),l=Math.min(z+2*c,f-c);e?(a.moveTo(b,z),a.lineTo(g,z),a.lineTo(g,z+c),a.lineTo(b,z+c),a.moveTo(b,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(b,l+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,l+c),a.lineTo(0,l+c),a.lineTo(0,
l),a.lineTo(b,l),a.lineTo(b,z+c),a.lineTo(0,z+c),a.lineTo(0,z),a.lineTo(b,z),a.close());a.end()};mxCellRenderer.registerShape("module",V);mxUtils.extend(ca,mxCylinder);ca.prototype.jettyWidth=32;ca.prototype.jettyHeight=12;ca.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,z=.3*f-c/2,l=.7*f-c/2;e?(a.moveTo(b,z),a.lineTo(g,z),a.lineTo(g,
-z+c),a.lineTo(b,z+c),a.moveTo(b,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(b,l+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(b,l),a.lineTo(b,z+c),a.lineTo(0,z+c),a.lineTo(0,z),a.lineTo(b,z),a.close());a.end()};mxCellRenderer.registerShape("component",ca);mxUtils.extend(na,mxRectangleShape);na.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,z,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",na);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
+z+c),a.lineTo(b,z+c),a.moveTo(b,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(b,l+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(b,l),a.lineTo(b,z+c),a.lineTo(0,z+c),a.lineTo(0,z),a.lineTo(b,z),a.close());a.end()};mxCellRenderer.registerShape("component",ca);mxUtils.extend(oa,mxRectangleShape);oa.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,z,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",oa);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(P,T);P.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",P);mxUtils.extend(ua,mxArrowConnector);ua.prototype.defaultWidth=4;ua.prototype.isOpenEnded=function(){return!0};ua.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ua.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
ua);mxUtils.extend(W,mxArrowConnector);W.prototype.defaultWidth=10;W.prototype.defaultArrowWidth=20;W.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};W.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};W.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
-W);mxUtils.extend(da,mxActor);da.prototype.size=30;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",da);mxUtils.extend(ia,mxRectangleShape);ia.prototype.dx=
-20;ia.prototype.dy=20;ia.prototype.isHtmlAllowed=function(){return!1};ia.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
-a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ia);mxUtils.extend(qa,mxActor);qa.prototype.dx=20;qa.prototype.dy=20;qa.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));
+W);mxUtils.extend(da,mxActor);da.prototype.size=30;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",da);mxUtils.extend(ja,mxRectangleShape);ja.prototype.dx=
+20;ja.prototype.dy=20;ja.prototype.isHtmlAllowed=function(){return!1};ja.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
+a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ja);mxUtils.extend(qa,mxActor);qa.prototype.dx=20;qa.prototype.dy=20;qa.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));
var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("corner",qa);mxUtils.extend(R,mxActor);R.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",
-R);mxUtils.extend(ka,mxActor);ka.prototype.dx=20;ka.prototype.dy=20;ka.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+
-c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",ka);mxUtils.extend(ba,mxActor);ba.prototype.arrowWidth=.3;ba.prototype.arrowSize=.2;ba.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=
-b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ba);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth))));c=d*Math.max(0,
-Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ja);mxUtils.extend(X,mxActor);X.prototype.size=
-.1;X.prototype.fixedSize=20;X.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",X);mxUtils.extend(la,mxActor);la.prototype.redrawPath=function(a,
-c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",la);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",sa);mxUtils.extend(va,mxActor);va.prototype.size=20;va.prototype.isRoundable=function(){return!0};va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+R);mxUtils.extend(la,mxActor);la.prototype.dx=20;la.prototype.dy=20;la.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+
+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",la);mxUtils.extend(ba,mxActor);ba.prototype.arrowWidth=.3;ba.prototype.arrowSize=.2;ba.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=
+b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ba);mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth))));c=d*Math.max(0,
+Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ka);mxUtils.extend(X,mxActor);X.prototype.size=
+.1;X.prototype.fixedSize=20;X.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",X);mxUtils.extend(ma,mxActor);ma.prototype.redrawPath=function(a,
+c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ma);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",sa);mxUtils.extend(va,mxActor);va.prototype.size=20;va.prototype.isRoundable=function(){return!0};va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",va);mxUtils.extend(ta,mxActor);ta.prototype.size=.375;ta.prototype.isRoundable=function(){return!0};ta.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",ta);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};
mxCellRenderer.registerShape("tapeData",ya);mxUtils.extend(za,mxEllipse);za.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",za);mxUtils.extend(S,mxEllipse);S.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",S);mxUtils.extend(Aa,mxRhombus);Aa.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",
-Aa);mxUtils.extend(ha,mxEllipse);ha.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ha);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,
+Aa);mxUtils.extend(ia,mxEllipse);ia.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ia);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,
e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(wa,mxEllipse);wa.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=
!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",
wa);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ea);mxUtils.extend(Ca,mxActor);Ca.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);
@@ -2760,9 +2761,9 @@ type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"
mxUtils.getValue(this.style,"rectStyle",this.rectStyle),l=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),k=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),v=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),z=e&&e.dashed?e.dashed:
mxUtils.getValue(this.style,"dashed",!1),n=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),m=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,v)),t=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),u=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),C=e&&e.bottom?e.bottom:mxUtils.getValue(this.style,"bottom",!0),B=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
x=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),K=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),E=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),q=e&&e.fillColor?e.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,
-"strokeWidth","1"),oa=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ra=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),D=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),F=e&&e.opacity?e.opacity:mxUtils.getValue(this.style,"opacity","100"),H=Math.max(0,Math.min(50,k));e=Y.prototype;a.setDashed(z);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);k=Math.min(.5*f,.5*d,k);l||
-(k=H*Math.min(d,f)/100);k=Math.min(k,.5*Math.min(d,f));l||(v=Math.min(m*Math.min(d,f)/100));v=Math.min(v,.5*Math.min(d,f)-k);(t||u||C||B)&&"frame"!=p&&(a.begin(),t?e.moveNW(a,c,b,d,f,g,y,k,B):a.moveTo(0,0),t&&e.paintNW(a,c,b,d,f,g,y,k,B),e.paintTop(a,c,b,d,f,g,x,k,u),u&&e.paintNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),C&&e.paintSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),B&&e.paintSW(a,c,b,d,f,g,E,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(oa),
-z=l=F,"none"==oa&&(l=0),"none"==ra&&(z=0),a.setGradient(oa,ra,0,0,d,f,D,l,z),a.begin(),t?e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B):a.moveTo(v,0),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),B&&C&&e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C),C&&u&&e.paintSEInner(a,c,b,d,f,g,K,k,v),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u),u&&t&&e.paintNEInner(a,c,b,d,f,g,x,k,v),e.paintTopInner(a,c,b,d,f,g,y,k,v,B,t),t&&B&&e.paintNWInner(a,c,b,d,f,g,y,k,v),a.fill(),"none"==q&&(a.begin(),e.paintFolds(a,
+"strokeWidth","1"),ha=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ra=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),D=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),F=e&&e.opacity?e.opacity:mxUtils.getValue(this.style,"opacity","100"),H=Math.max(0,Math.min(50,k));e=Y.prototype;a.setDashed(z);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);k=Math.min(.5*f,.5*d,k);l||
+(k=H*Math.min(d,f)/100);k=Math.min(k,.5*Math.min(d,f));l||(v=Math.min(m*Math.min(d,f)/100));v=Math.min(v,.5*Math.min(d,f)-k);(t||u||C||B)&&"frame"!=p&&(a.begin(),t?e.moveNW(a,c,b,d,f,g,y,k,B):a.moveTo(0,0),t&&e.paintNW(a,c,b,d,f,g,y,k,B),e.paintTop(a,c,b,d,f,g,x,k,u),u&&e.paintNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),C&&e.paintSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),B&&e.paintSW(a,c,b,d,f,g,E,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(ha),
+z=l=F,"none"==ha&&(l=0),"none"==ra&&(z=0),a.setGradient(ha,ra,0,0,d,f,D,l,z),a.begin(),t?e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B):a.moveTo(v,0),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),B&&C&&e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C),C&&u&&e.paintSEInner(a,c,b,d,f,g,K,k,v),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u),u&&t&&e.paintNEInner(a,c,b,d,f,g,x,k,v),e.paintTopInner(a,c,b,d,f,g,y,k,v,B,t),t&&B&&e.paintNWInner(a,c,b,d,f,g,y,k,v),a.fill(),"none"==q&&(a.begin(),e.paintFolds(a,
c,b,d,f,g,y,x,K,E,k,t,u,C,B),a.stroke()));t||u||C||!B?t||u||!C||B?!t&&!u&&C&&B?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),e.paintSW(a,c,b,d,f,g,E,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),e.paintSW(a,c,b,d,f,g,E,k,
C),e.paintLeft(a,c,b,d,f,g,y,k,t),e.lineNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C),a.close(),a.fillAndStroke()):t||!u||C||B?!t&&u&&!C&&B?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),"double"==
p&&(e.moveSEInner(a,c,b,d,f,g,K,k,v,C),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),e.lineNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),e.lineSEInner(a,c,b,d,f,g,K,k,v,C),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u),a.close(),a.fillAndStroke()):!t&&u&&C&&!B?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,x,
@@ -2836,14 +2837,14 @@ c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3))
"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=b},!1)]},callout:function(a){var c=[fa(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-
c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),fa(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
(c.x-a.x)/a.width)))/100},!1),fa(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+d),a.y+a.height-c)},function(a,c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));
-this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Fa(a));return c},internalStorage:function(a){var c=[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
+this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Fa(a));return c},internalStorage:function(a){var c=[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Fa(a));return c},module:function(a){return[fa(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",V.prototype.jettyWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",V.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+
2*b)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",qa.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",qa.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
-Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ka.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ka.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=
-Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(a){return[fa(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+
-c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-
+Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",la.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",la.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=
+Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(a){return[fa(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+
+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-
c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[fa(a,["isoAngle"],function(a){var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
-"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(c),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Va(g.prototype.size),cylinder3:Va(k.prototype.size),offPageConnector:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=
+"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(c),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Va(g.prototype.size),cylinder3:Va(p.prototype.size),offPageConnector:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=
Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,
"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(M.prototype.size,!0,null,!0,M.prototype.fixedSize),hexagon:Ma(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Ma(F.prototype.size,!1),display:Ma(Ga.prototype.size,!1),cube:Sa(1,b.prototype.size,!1),card:Sa(.5,t.prototype.size,!0),loopLimit:Sa(.5,va.prototype.size,!0),trapezoid:Wa(.5,
x.prototype.size,x.prototype.fixedSize),parallelogram:Wa(1,I.prototype.size,I.prototype.fixedSize)};Graph.createHandle=fa;Graph.handleFactory=Na;var cb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=cb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
@@ -2863,13 +2864,13 @@ null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.
0),!1));return a};t.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};k.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};p.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};k.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
.5*(c+d),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ia.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxEllipse.prototype.constraints;Ea.prototype.constraints=
+0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ja.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxEllipse.prototype.constraints;Ea.prototype.constraints=
mxEllipse.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;Ca.prototype.constraints=mxRectangleShape.prototype.constraints;Ga.prototype.getConstraints=function(a,c,b){a=[];var d=Math.min(c,b/2),f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
.5*(f+c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};V.prototype.getConstraints=function(a,c,b){c=parseFloat(mxUtils.getValue(a,"jettyWidth",V.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,
"jettyHeight",V.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),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(1,0),!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(0,1),!1,null,c),
@@ -2886,32 +2887,32 @@ a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return d};va
[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)];I.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;y.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;ka.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+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;la.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(c+d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};qa.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return a};R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ba.prototype.getConstraints=
function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};ja.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};ka.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};xa.prototype.getConstraints=
function(a,c,b){a=[];var d=Math.min(b,c),f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(b-f)/2,e=d+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
-.9),!1)];sa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+.9),!1)];sa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,m=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("smartFit",function(){d.popupMenuHandler.hideMenu();var a=
d.view.scale,f=d.view.translate.x,e=d.view.translate.y;b.actions.get("resetView").funct();1E-5>Math.abs(a-d.view.scale)&&f==d.view.translate.x&&e==d.view.translate.y&&b.actions.get(d.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?b.actions.get("smartFit").funct():d.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));
-window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(k){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+k.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=m;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=m;this.addAction("saveAs...",function(){b.saveFile(!0)},null,
+window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+p.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=m;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=m;this.addAction("saveAs...",function(){b.saveFile(!0)},null,
null,Editor.ctrlKey+"+Shift+S").isEnabled=m;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=m;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print",
Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=b.copyXml(),null!=a&&d.removeCells(a)}catch(f){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{b.copyXml()}catch(c){}try{mxClipboard.copy(d)}catch(c){b.handleError(c)}},
null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),a=!0)}catch(f){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){function c(a){if(null!=a){for(var c=!0,b=0;b<
-a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var k=d.getCellGeometry(a[0]);null!=k&&(f=k.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function e(){d.getModel().beginUpdate();try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=
-!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else e()}),a=!0)}catch(k){}a||e()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&
+a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var p=d.getCellGeometry(a[0]);null!=p&&(f=p.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function e(){d.getModel().beginUpdate();try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=
+!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else e()}),a=!0)}catch(p){}a||e()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&
null!=b.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getResizableCells(d.getSelectionCells()),f=0;f<a.length;f++)if(d.getModel().isVertex(a[f])){var e=d.getCellGeometry(a[f]);null!=e&&(e=e.clone(),e.width=b.copiedSize.width,e.height=b.copiedSize.height,d.getModel().setGeometry(a[f],e))}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=d.getSelectionCell()||d.getModel().getRoot();d.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||
-(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var f=e.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==f||isNaN(f.nodeType)||b.setAttribute("placeholders",f.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));e.setValue(c,b)}var e=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){e.beginUpdate();try{var k=d.getEditableCells(d.getSelectionCells());
-if(0==k.length)c(e.getRoot(),b.copiedValue);else for(var l=0;l<k.length;l++)c(k[l],b.copiedValue)}finally{e.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(c){a(null!=c&&mxEvent.isControlDown(c))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),b=0;b<a.length;b++)d.cellLabelChanged(a[b],"")}finally{d.getModel().endUpdate()}}},
+(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var f=e.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==f||isNaN(f.nodeType)||b.setAttribute("placeholders",f.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));e.setValue(c,b)}var e=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){e.beginUpdate();try{var p=d.getEditableCells(d.getSelectionCells());
+if(0==p.length)c(e.getRoot(),b.copiedValue);else for(var l=0;l<p.length;l++)c(p[l],b.copiedValue)}finally{e.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(c){a(null!=c&&mxEvent.isControlDown(c))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),b=0;b<a.length;b++)d.cellLabelChanged(a[b],"")}finally{d.getModel().endUpdate()}}},
null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{d.setSelectionCells(d.duplicateCells()),d.scrollCellToVisible(d.getSelectionCell())}catch(c){b.handleError(c)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(a){d.turnShapes(d.getResizableCells(d.getSelectionCells()),null!=a?mxEvent.isShiftDown(a):!1)},null,null,Editor.ctrlKey+"+R"));this.put("selectConnections",new Action(mxResources.get("selectEdges"),
function(a){a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.addSelectionCells(d.getEdges(a))}));this.addAction("selectVertices",function(){d.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",
function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),b=d.getCurrentCellStyle(d.getSelectionCell()),e=1==mxUtils.getValue(b,mxConstants.STYLE_EDITABLE,1)?0:1;d.setCellStyles(mxConstants.STYLE_MOVABLE,e,a);d.setCellStyles(mxConstants.STYLE_RESIZABLE,e,a);d.setCellStyles(mxConstants.STYLE_ROTATABLE,e,a);d.setCellStyles(mxConstants.STYLE_DELETABLE,e,a);d.setCellStyles(mxConstants.STYLE_EDITABLE,e,a);d.setCellStyles("connectable",e,a)}finally{d.getModel().endUpdate()}}},
@@ -2923,10 +2924,10 @@ d.getSelectionCells();if(null!=a){for(var b=[],e=0;e<a.length;e++)d.isTableRow(a
null!=a&&d.openLink(a)});this.addAction("editLink...",function(){var a=d.getSelectionCell();if(d.isEnabled()&&null!=a&&d.isCellEditable(a)){var f=d.getLinkForCell(a)||"";b.showLinkDialog(f,mxResources.get("apply"),function(c,b,f){c=mxUtils.trim(c);d.setLinkForCell(a,0<c.length?c:null);d.setAttributeForCell(a,"linkTarget",f)},!0,d.getLinkTargetForCell(a))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
(d.clearSelection(),b.actions.get("image").funct())})).isEnabled=m;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,b,e){a=mxUtils.trim(a);if(0<a.length){var c=null,f=d.getLinkTitle(a);null!=b&&0<b.length&&(c=b[0].iconUrl,f=b[0].name||b[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));b=new mxCell(f,new mxGeometry(0,0,100,
40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));b.vertex=!0;c=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([b],!0));b.geometry.x=c.x;b.geometry.y=c.y;d.setAttributeForCell(b,"linkTarget",e);d.setLinkForCell(b,a);d.cellSizeUpdated(b,!0);d.getModel().beginUpdate();try{b=d.addCell(b),d.fireEvent(new mxEventObject("cellsInserted","cells",[b]))}finally{d.getModel().endUpdate()}d.setSelectionCell(b);
-d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=m;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),f=d.getParentByName(a,"A",d.cellEditor.textarea),e="";if(null==f&&null!=a&&null!=a.getElementsByTagName)for(var k=a.getElementsByTagName("a"),l=0;l<k.length&&null==f;l++)k[l].textContent==a.textContent&&(f=k[l]);null!=f&&"A"==f.nodeName&&(e=f.getAttribute("href")||"",d.selectNode(f));var p=d.cellEditor.saveSelection();
-b.showLinkDialog(e,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(p);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=m;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var e=a[b];0<d.getModel().getChildCount(e)?d.updateGroupBounds([e],20):d.updateCellSize(e)}}finally{d.getModel().endUpdate()}}},null,
-null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var f=d.getEditableCells(d.getSelectionCells()),e=0;e<f.length;e++)if(state=d.getView().getState(f[e]),null!=state){var k=mxUtils.getValue(state.style,"html","0");if("1"==k&&null==a){var l=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,
-"").replace(/<br\s*.?>/g,"\n"));var p=document.createElement("div");p.innerHTML=d.sanitizeHtml(l);l=mxUtils.extractTextWithWhitespace(p.childNodes);d.cellLabelChanged(state.cell,l);d.setCellStyles("html",a,[f[e]])}else"0"==k&&"1"==a&&(l=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(l)),d.setCellStyles("html",a,[f[e]]))}b.fireEvent(new mxEventObject("styleChanged",
+d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=m;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),f=d.getParentByName(a,"A",d.cellEditor.textarea),e="";if(null==f&&null!=a&&null!=a.getElementsByTagName)for(var p=a.getElementsByTagName("a"),l=0;l<p.length&&null==f;l++)p[l].textContent==a.textContent&&(f=p[l]);null!=f&&"A"==f.nodeName&&(e=f.getAttribute("href")||"",d.selectNode(f));var k=d.cellEditor.saveSelection();
+b.showLinkDialog(e,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(k);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=m;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var e=a[b];0<d.getModel().getChildCount(e)?d.updateGroupBounds([e],20):d.updateCellSize(e)}}finally{d.getModel().endUpdate()}}},null,
+null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var f=d.getEditableCells(d.getSelectionCells()),e=0;e<f.length;e++)if(state=d.getView().getState(f[e]),null!=state){var p=mxUtils.getValue(state.style,"html","0");if("1"==p&&null==a){var l=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,
+"").replace(/<br\s*.?>/g,"\n"));var k=document.createElement("div");k.innerHTML=d.sanitizeHtml(l);l=mxUtils.extractTextWithWhitespace(k.childNodes);d.cellLabelChanged(state.cell,l);d.setCellStyles("html",a,[f[e]])}else"0"==p&&"1"==a&&(l=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(l)),d.setCellStyles("html",a,[f[e]]))}b.fireEvent(new mxEventObject("styleChanged",
"keys",["html"],"values",[null!=a?a:"0"],"cells",f))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",f=d.getView().getState(d.getSelectionCell());null!=f&&(a=f.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),
function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(a){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,b.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(a){d.isFastZoomEnabled()?
d.lazyZoom(!1,!0,b.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var a=d.isSelectionEmpty()?d.getGraphBounds():d.getBoundingBox(d.getSelectionCells()),f=d.view.translate,e=d.view.scale;a.x=a.x/e-f.x;a.y=a.y/e-f.y;a.width/=e;a.height/=e;null!=d.backgroundImage&&a.add(new mxRectangle(0,0,d.backgroundImage.width,d.backgroundImage.height));0==a.width||0==a.height?(d.zoomTo(1),b.resetScrollbars()):(f=Editor.fitWindowBorders,
@@ -2939,9 +2940,9 @@ n.setEnabled(!1);n=this.addAction("guides",function(){d.graphHandler.guidesEnabl
n=this.addAction("collapseExpand",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.foldingEnabled});n.isEnabled=m;n=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.scrollbars});n=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));
n.setToggleAction(!0);n.setSelectedCallback(function(){return d.pageVisible});n=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");n.setToggleAction(!0);n.setSelectedCallback(function(){return d.connectionArrowsEnabled});n=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},
null,null,"Alt+Shift+P");n.setToggleAction(!0);n.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});n=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});n.isEnabled=m;n=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});n.setToggleAction(!0);
-n.setSelectedCallback(function(){return b.editor.autosave});n.isEnabled=m;n.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var q=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){q||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){q=!1}),q=!0)}));n=mxUtils.bind(this,function(a,b,e,k){return this.addAction(a,function(){if(null!=
+n.setSelectedCallback(function(){return b.editor.autosave});n.isEnabled=m;n.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var q=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){q||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){q=!1}),q=!0)}));n=mxUtils.bind(this,function(a,b,e,p){return this.addAction(a,function(){if(null!=
e&&d.cellEditor.isContentEditing())e();else{d.stopEditing(!1);d.getModel().beginUpdate();try{var a=d.getEditableCells(d.getSelectionCells());d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,b,a);(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(a,function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(a,function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==
-mxConstants.FONT_UNDERLINE&&d.updateLabelElements(a,function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var c=0;c<a.length;c++)0==d.model.getChildCount(a[c])&&d.autoSizeCell(a[c],!1)}finally{d.getModel().endUpdate()}}},null,null,k)});n("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");n("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");n("underline",mxConstants.FONT_UNDERLINE,
+mxConstants.FONT_UNDERLINE&&d.updateLabelElements(a,function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var c=0;c<a.length;c++)0==d.model.getChildCount(a[c])&&d.autoSizeCell(a[c],!1)}finally{d.getModel().endUpdate()}}},null,null,p)});n("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");n("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");n("underline",mxConstants.FONT_UNDERLINE,
function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",
function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",
@@ -2951,12 +2952,12 @@ d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dott
"values",[e,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),
f="1";null!=a&&null!=d.getFoldingImage(a)&&(f="0");d.setCellStyles("collapsible",f);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[f],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getEditableCells(d.getSelectionCells());if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),a)},null,null,
400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);
-if(b instanceof mxEdgeHandler){for(var g=d.view.translate,k=d.view.scale,l=g.x,g=g.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=p;)l+=p.x,g+=p.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);l=Math.round(d.snap(d.popupMenuHandler.triggerX/k-l));k=Math.round(d.snap(d.popupMenuHandler.triggerY/k-g));b.addPointAt(b.state,l,k)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,
+if(b instanceof mxEdgeHandler){for(var g=d.view.translate,p=d.view.scale,l=g.x,g=g.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=k;)l+=k.x,g+=k.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);l=Math.round(d.snap(d.popupMenuHandler.triggerX/p-l));p=Math.round(d.snap(d.popupMenuHandler.triggerY/p-g));b.addPointAt(b.state,l,p)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,
a.index)});this.addAction("clearWaypoints",function(a){var c=d.getSelectionCells();if(null!=c){c=d.getEditableCells(d.addAllEdges(c));d.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var e=c[b];if(d.getModel().isEdge(e)){var l=d.getCellGeometry(e);mxEvent.isShiftDown(a)?(d.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),d.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=l&&(l=
l.clone(),l.points=null,l.x=0,l.y=0,l.offset=null,d.getModel().setGeometry(e,l))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");n=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");n=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
-function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",f=d.getView().getState(d.getSelectionCell()),e="";null!=f&&(e=f.style[mxConstants.STYLE_IMAGE]||e);var k=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(k),d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var e=null;d.getModel().beginUpdate();
-try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],g=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=g.x;f[0].geometry.y=g.y;e=f;d.fireEvent(new mxEventObject("cellsInserted","cells",e))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,f);var l=d.getCurrentCellStyle(f[0]);"image"!=l[mxConstants.STYLE_SHAPE]&&"label"!=l[mxConstants.STYLE_SHAPE]?
-d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var p=f[0],n=d.getModel().getGeometry(p);null!=n&&(n=n.clone(),n.width=c,n.height=b,d.getModel().setGeometry(p,n))}}finally{d.getModel().endUpdate()}null!=e&&(d.setSelectionCells(e),d.scrollCellToVisible(e[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=m;n=this.addAction("layers",mxUtils.bind(this,function(){null==
+function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",f=d.getView().getState(d.getSelectionCell()),e="";null!=f&&(e=f.style[mxConstants.STYLE_IMAGE]||e);var p=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(p),d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var e=null;d.getModel().beginUpdate();
+try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],g=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=g.x;f[0].geometry.y=g.y;e=f;d.fireEvent(new mxEventObject("cellsInserted","cells",e))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,f);var k=d.getCurrentCellStyle(f[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?
+d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var l=f[0],n=d.getModel().getGeometry(l);null!=n&&(n=n.clone(),n.width=c,n.height=b,d.getModel().setGeometry(l,n))}}finally{d.getModel().endUpdate()}null!=e&&(d.setSelectionCells(e),d.scrollCellToVisible(e[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=m;n=this.addAction("layers",mxUtils.bind(this,function(){null==
this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+
"+Shift+L");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));n=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));n=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-
260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return null!=
@@ -2968,22 +2969,22 @@ DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile
DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(a,b){this.savingFile?null!=b&&b({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(a,b):this.updateFile(a,b)};
DrawioFile.prototype.updateFile=function(a,b,e,d){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():this.getLatestVersion(mxUtils.bind(this,function(m){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():null!=m?this.mergeFile(m,a,b,d):this.reloadFile(a,b))}catch(n){null!=b&&b(n)}}),b))};
DrawioFile.prototype.mergeFile=function(a,b,e,d){var m=!0;try{this.stats.fileMerged++;var n=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),q=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=q&&0<q.length){this.shadowPages=q;this.backupPatch=this.isModified()?this.ui.diffPages(n,this.ui.pages):null;var c=[this.ui.diffPages(null!=d?d:n,this.shadowPages)];if(!this.ignorePatches(c)){var f=this.ui.patchPages(n,
-c[0]);d={};var g=this.ui.getHashValueForPages(f,d),n={},k=this.ui.getHashValueForPages(this.shadowPages,n);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",c,"checksum",k==g,g);if(null!=g&&g!=k){var l=this.compressReportData(this.getAnonymizedXmlForPages(q)),p=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(a.getCurrentEtag()),t=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,c,"Shadow Details: "+JSON.stringify(d)+
-"\nChecksum: "+g+"\nCurrent: "+k+"\nCurrent Details: "+JSON.stringify(n)+"\nFrom: "+u+"\nTo: "+t+"\n\nFile Data:\n"+l+"\nPatched Shadow:\n"+p,null,"mergeFile");return}this.patch(c,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw m=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(I){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+c[0]);d={};var g=this.ui.getHashValueForPages(f,d),n={},p=this.ui.getHashValueForPages(this.shadowPages,n);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",c,"checksum",p==g,g);if(null!=g&&g!=p){var l=this.compressReportData(this.getAnonymizedXmlForPages(q)),k=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(a.getCurrentEtag()),t=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,c,"Shadow Details: "+JSON.stringify(d)+
+"\nChecksum: "+g+"\nCurrent: "+p+"\nCurrent Details: "+JSON.stringify(n)+"\nFrom: "+u+"\nTo: "+t+"\n\nFile Data:\n"+l+"\nPatched Shadow:\n"+k,null,"mergeFile");return}this.patch(c,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw m=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(I){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
null!=e&&e(I);try{if(m)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,I);else{var A=this.getCurrentUser(),y=null!=A?A.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),y,I)}}catch(x){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var b=new mxCodec(mxUtils.createXmlDocument()),e=b.document.createElement("mxfile");if(null!=a)for(var d=0;d<a.length;d++){var m=b.encode(new mxGraphModel(a[d].root));"1"!=urlParams.dev&&(m=this.ui.anonymizeNode(m,!0));m.setAttribute("id",a[d].getId());a[d].viewState&&this.ui.editor.graph.saveViewState(a[d].viewState,m,!0);e.appendChild(m)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(a,b,e){b=null!=b?b:1E4;null!=e&&null!=a&&a.length>e?a=a.substring(0,e)+"[...]":null!=a&&a.length>b&&(a=Graph.compress(a)+"\n");return a};
DrawioFile.prototype.checksumError=function(a,b,e,d,m){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=b)for(a=0;a<b.length;a++)this.ui.anonymizePatch(b[a]);var n=mxUtils.bind(this,function(a){var c=this.compressReportData(JSON.stringify(b,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
25E3):"n/a";this.sendErrorReport("Checksum Error in "+m+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+c+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==d?n(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==d?n(a):n(null)}),function(){})}else{var q=this.getCurrentUser(),c=null!=q?q.id:"unknown";EditorUi.logError("Checksum Error in "+m+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+c+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:m,label:"user_"+c+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(f){}}}catch(f){}};
-DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var m=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),n=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),q=this.getCurrentUser(),c=null!=q?this.ui.hashValue(q.id):"unknown",f=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),k=g.lastIndexOf("."),q="xml";0<k&&(q=g.substring(k));var l=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
+DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var m=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),n=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),q=this.getCurrentUser(),c=null!=q?this.ui.hashValue(q.id):"unknown",f=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),p=g.lastIndexOf("."),q="xml";0<p&&(q=g.substring(p));var l=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+q+")\nUser="+c+f+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=b?"\n\n"+b:
-"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+l+"\n\nShadow:\n"+m+"\n\nData:\n"+n,d)}catch(p){}};
+"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+l+"\n\nShadow:\n"+m+"\n\nData:\n"+n,d)}catch(k){}};
DrawioFile.prototype.reloadFile=function(a,b){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var b=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),n=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(n,b,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var d=this.ui.getCurrentFile();null!=d&&(d.stats=this.stats);null!=a&&
a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(d){null!=b&&b(d)}};DrawioFile.prototype.copyFile=function(a,b){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(a){for(var b=!0,e=0;e<a.length&&b;e++)b=b&&0==Object.keys(a[e]).length;return b};
-DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,m=d.history.slice(),n=d.indexOfNextAdd,q=this.ui.editor.graph;q.container.style.visibility="hidden";var c=this.changeListenerEnabled;this.changeListenerEnabled=e;var f=q.foldingEnabled,g=q.mathEnabled,k=q.cellRenderer.redraw;q.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());k.apply(this,arguments)};q.model.beginUpdate();try{for(var l=
-0;l<a.length;l++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[l],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{q.container.style.visibility="";q.model.endUpdate();q.cellRenderer.redraw=k;this.changeListenerEnabled=c;e||(d.history=m,d.indexOfNextAdd=n,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=
+DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,m=d.history.slice(),n=d.indexOfNextAdd,q=this.ui.editor.graph;q.container.style.visibility="hidden";var c=this.changeListenerEnabled;this.changeListenerEnabled=e;var f=q.foldingEnabled,g=q.mathEnabled,p=q.cellRenderer.redraw;q.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());p.apply(this,arguments)};q.model.beginUpdate();try{for(var l=
+0;l<a.length;l++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[l],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{q.container.style.visibility="";q.model.endUpdate();q.cellRenderer.redraw=p;this.changeListenerEnabled=c;e||(d.history=m,d.indexOfNextAdd=n,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=
q.mathEnabled?(this.ui.editor.updateGraphComponents(),q.refresh()):(f!=q.foldingEnabled?q.view.revalidate():q.view.validate(),q.sizeDidChange());this.ui.updateTabContainer()}};
DrawioFile.prototype.save=function(a,b,e,d,m,n){try{if(this.isEditable())if(!m&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=b&&b();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(q){if(null!=e)e(q);else throw q;}};
DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var a=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=a?"false"!=a:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(a,b,e){};DrawioFile.prototype.saveFile=function(a,b,e,d){};
@@ -2999,7 +3000,7 @@ DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(thi
this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("tooltipsEnabledChanged",
this.changeListener),this.ui.addListener("pageViewChanged",this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))};
DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var a={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(a));EditorUi.debug("draft saved",this.draftId,a)}catch(b){console.error(b),this.removeDraft()}};
+DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var a={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(a));EditorUi.debug("draft saved",this.draftId,a)}catch(b){this.removeDraft()}};
DrawioFile.prototype.removeDraft=function(){try{null!=this.draftId&&(this.ui.removeDatabaseItem(".draft_"+this.draftId),EditorUi.debug("draft deleted",".draft_"+this.draftId))}catch(a){}};
DrawioFile.prototype.addUnsavedStatus=function(a){if(!this.inConflictState&&null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this)if(a instanceof Error&&null!=a.message&&""!=a.message){var b=mxUtils.htmlEntities(mxResources.get("unsavedChanges"));this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlert" style="overflow:hidden;">'+b+" ("+mxUtils.htmlEntities(a.message)+")</div>")}else{b=this.getErrorMessage(a);if(null==b&&null!=this.lastSaved){var e=this.ui.timeSince(new Date(this.lastSaved));
null!=e&&(b=mxResources.get("lastSaved",[e]))}null!=b&&60<b.length&&(b=b.substring(0,60)+"...");b=mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+(null!=b&&""!=b?" ("+mxUtils.htmlEntities(b)+")":"");this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlertOrange" style="cursor:pointer;overflow:hidden;">'+b+' <img src="'+Editor.saveImage+'" align="top" style="width:16px;margin-top:'+(mxClient.IS_FF?-3:-2)+'px"/></div>');b=this.ui.statusContainer.getElementsByTagName("div");
@@ -3034,9 +3035,10 @@ DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.proto
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(a){this.desc=a};
LocalFile.prototype.getLatestVersion=function(a,b){null==this.fileHandle?a(null):this.ui.loadFileSystemEntry(this.fileHandle,a,b)};
LocalFile.prototype.saveFile=function(a,b,e,d,m){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;m||this.updateFileData();var n=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var q=this.getData(),c=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),f=mxUtils.bind(this,function(b){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var f=mxUtils.bind(this,
-function(a){this.savingFile=!1;null!=d&&d({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(n?this.ui.base64ToBlob(b,"image/png"):b).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var b=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(q,
-b,c,f)}),f)}),f)}),f):(this.inConflictState=!0,f())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;f(a)}))}),f)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,n?"image/png":"text/xml",n);else if(b.length<MAX_REQUEST_SIZE){var e=a.lastIndexOf("."),e=0<e?a.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+(n?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
-mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));c()}});n?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){f(a)}),d,this.ui.getCurrentFile()!=this?q:null,b.scale,b.border)):f(q)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
+function(a){this.savingFile=!1;null!=d&&d({error:a})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(n?this.ui.base64ToBlob(b,"image/png"):b).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){try{var b=this.desc;this.savingFile=!1;this.desc=
+a;this.fileSaved(q,b,c,f);this.removeDraft()}catch(y){f(y)}}),f)}),f)}),f):(this.inConflictState=!0,f())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;f(a)}))}),f)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,n?"image/png":"text/xml",n);else if(b.length<MAX_REQUEST_SIZE){var e=a.lastIndexOf("."),e=0<e?a.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+(n?"&binary=1":""))).simulate(document,
+"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));c()}});n?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){f(a)}),d,this.ui.getCurrentFile()!=this?q:null,b.scale,b.border)):f(q)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};
+LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
graph:{background:"#DAD2D8",gridColor:"#ABA4A9"}},{commonStyle:{fontColor:"#FEFAE0",strokeColor:"#DDA15E",fillColor:"#BC6C25"},graph:{background:"#283618",gridColor:"#48632C"}},{commonStyle:{fontColor:"#E4FDE1",strokeColor:"#028090",fillColor:"#F45B69"},graph:{background:"#114B5F",gridColor:"#0B3240"}},{},{vertexStyle:{strokeColor:"#D0CEE2",fillColor:"#FAD9D5"},edgeStyle:{strokeColor:"#09555B"},commonStyle:{fontColor:"#1A1A1A"}},{vertexStyle:{strokeColor:"#BAC8D3",fillColor:"#09555B",fontColor:"#EEEEEE"},
@@ -3145,14 +3147,14 @@ if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFont
c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,l,p,t,n,u,m,y,x,q,A){try{e=null!=e?e:!0;g=null!=g?g:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var v=l?null:n.background;v==mxConstants.NONE&&(v=null);null==v&&(v=d);null==v&&0==l&&(v=x?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,m,null,g,null,null,null,p,null,x,q,A),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){m.drawImage(d,
0,0);a(l,b)},0):(m.drawImage(d,0,0),a(l,b))},l=document.createElement("canvas"),p=parseInt(b.getAttribute("width")),t=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*t),c/p)):c/p);k=this.getMaxCanvasScale(p,t,k);p=Math.ceil(k*p);t=Math.ceil(k*t);l.setAttribute("width",p);l.setAttribute("height",t);var m=l.getContext("2d");null!=v&&(m.beginPath(),m.rect(0,0,p,t),m.fillStyle=v,m.fill());1!=k&&m.scale(k,k);if(y){var x=n.view,B=x.scale;x.scale=1;var C=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));
x.scale=B;var C="data:image/svg+xml;base64,"+C,q=n.gridSize*x.gridSteps*k,A=n.getGraphBounds(),E=x.translate.x*B,D=x.translate.y*B,F=E+(A.x-E)/B-u,H=D+(A.y-D)/B-u,K=new Image;K.onload=function(){try{for(var a=-Math.round(q-mxUtils.mod((E-F)*k,q)),c=-Math.round(q-mxUtils.mod((D-H)*k,q));a<p;a+=q)for(var b=c;b<t;b+=q)m.drawImage(K,a/k,b/k);g()}catch(xa){null!=f&&f(xa)}};K.onerror=function(a){null!=f&&f(a)};K.src=C}else g()}catch(wa){null!=f&&f(wa)}});d.onerror=function(a){null!=f&&f(a)};p&&this.graph.addSvgShadow(b);
-this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=f&&f(R)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(ka){null!=f&&f(ka)}}))}catch(R){null!=f&&f(R)}}),b,t)}catch(da){null!=f&&f(da)}};Editor.crcTable=[];for(var m=0;256>m;m++)for(var n=m,q=0;8>q;q++)n=1==(n&1)?3988292384^n>>>
+this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=f&&f(R)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(la){null!=f&&f(la)}}))}catch(R){null!=f&&f(R)}}),b,t)}catch(da){null!=f&&f(da)}};Editor.crcTable=[];for(var m=0;256>m;m++)for(var n=m,q=0;8>q;q++)n=1==(n&1)?3988292384^n>>>
1:n>>>1,Editor.crcTable[m]=n;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=l;l+=c;return a.substring(b,l)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>
24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var l=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,l);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,l-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,
c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(l-8,a.length);break}f+=a.substring(l-8,l-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var c=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
var f=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
-this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?k.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var l=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
+this.update)};var p=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?p.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var l=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
function(a){a=l.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});
-Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);
+Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var k=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=k.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);
c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=
function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=
@@ -3277,45 +3279,45 @@ null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=th
this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var U=document.createElement("canvas"),N=new Image;N.onload=function(){try{U.getContext("2d").drawImage(N,0,0);var a=U.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(C){}};N.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(v){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.9.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.9.2";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&&"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(a,b,d,e,l,p,n){p=null!=p?p:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
-"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";l=null!=l?l:Error(a);(new Image).src=c+"/log?severity="+p+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+
-encodeURIComponent(e):"")+(null!=l&&null!=l.stack?"&stack="+encodeURIComponent(l.stack):"")}}catch(A){}try{n||null==window.console||console.error(p,a,b,d,e,l)}catch(A){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=
+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(a,b,d,e,l,k,n){k=null!=k?k:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";l=null!=l?l:Error(a);(new Image).src=c+"/log?severity="+k+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+
+encodeURIComponent(e):"")+(null!=l&&null!=l.stack?"&stack="+encodeURIComponent(l.stack):"")}}catch(A){}try{n||null==window.console||console.error(k,a,b,d,e,l)}catch(A){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=
function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);
console.log.apply(console,a)}}catch(g){}};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.removeChildNodes=
function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
-!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(l){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(p){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(l){}try{b=
+!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(l){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(k){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(l){}try{b=
document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(l){}})();EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(a){return this.isOfflineApp()||!navigator.onLine||!a&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};
EditorUi.prototype.createSpinner=function(a,b,d){var c=null==a||null==b;d=null!=d?d:24;var f=new Spinner({lines:12,length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=f.spin;f.spin=function(d,g){var k=!1;this.active||(e.call(this,d),this.active=!0,null!=g&&(c&&(b=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,a=document.body.clientWidth/2-2),k=document.createElement("div"),
k.style.position="absolute",k.style.whiteSpace="nowrap",k.style.background="#4B4243",k.style.color="white",k.style.fontFamily="Helvetica, Arial",k.style.fontSize="9pt",k.style.padding="6px",k.style.paddingLeft="10px",k.style.paddingRight="10px",k.style.zIndex=2E9,k.style.left=Math.max(0,a)+"px",k.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(k.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(k.style,
"boxShadow","2px 2px 3px 0px #ddd"),"..."!=g.substring(g.length-3,g.length)&&"!"!=g.charAt(g.length-1)&&(g+="..."),k.innerHTML=g,d.appendChild(k),f.status=k),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,g)}));this.stop();return a}),k=!0);return k};var g=f.stop;f.stop=function(){g.call(this);this.active=!1;null!=f.status&&null!=f.status.parentNode&&f.status.parentNode.removeChild(f.status);f.status=null};f.pause=function(){return function(){}};
-return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
+return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(p){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
3==a.charCodeAt(2)&&4==a.charCodeAt(3)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&3==a.charCodeAt(2)&&6==a.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||60==a.charCodeAt(0)&&63==a.charCodeAt(1)&&120==a.charCodeAt(2)&&109==a.charCodeAt(3)&&108==a.charCodeAt(3))};EditorUi.prototype.isPngData=
function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};var a=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var b=a.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=b.getFunction,e=this.editor.graph,l=this;b.getFunction=function(a){if(e.isSelectionEmpty()&&null!=l.pages&&0<l.pages.length){var c=
l.getSelectedPageIndex();if(mxEvent.isShiftDown(a)){if(37==a.keyCode)return function(){0<c&&l.movePage(c,c-1)};if(38==a.keyCode)return function(){0<c&&l.movePage(c,0)};if(39==a.keyCode)return function(){c<l.pages.length-1&&l.movePage(c,c+1)};if(40==a.keyCode)return function(){c<l.pages.length-1&&l.movePage(c,l.pages.length-1)}}else if(mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)){if(37==a.keyCode)return function(){0<c&&l.selectNextPage(!1)};if(38==a.keyCode)return function(){0<
c&&l.selectPage(l.pages[0])};if(39==a.keyCode)return function(){c<l.pages.length-1&&l.selectNextPage(!0)};if(40==a.keyCode)return function(){c<l.pages.length-1&&l.selectPage(l.pages[l.pages.length-1])}}}return d.apply(this,arguments)}}return b};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("&lt;mxfile ");if(0<=d){var e=a.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=a.substring(d,e+
-15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var l=mxUtils.parseXml(a),p=this.editor.extractGraphModel(l.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=p?mxUtils.getXml(p):""}catch(u){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var l=mxUtils.parseXml(a),k=this.editor.extractGraphModel(l.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=k?mxUtils.getXml(k):""}catch(u){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-
-1;0<=e;e--){var p=this.updatePageRoot(new DiagramPage(d[e]));null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,p,0==e?p:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,l,p,n,t,m,y,q){b=null!=b?b:this.editor.graph;l=null!=l?l:!1;m=null!=m?m:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(q){var k=
-a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());k.appendChild(a)}else{k=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(k);if(Graph.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());mxUtils.setTextContent(k,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}y?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
+1;0<=e;e--){var k=this.updatePageRoot(new DiagramPage(d[e]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,k,0==e?k:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
+this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,l,k,n,t,m,y,q){b=null!=b?b:this.editor.graph;l=null!=l?l:!1;m=null!=m?m:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(q){var p=
+a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());p.appendChild(a)}else{p=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(p);if(Graph.decompress(g)!=p)return p;p=a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(p)}y?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("pages"),g.removeAttribute("type"),mxClient.IS_CHROMEAPP?g.setAttribute("host","Chrome"):EditorUi.isElectronApp?g.setAttribute("host","Electron"):g.setAttribute("host",window.location.hostname),g.setAttribute("modified",(new Date).toISOString()),g.setAttribute("agent",navigator.appVersion),g.setAttribute("version",
-EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));q=q?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!p&&!l&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))q=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(p||!l&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
+EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));q=q?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!k&&!l&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))q=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(k||!l&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
App.MODE_BROWSER||(e=null),q=this.getEmbeddedSvg(q,b,e,null,t,m,f);return q};EditorUi.prototype.getXmlFileData=function(a,b,d){a=null!=a?a:!0;b=null!=b?b:!1;d=null!=d?d:!Editor.compressXml;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&d?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
null==b||d?a=a.cloneNode(!0):(a=a.cloneNode(!1),mxUtils.setTextContent(a,Graph.compressNode(b)));c.appendChild(a)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(c)),c=this.fileNode.cloneNode(!1),b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var f=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,
f);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(f));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return c};EditorUi.prototype.anonymizeString=function(a,b){for(var c=[],d=0;d<a.length;d++){var f=a.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(f)?c.push(f):isNaN(parseInt(f))?f.toLowerCase()!=f?c.push(String.fromCharCode(65+Math.round(25*Math.random()))):f.toUpperCase()!=f?c.push(String.fromCharCode(97+Math.round(25*Math.random()))):
-/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(p){a[EditorUi.DIFF_INSERT][c].data=
-p.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
+/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(k){a[EditorUi.DIFF_INSERT][c].data=
+k.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
delete e.cells[a]}}),c(EditorUi.DIFF_INSERT),c(EditorUi.DIFF_UPDATE),0==Object.keys(e.cells).length&&delete e.cells);0==Object.keys(e).length&&delete a[EditorUi.DIFF_UPDATE][d]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};EditorUi.prototype.anonymizeAttributes=function(a,b){if(null!=a.attributes)for(var c=0;c<a.attributes.length;c++)"as"!=a.attributes[c].name&&a.setAttribute(a.attributes[c].name,this.anonymizeString(a.attributes[c].value,b));if(null!=a.childNodes)for(c=
0;c<a.childNodes.length;c++)this.anonymizeAttributes(a.childNodes[c],b)};EditorUi.prototype.anonymizeNode=function(a,b){for(var c=a.getElementsByTagName("mxCell"),d=0;d<c.length;d++)null!=c[d].getAttribute("value")&&c[d].setAttribute("value","["+c[d].getAttribute("value").length+"]"),null!=c[d].getAttribute("xmlValue")&&c[d].setAttribute("xmlValue","["+c[d].getAttribute("xmlValue").length+"]"),null!=c[d].getAttribute("style")&&c[d].setAttribute("style","["+c[d].getAttribute("style").length+"]"),null!=
c[d].parentNode&&"root"!=c[d].parentNode.nodeName&&null!=c[d].parentNode.parentNode&&(c[d].setAttribute("id",c[d].parentNode.getAttribute("id")),c[d].parentNode.parentNode.replaceChild(c[d],c[d].parentNode));return a};EditorUi.prototype.synchronizeCurrentFile=function(a){var c=this.getCurrentFile();null!=c&&(c.savingFile?this.handleError({message:mxResources.get("busy")}):!a&&c.invalidChecksum?c.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(c.clearAutosave(),
-this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,l,p,n,t,m,y){l=null!=l?l:!0;p=null!=p?p:!1;var c=this.editor.graph;if(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))if(y=
-!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}n=null!=n?n:this.getXmlFileData(l,p,y);m=null!=m?m:this.getCurrentFile();a=this.createFileData(n,c,m,window.location.href,a,b,d,e,l,t,y);c!=this.editor.graph&&
-c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,l,p){p=null!=p?p:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=p?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;p=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==l&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",p);a.setAttribute("y0",
+this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,l,k,n,t,m,y){l=null!=l?l:!0;k=null!=k?k:!1;var c=this.editor.graph;if(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))if(y=
+!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}n=null!=n?n:this.getXmlFileData(l,k,y);m=null!=m?m:this.getCurrentFile();a=this.createFileData(n,c,m,window.location.href,a,b,d,e,l,t,y);c!=this.editor.graph&&
+c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,l,k){k=null!=k?k:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=k?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;k=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==l&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",k);a.setAttribute("y0",
g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=l&&(l=l.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";e=Graph.compress(a);Graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==l?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
(null!=l?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==l?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=l?'<meta http-equiv="refresh" content="0;URL=\''+l+"'\"/>\n":"")+"</head>\n<body"+(null==l&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==l?'<script type="text/javascript" src="'+
f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,l){b=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=l&&(l=l.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};
@@ -3323,21 +3325,21 @@ null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,thi
mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==l?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
null;var c=Editor.extractParserError(a,mxResources.get("invalidOrMissingFile"));if(c)throw Error(mxResources.get("notADiagramFile")+" ("+c+")");c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a&&"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name"))){var b=null;this.fileNode=a;this.pages=[];for(var d=0;d<c.length;d++)null==c[d].getAttribute("id")&&c[d].setAttribute("id",d),a=new DiagramPage(c[d]),
null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages.push(a),null!=urlParams["page-id"]&&a.getId()==urlParams["page-id"]&&(b=a);this.currentPage=null!=b?b:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var p=this.editor.graph.getModel(),n=p.getChildren(p.root),d=0;d<n.length;d++){var t=n[d];p.setVisible(t,a[t.id]||!1)}}catch(A){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,l,p,n,t,m,y,q){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!l),
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var k=this.editor.graph.getModel(),n=k.getChildren(k.root),d=0;d<n.length;d++){var t=n[d];k.setVisible(t,a[t.id]||!1)}}catch(A){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,l,k,n,t,m,y,q){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!l),
f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,e,l,null,null,null,b);this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=this.editor.graph.pageVisible;
-null!=p&&(this.editor.graph.pageVisible=p);var f=this.createDownloadRequest(c,a,e,b,n,l,t,m,y,q);this.editor.graph.pageVisible=d;return f}catch(v){this.handleError(v)}}));else{var k=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var A=this.editor.graph.background;if(n||A==mxConstants.NONE)A=
-null;var D=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(D);this.editor.convertImages(D,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),e)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
-function(a,b,d,e,l,p,n,t,m,y){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==p?!1:"xmlpng"!=b);var g="",k="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};y=y?"1":"0";"pdf"==b&&0==p&&(k="&allPages=1");if("xmlpng"==b&&(y="1",b="png",null!=this.pages&&null!=this.currentPage))for(p=0;p<this.pages.length;p++)if(this.pages[p]==this.currentPage){g="&from="+p;break}p=c.background;"png"!=b&&"pdf"!=b||!l?l||
-null!=p&&p!=mxConstants.NONE||(p="#ffffff"):p=mxConstants.NONE;l={globalVars:c.getExportVariables()};m&&(l.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(l.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+k+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+e+"&embedXml="+y+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(l))+(null!=n?"&scale="+
+null!=k&&(this.editor.graph.pageVisible=k);var f=this.createDownloadRequest(c,a,e,b,n,l,t,m,y,q);this.editor.graph.pageVisible=d;return f}catch(v){this.handleError(v)}}));else{var p=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var A=this.editor.graph.background;if(n||A==mxConstants.NONE)A=
+null;var D=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(D);this.editor.convertImages(D,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),e)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
+function(a,b,d,e,l,k,n,t,m,y){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==k?!1:"xmlpng"!=b);var g="",p="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};y=y?"1":"0";"pdf"==b&&0==k&&(p="&allPages=1");if("xmlpng"==b&&(y="1",b="png",null!=this.pages&&null!=this.currentPage))for(k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){g="&from="+k;break}k=c.background;"png"!=b&&"pdf"!=b||!l?l||
+null!=k&&k!=mxConstants.NONE||(k="#ffffff"):k=mxConstants.NONE;l={globalVars:c.getExportVariables()};m&&(l.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(l.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+p+"&bg="+(null!=k?k:mxConstants.NONE)+"&base64="+e+"&embedXml="+y+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(l))+(null!=n?"&scale="+
n:"")+(null!=t?"&border="+t:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,
mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),l()):this.handleError({message:mxResources.get("error")+
" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||e.warningImage,
-a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,p=e.getModel();p.beginUpdate();var n=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var t=p.getCell(a.getAttribute("id"));if(null!=t){try{var m=a.getAttribute("value");if(null!=m){var y=mxUtils.parseXml(m).documentElement;
-if(null!=y)if("1"==y.getAttribute("replace-value"))p.setValue(t,y);else for(var q=y.attributes,x=0;x<q.length;x++)e.setAttributeForCell(t,q[x].nodeName,0<q[x].nodeValue.length?q[x].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+t.id+": "+O)}try{var F=a.getAttribute("style");null!=F&&e.model.setStyle(t,F)}catch(O){null!=window.console&&console.log("Error in style for "+t.id+": "+O)}try{var H=a.getAttribute("icon");if(null!=H){var L=0<H.length?JSON.parse(H):null;null!=
+a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,k=e.getModel();k.beginUpdate();var n=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var t=k.getCell(a.getAttribute("id"));if(null!=t){try{var m=a.getAttribute("value");if(null!=m){var y=mxUtils.parseXml(m).documentElement;
+if(null!=y)if("1"==y.getAttribute("replace-value"))k.setValue(t,y);else for(var q=y.attributes,x=0;x<q.length;x++)e.setAttributeForCell(t,q[x].nodeName,0<q[x].nodeValue.length?q[x].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+t.id+": "+O)}try{var F=a.getAttribute("style");null!=F&&e.model.setStyle(t,F)}catch(O){null!=window.console&&console.log("Error in style for "+t.id+": "+O)}try{var H=a.getAttribute("icon");if(null!=H){var L=0<H.length?JSON.parse(H):null;null!=
L&&L.append||e.removeCellOverlays(t);null!=L&&e.addCellOverlay(t,c(L))}}catch(O){null!=window.console&&console.log("Error in icon for "+t.id+": "+O)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),J=e.getCellGeometry(t);if(null!=J){J=J.clone();for(key in G){var D=parseFloat(G[key]);"dx"==key?J.x+=D:"dy"==key?J.y+=D:"dw"==key?J.width+=D:"dh"==key?J.height+=D:J[key]=parseFloat(G[key])}e.model.setGeometry(t,J)}}}catch(O){null!=window.console&&console.log("Error in icon for "+t.id+
-": "+O)}}}else if("model"==a.nodeName){for(var M=a.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(a.firstChild)).decode(M,p)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(n=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
-1);a=a.nextSibling}}finally{p.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),n=e.getMonth()+1,t=e.getDate(),m=e.getHours(),y=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+n+"-"+t+"-"+m+"-"+y+"-"+e));return c=mxResources.get("copyOf",[c])+d};
+": "+O)}}}else if("model"==a.nodeName){for(var M=a.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(a.firstChild)).decode(M,k)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(n=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
+1);a=a.nextSibling}}finally{k.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),n=e.getMonth()+1,t=e.getDate(),m=e.getHours(),y=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+n+"-"+t+"-"+m+"-"+y+"-"+e));return c=mxResources.get("copyOf",[c])+d};
EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=c&&(EditorUi.debug("File.closed",[c]),c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var f=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!b&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();b||this.showSplash()});if(null!=a)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);
a.addListener("contentChanged",this.descriptorChangedListener);a.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();a.isEditable()?a.isModified()?(a.addUnsavedStatus(),null!=a.backupPatch&&a.patch([a.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
@@ -3347,25 +3349,25 @@ label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opene
0,b.eltCount=0,b.nodeCount=0);for(var e=0;e<a.length;e++){this.updatePageRoot(a[e]);var n=a[e].node.cloneNode(!1);n.removeAttribute("name");d.root=a[e].root;var t=f.encode(d);this.editor.graph.saveViewState(a[e].viewState,t,!0);t.removeAttribute("pageWidth");t.removeAttribute("pageHeight");n.appendChild(t);null!=b&&(b.eltCount+=n.getElementsByTagName("*").length,b.nodeCount+=n.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(n,function(a,c,b,d){return!d||"mxGeometry"!=a.nodeName&&
"mxPoint"!=a.nodeName||"x"!=c&&"y"!=c&&"width"!=c&&"height"!=c?d&&"mxCell"==a.nodeName&&"previous"==c?null:b:Math.round(b)},b)<<0}return c};EditorUi.prototype.hashValue=function(a,b,d){var c=0;if(null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute){null!=a.nodeName&&(c^=this.hashValue(a.nodeName,b,d));if(null!=a.attributes){null!=d&&(d.attrCount+=a.attributes.length);for(var f=0;f<a.attributes.length;f++){var e=a.attributes[f].name,
g=null!=b?b(a,e,a.attributes[f].value,!0):a.attributes[f].value;null!=g&&(c^=this.hashValue(e,b,d)+this.hashValue(g,b,d))}}if(null!=a.childNodes)for(f=0;f<a.childNodes.length;f++)c=(c<<5)-c+this.hashValue(a.childNodes[f],b,d)<<0}else if(null!=a&&"function"!==typeof a){a=String(a);b=0;null!=d&&(d.byteCount+=a.length);for(f=0;f<a.length;f++)b=(b<<5)-b+a.charCodeAt(f)<<0;c^=b}return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=
-function(a,b,d,e,l,p,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
+function(a,b,d,e,l,k,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};
EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a,b){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var d=JSON.parse(mxUtils.getTextContent(c.documentElement));
this.libraryLoaded(a,d,c.documentElement.getAttribute("title"),b)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d,e){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=
-null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var n=k.parentNode.previousSibling;e=n.getAttribute("title");
+null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var p=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var n=p.parentNode.previousSibling;e=n.getAttribute("title");
null!=e&&0<e.length&&".scratchpad"!=a.title&&n.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+e);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";m.style.backgroundColor="inherit";n.style.position="relative";var q=document.createElement("img");q.setAttribute("src",Dialog.prototype.closeImage);q.setAttribute("title",mxResources.get("close"));q.setAttribute("valign","absmiddle");q.setAttribute("border","0");q.style.cursor=
"pointer";q.style.margin="0 3px";var x=null;if(".scratchpad"!=a.title||this.closableScratchpad)m.appendChild(q),mxEvent.addListener(q,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=x?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var F=this.editor.graph,H=null,L=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
-k,b,a,a.getMode());mxEvent.consume(c)}),G=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=H&&null!=H.parentNode&&H.parentNode.removeChild(H),H=q.cloneNode(!1),H.setAttribute("src",Editor.spinImage),H.setAttribute("title",mxResources.get("saving")),H.style.cursor="default",H.style.marginRight="2px",H.style.marginTop="-2px",m.insertBefore(H,m.firstChild),n.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=H&&null!=
+p,b,a,a.getMode());mxEvent.consume(c)}),G=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=H&&null!=H.parentNode&&H.parentNode.removeChild(H),H=q.cloneNode(!1),H.setAttribute("src",Editor.spinImage),H.setAttribute("title",mxResources.get("saving")),H.style.cursor="default",H.style.marginRight="2px",H.style.marginTop="-2px",m.insertBefore(H,m.firstChild),n.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=H&&null!=
H.parentNode&&(H.parentNode.removeChild(H),n.style.paddingRight=18*m.childNodes.length+"px")})):null==x&&(x=q.cloneNode(!1),x.setAttribute("src",IMAGE_PATH+"/download.png"),x.setAttribute("title",mxResources.get("save")),m.insertBefore(x,m.firstChild),mxEvent.addListener(x,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==x||a.isModified()||(n.style.paddingRight=18*m.childNodes.length+"px",x.parentNode.removeChild(x),
-x=null)});mxEvent.consume(c)})),n.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=F.cloneCells(mxUtils.sortCells(F.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var l=F.getCellGeometry(a[g]);null!=l&&l.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);G(d);null!=
-f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),D=mxUtils.bind(this,function(a){if(F.isSelectionEmpty())F.getRubberband().isActive()?(F.getRubberband().execute(a),F.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=F.getSelectionCells(),b=F.view.getBounds(c),d=F.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=F.view.translate.x;b.y-=F.view.translate.y;J(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
-function(){},mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler.first&&(F.graphHandler.suspend(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",F.panningManager.stop(),F.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,
-F.panningManager.stop(),F.graphHandler.reset(),F.isMouseDown=!1,F.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.graphHandler.first&&(F.graphHandler.resume(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",F.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
-"copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.cursor="";k.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,l,p,n,t,m,u){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
-new mxGeometry(0,0,p,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,p,n),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,y=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var l=JSON.parse(mxUtils.getTextContent(e.documentElement));
-g(l,k);b=b.concat(l);G(a);this.spinner.stop();x=!0}catch(T){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),l=0;l<p.length;l++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[l])),t=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,t.width,t.height),a)}x=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+x=null)});mxEvent.consume(c)})),n.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=F.cloneCells(mxUtils.sortCells(F.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=F.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}p.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);G(d);null!=
+f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),D=mxUtils.bind(this,function(a){if(F.isSelectionEmpty())F.getRubberband().isActive()?(F.getRubberband().execute(a),F.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=F.getSelectionCells(),b=F.view.getBounds(c),d=F.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=F.view.translate.x;b.y-=F.view.translate.y;J(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(p,
+function(){},mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler.first&&(F.graphHandler.suspend(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="hidden"),p.style.backgroundColor="#f1f3f4",p.style.cursor="copy",F.panningManager.stop(),F.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler&&(p.style.backgroundColor="",p.style.cursor="default",this.sidebar.showTooltips=!0,
+F.panningManager.stop(),F.graphHandler.reset(),F.isMouseDown=!1,F.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(p,"mouseleave",mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.graphHandler.first&&(F.graphHandler.resume(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="visible"),p.style.backgroundColor="",p.style.cursor="",F.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(p,"dragover",mxUtils.bind(this,function(a){p.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
+"copy";p.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(p,"drop",mxUtils.bind(this,function(a){p.style.cursor="";p.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,k,l,n,t,m,u){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
+new mxGeometry(0,0,l,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,l,n),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,y=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));
+g(k,p);b=b.concat(k);G(a);this.spinner.stop();x=!0}catch(T){}else if("mxfile"==e.documentElement.nodeName)try{for(var l=e.documentElement.getElementsByTagName("diagram"),k=0;k<l.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(l[k])),t=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,t.width,t.height),a)}x=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(u,function(a){y(a,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=u?this.parseFile(u,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?y(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):y(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){k.style.cursor="";k.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));q=q.cloneNode(!1);q.setAttribute("src",Editor.editImage);q.setAttribute("title",mxResources.get("edit"));m.insertBefore(q,m.firstChild);mxEvent.addListener(q,"click",L);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==
-k&&L(a)});e=q.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));m.insertBefore(e,m.firstChild);mxEvent.addListener(e,"click",D);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):y(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(p,"dragleave",function(a){p.style.cursor="";p.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));q=q.cloneNode(!1);q.setAttribute("src",Editor.editImage);q.setAttribute("title",mxResources.get("edit"));m.insertBefore(q,m.firstChild);mxEvent.addListener(q,"click",L);mxEvent.addListener(p,"dblclick",function(a){mxEvent.getSource(a)==
+p&&L(a)});e=q.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));m.insertBefore(e,m.firstChild);mxEvent.addListener(e,"click",D);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(a)})),m.insertBefore(e,m.firstChild))}n.appendChild(m);n.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
@@ -3375,95 +3377,95 @@ endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",targetPer
!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,l){a=new ImageDialog(this,a,b,d,e,l);this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=
!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,l){a=new LibraryDialog(this,a,b,d,e,l);this.showDialog(a.container,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",
mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,
-mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,l,p,n){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
-null!=a.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(H){}if(null!=f||null!=b){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){n=403==
-f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var m=null!=l?null:null!=p?p:window.location.hash;if(null!=m&&("#G"==m.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==m.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
-"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){m="#U"==m.substring(0,2)?m.substring(45,m.lastIndexOf("%26ex")):m.substring(2);this.showError(b,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+m);this.handleError(a,b,d,e,l)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=
+mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,l,k,n){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
+null!=a.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(H){}if(null!=f||null!=b){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var g=mxResources.get("ok"),p=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),p=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){n=403==
+f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var m=null!=l?null:null!=k?k:window.location.hash;if(null!=m&&("#G"==m.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==m.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
+"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){m="#U"==m.substring(0,2)?m.substring(45,m.lastIndexOf("%26ex")):m.substring(2);this.showError(b,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+m);this.handleError(a,b,d,e,l)}),p,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=
0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop=
"6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),
!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?n=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?n=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?n=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?n=mxUtils.htmlEntities(mxResources.get("busy")):
-"string"===typeof f&&0<f.length&&(n=mxUtils.htmlEntities(f)))}var u=p=null;null!=f&&null!=f.helpLink&&(p=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,n,g,d,k,null,null,p,u,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,l,p){var c=null!=
-this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,l,null,null,null,null,f);this.showDialog(a.container,340,46+f,!0,p);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");
+"string"===typeof f&&0<f.length&&(n=mxUtils.htmlEntities(f)))}var u=k=null;null!=f&&null!=f.helpLink&&(k=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,n,g,d,p,null,null,k,u,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,l,k){var c=null!=
+this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,l,null,null,null,null,f);this.showDialog(a.container,340,46+f,!0,k);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");
f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+
"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,
-b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight="6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom=
+b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight="6px";if(!e){b.appendChild(g);var p=document.createElement("label");p.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(p,mxResources.get("doNotShowAgain"));b.appendChild(p);f.style.paddingBottom=
"30px";f.appendChild(b)}var n=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){mxEvent.consume(a);n()}));var m=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,
-function(){n()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),n(),mxEvent.consume(a)):m()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(m,3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
+function(){n()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=p?(null!=d&&d(),n(),mxEvent.consume(a)):m()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(m,3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs","dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,l){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,l);this.saveData(e,
c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height=
-"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,l,p){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=p?p:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),
-null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");p=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
-p=65==(f?parseInt(f[2],10):!1)?!1:p}if(p||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));p?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),c.parentNode.removeChild(c)}catch(A){}}else this.createEchoRequest(a,b,d,e,l).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,l,p){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
-a+(null!=d?"&mime="+d:"")+(null!=l?"&format="+l:"")+(null!=p?"&base64="+p:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var m=1024*n,q=Math.min(m+1024,d),y=Array(q-m),I=0;m<q;++I,++m)y[I]=c[m].charCodeAt(0);e[n]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,l,p,n,m){p=null!=p?p:!1;n=null!=n?
-n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(p);isLocalStorage&&l++;var c=4>=l?2:6<l?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,
-!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,m):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(L){this.handleError(L)}}))}catch(H){this.handleError(H)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,p,n,null,1<l,c,a,d,e);p=this.isServices(l)?l>c?390:270:160;this.showDialog(b.container,400,p,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
+"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,l,k){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=k?k:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),
+null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");k=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
+k=65==(f?parseInt(f[2],10):!1)?!1:k}if(k||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));k?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),c.parentNode.removeChild(c)}catch(A){}}else this.createEchoRequest(a,b,d,e,l).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,l,k){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
+a+(null!=d?"&mime="+d:"")+(null!=l?"&format="+l:"")+(null!=k?"&base64="+k:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var m=1024*n,q=Math.min(m+1024,d),y=Array(q-m),I=0;m<q;++I,++m)y[I]=c[m].charCodeAt(0);e[n]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,l,k,n,m){k=null!=k?k:!1;n=null!=n?
+n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(k);isLocalStorage&&l++;var c=4>=l?2:6<l?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,
+!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,m):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(L){this.handleError(L)}}))}catch(H){this.handleError(H)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<l,c,a,d,e);k=this.isServices(l)?l>c?390:270:160;this.showDialog(b.container,400,k,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()&&this.isChromelessImageExportEnabled()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,d,e,l){this.isLocalFileSave()?this.saveLocalFile(d,a,e,l,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,l,b,c)}),d,l,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,l,p,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
-c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){p=null!=p?p:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,p,!0,c,d)}catch(H){this.handleError(H)}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(),
-a,p,!0,c,d)}catch(H){this.handleError(H)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,f,e,p,l);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,d,e,l,p){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,l,p,n,m,q,y,I,x){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=I?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,n,m,null,d,null,null,"blank"==
-y?"_blank":"self"==y?"_top":null,null,!0,I,x);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();l&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,q,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(D){this.handleError(D)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,l,p,n){return this.addCheckbox(a,d,e,l,p,n,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,d,e,l,p,n,m){p=null!=p?p:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();c.id=n;null!=m&&c.setAttribute("name",m);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");p&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",n),a.appendChild(d),l||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
-function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));f.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");f.appendChild(d);a.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===f.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();n.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,l,p,n){n=null!=n?n:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=a&&n.push("target="+a),null!=b&&b!=mxConstants.NONE&&n.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),p&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(a,b,d,e,l,p,n,m,q,y){q=this.createUrlParameters(a,
-b,d,e,l,p,q);a=this.getCurrentFile();b=!0;null!=n?d="#U"+encodeURIComponent(n):(a=this.getCurrentFile(),m||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(q.push("open="+d.substring(1)),d="");return(e&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,l,p,n,m,q,y,I){this.getBasenames();var c={};""!=l&&l!=mxConstants.NONE&&(c.highlight=l);"auto"!==e&&(c.target=e);q||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),
-c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(q&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
+arguments)};EditorUi.prototype.saveData=function(a,b,d,e,l){this.isLocalFileSave()?this.saveLocalFile(d,a,e,l,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,l,b,c)}),d,l,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,l,k,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
+c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){k=null!=k?k:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,k,!0,c,d)}catch(H){this.handleError(H)}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(),
+a,k,!0,c,d)}catch(H){this.handleError(H)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,f,e,k,l);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
+EditorUi.prototype.exportFile=function(a,b,d,e,l,k){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,l,k,n,m,q,y,I,x){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=I?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,n,m,null,d,null,null,"blank"==
+y?"_blank":"self"==y?"_top":null,null,!0,I,x);e&&this.editor.graph.addSvgShadow(g);var p=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();l&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,q,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",c,"image/svg+xml"):
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);k?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(D){this.handleError(D)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,l,k,n){return this.addCheckbox(a,d,e,l,k,n,!0,b)};EditorUi.prototype.addCheckbox=function(a,
+b,d,e,l,k,n,m){k=null!=k?k:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();c.id=n;null!=m&&c.setAttribute("name",m);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");k&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",n),a.appendChild(d),l||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
+function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");
+d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
+b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=f&&f!=mxConstants.NONE?"border:1px solid black;background-color:"+f:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");
+e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var f="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();n.style.padding=
+mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,l,k,n){n=null!=n?n:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
+"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=a&&n.push("target="+a),null!=b&&b!=mxConstants.NONE&&n.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),k&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(a,b,d,e,l,k,n,m,q,y){q=this.createUrlParameters(a,
+b,d,e,l,k,q);a=this.getCurrentFile();b=!0;null!=n?d="#U"+encodeURIComponent(n):(a=this.getCurrentFile(),m||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(q.push("open="+d.substring(1)),d="");return(e&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,l,k,n,m,q,y,I){this.getBasenames();var c={};""!=l&&l!=mxConstants.NONE&&(c.highlight=l);"auto"!==e&&(c.target=e);q||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),
+c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(q&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(k?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
encodeURIComponent(a):"";I(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"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(a,b,d,e){var c=document.createElement("div");c.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";c.appendChild(f);var g=document.createElement("div");g.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");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),g.appendChild(n),
-mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var q=this.addLinkSection(c),x=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var F=document.createElement("input");F.setAttribute("type","text");F.style.marginRight="16px";F.style.width="60px";F.style.marginLeft="4px";F.style.marginRight="12px";F.value=
+mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";p.setAttribute("value","url");p.setAttribute("type","radio");p.setAttribute("name","type-embedhtmldialog");f=p.cloneNode(!0);f.setAttribute("value",
+"copy");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(p);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),g.appendChild(n),
+mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&p.setAttribute("disabled","disabled");c.appendChild(g);var q=this.addLinkSection(c),x=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var F=document.createElement("input");F.setAttribute("type","text");F.style.marginRight="16px";F.style.width="60px";F.style.marginLeft="4px";F.style.marginRight="12px";F.value=
"100%";c.appendChild(F);var H=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(c,mxResources.get("allPages"),g,!g),G=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),D=this.addEditButton(c,J),M=D.getEditInput();M.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&J.checked?D.getEditSelect().removeAttribute("disabled"):
-D.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,x.checked,F.value,q.getTarget(),q.getColor(),H.checked,L.checked,G.checked,J.checked,D.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,l,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var n=document.createElement("div");
-n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));k.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));n.style.marginTop="12px";n.className="geBtn";k.appendChild(n);c.appendChild(k);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));k.appendChild(n);mxEvent.addListener(n,"click",
+D.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(p.checked?d:null,x.checked,F.value,q.getTarget(),q.getColor(),H.checked,L.checked,G.checked,J.checked,D.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,l,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
+"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var n=document.createElement("div");
+n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));p.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));n.style.marginTop="12px";n.className="geBtn";p.appendChild(n);c.appendChild(p);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));p.appendChild(n);mxEvent.addListener(n,"click",
mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"),m.setAttribute("type","text"),
-m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var H=this.addLinkSection(c,p);d=null!=this.pages&&1<this.pages.length;var L=null;if(null==g||g.constructor!=window.DriveFile||
-b)L=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var G=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!p),J=this.addEditButton(c,G),D=J.getEditInput();p&&(D.style.marginLeft=G.style.marginLeft,G.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=D.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(G,"change",function(){G.checked?(M.removeAttribute("disabled"),D.removeAttribute("disabled")):
+m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var H=this.addLinkSection(c,k);d=null!=this.pages&&1<this.pages.length;var L=null;if(null==g||g.constructor!=window.DriveFile||
+b)L=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var G=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!k),J=this.addEditButton(c,G),D=J.getEditInput();k&&(D.style.marginLeft=G.style.marginLeft,G.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=D.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(G,"change",function(){G.checked?(M.removeAttribute("disabled"),D.removeAttribute("disabled")):
(M.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&G.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){l(H.getTarget(),H.getColor(),null==L?!0:L.checked,G.checked,J.getLink(),M.checked,null!=m?m.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)):H.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,l){var c=document.createElement("div");c.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:"+(l?"10":"4")+"px";c.appendChild(f);if(l){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var n=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-m=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,x=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=x&&(x.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!n.checked,null!=m?m.checked:!1,null!=x?x.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(l?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,d,e,l,p,n,m,q){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==m?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
+"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c)}var n=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
+m=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,x=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=x&&(x.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(p.value)||0;d(!n.checked,null!=m?m.checked:!1,null!=x?x.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(l?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+function(a,b,d,e,l,k,n,m,q){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==m?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(p);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,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";c.appendChild(u);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),J=document.createElement("input");J.style.marginTop="16px";J.style.marginRight="8px";J.style.marginLeft=
-"24px";J.setAttribute("disabled","disabled");J.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[k]));M.setAttribute("value",a[k]);D.appendChild(M)}q?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(D),mxUtils.br(c),g+=26,mxEvent.addListener(D,
-"change",function(){"selectionOnly"==D.value&&(A.checked=!0)})):p&&(c.appendChild(J),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?q&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(D.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(A,
+"24px";J.setAttribute("disabled","disabled");J.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(p=0;p<a.length;p++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[p]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[p]));M.setAttribute("value",a[p]);D.appendChild(M)}q?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(D),mxUtils.br(c),g+=26,mxEvent.addListener(D,
+"change",function(){"selectionOnly"==D.value&&(A.checked=!0)})):k&&(c.appendChild(J),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?q&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(D.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(A,
"change",function(){D.value=A.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=m),U=null;Editor.isDarkMode()&&(U=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var N=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||v.setAttribute("disabled","disabled");
b&&(c.appendChild(v),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==m||"jpeg"==m)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var B=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=m);B.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");
b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==m&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=t.value;l(t.value,O.checked,!A.checked,N.checked,B.checked,v.checked,u.value,J.checked,!1,E.value,null!=C?C.checked:null,null!=U?U.checked:null,D.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,l){var c=document.createElement("div");
-c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),x=this.addCheckbox(c,mxResources.get("lightbox"),!0),q=this.addEditButton(c,x),H=q.getEditInput(),L=1<f.model.getChildCount(f.model.getRoot()),
+c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var p=this.addCheckbox(c,mxResources.get("fit"),!0),n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),x=this.addCheckbox(c,mxResources.get("lightbox"),!0),q=this.addEditButton(c,x),H=q.getEditInput(),L=1<f.model.getChildCount(f.model.getRoot()),
G=this.addCheckbox(c,mxResources.get("layers"),L,!L);G.style.marginLeft=H.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(x,"change",function(){x.checked?(L&&G.removeAttribute("disabled"),H.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&x.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
-function(){a(k.checked,n.checked,m.checked,x.checked,q.getLink(),G.checked)}),null,mxResources.get("embed"),l);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,l,p,n,m){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var m="";d&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+m+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
-299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,l,p,n){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
-c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var m=" ",u="";e&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(p?"&layers=1":
+function(){a(p.checked,n.checked,m.checked,x.checked,q.getLink(),G.checked)}),null,mxResources.get("embed"),l);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,l,k,n,m){function c(c){var b=" ",p="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(l?"&edit=_blank":"")+(k?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");a&&(p+="max-width:100%;");var m="";d&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+m+(""!=p?' style="'+p+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
+this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";d&&(p="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+p+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
+299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,l,k,n){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var p=f[g].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
+c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var m=" ",u="";e&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(k?"&layers=1":
"")+"');}})(this);\"",u+="cursor:pointer;");a&&(u+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=u?' style="'+u+'"':"")+m+"/>")}))}else u="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+l),u+="max-width:100%;max-height:"+l+"px;",c.removeAttribute("height")),""!=u&&c.setAttribute("style",u),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
+EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(l?"&edit=_blank":"")+(k?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+l),u+="max-width:100%;max-height:"+l+"px;",c.removeAttribute("height")),""!=u&&c.setAttribute("style",u),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
-a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(p){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
+a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(k){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(b=d))}return{scale:c,border:b}};EditorUi.prototype.getEmbeddedPng=function(a,b,d,e,l){try{var c=this.editor.graph,f=null!=c.themes&&"darkTheme"==c.defaultThemeName,g=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
-!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),k=c.getGlobalVariable,n=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?n.getName():"pagenumber"==a?1:k.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(n.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
-"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(F){null!=b&&b(F)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,l)}catch(I){null!=b&&b(I)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,l,p,n,m,q,y,I,x,F){m=null!=m?m:!0;n=null!=q?q:b.background;n==mxConstants.NONE&&(n=null);p=b.getSvg(n,y,I,null,null,p,null,null,null,b.shadowVisible||
-x,null,F);(b.shadowVisible||x)&&b.addSvgShadow(p);null!=a&&p.setAttribute("content",a);null!=d&&p.setAttribute("resource",d);if(null!=l)this.embedFonts(p,mxUtils.bind(this,function(a){m?this.editor.convertImages(a,mxUtils.bind(this,function(a){l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(p)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(k){b(a)}}))}catch(g){b(a)}}))};
-EditorUi.prototype.exportImage=function(a,b,d,e,l,p,n,m,q,y,I,x,F){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,l?this.getFileData(!0,null,null,null,d,m):null,q,null==this.pages||0==this.pages.length,I)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,p,n,y,x,F)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,l,p,n){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var k=this.editor.extractGraphModel(g.documentElement,
-null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length&&!p){if(k=Editor.parseDiagramNode(m[0]),null!=this.currentPage&&(a[m[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var u=m[0].getAttribute("name");null!=u&&""!=u&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,u))}}else if(0<
-m.length){p=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[m[0].getAttribute("id")]=this.pages[0].getId(),k=Editor.parseDiagramNode(m[0]),e=!1,q=1);for(;q<m.length;q++){var L=m[q].getAttribute("id");m[q].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(m[q]));a[L]=m[q].getAttribute("id");var J=this.pages.length;null==G.getName()&&G.setName(mxResources.get("pageWithNumber",[J+1]));f.model.execute(new ChangePage(this,G,G,J,!0));p.push(G)}this.updatePageLinks(a,
-p)}}if(null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q]);n&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(D){if(l)throw D;this.handleError(D)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
+!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),p=c.getGlobalVariable,n=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?n.getName():"pagenumber"==a?1:p.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(n.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
+"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(F){null!=b&&b(F)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,l)}catch(I){null!=b&&b(I)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,l,k,n,m,q,y,I,x,F){m=null!=m?m:!0;n=null!=q?q:b.background;n==mxConstants.NONE&&(n=null);k=b.getSvg(n,y,I,null,null,k,null,null,null,b.shadowVisible||
+x,null,F);(b.shadowVisible||x)&&b.addSvgShadow(k);null!=a&&k.setAttribute("content",a);null!=d&&k.setAttribute("resource",d);if(null!=l)this.embedFonts(k,mxUtils.bind(this,function(a){m?this.editor.convertImages(a,mxUtils.bind(this,function(a){l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(k)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(p){b(a)}}))}catch(g){b(a)}}))};
+EditorUi.prototype.exportImage=function(a,b,d,e,l,k,n,m,q,y,I,x,F){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,l?this.getFileData(!0,null,null,null,d,m):null,q,null==this.pages||0==this.pages.length,I)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,k,n,y,x,F)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,l,k,n){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var p=this.editor.extractGraphModel(g.documentElement,
+null!=this.pages);if(null!=p&&"mxfile"==p.nodeName&&null!=this.pages){var m=p.getElementsByTagName("diagram");if(1==m.length&&!k){if(p=Editor.parseDiagramNode(m[0]),null!=this.currentPage&&(a[m[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var u=m[0].getAttribute("name");null!=u&&""!=u&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,u))}}else if(0<
+m.length){k=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[m[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(m[0]),e=!1,q=1);for(;q<m.length;q++){var L=m[q].getAttribute("id");m[q].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(m[q]));a[L]=m[q].getAttribute("id");var J=this.pages.length;null==G.getName()&&G.setName(mxResources.get("pageWithNumber",[J+1]));f.model.execute(new ChangePage(this,G,G,J,!0));k.push(G)}this.updatePageLinks(a,
+k)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(c=f.importGraphModel(p,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q]);n&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(D){if(l)throw D;this.handleError(D)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),n=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",this.updatePageLink(a,e)),n=!0);n&&d.labelChanged(b,c.innerHTML)}for(m=0;m<d.model.getChildCount(b);m++)this.updatePageLinksForCell(a,d.model.getChildAt(b,m))};EditorUi.prototype.updatePageLink=
function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];if(null!=f.open&&"data:page/id,"==f.open.substring(0,13)){var n=f.open.substring(f.open.indexOf(",")+1),c=a[n];null!=c?f.open="data:page/id,"+c:null==this.getPageById(n)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(t){}return b};
EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e,l){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(e);try{var f="UNKNOWN-VISIO",g=e.lastIndexOf(".");if(0<=g&&g<e.length)f=e.substring(g+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=
@@ -3478,42 +3480,42 @@ a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(
"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(a,b,d,e){function c(a,c,b){c1=a>>2;c2=(a&3)<<4|c>>4;c3=(c&15)<<2|b>>6;c4=b&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+
a);a-=26;return 0==a?"-":1==a?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+c(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+c(a.charCodeAt(i),0,0):r+c(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(a))),!0);"txt"!=b&&(g.responseType="blob");g.onload=function(a){if(200<=this.status&&300>this.status)if("txt"==
b)d(this.response);else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=c.result,k=g.indexOf(","),l=decodeURIComponent(escape(atob(g.substring(k+1)))),p=mxUtils.parseXml(l).getElementsByTagName("svg");0<p.length&&(a=parseFloat(p[0].getAttribute("width")),f=parseFloat(p[0].getAttribute("height")))}d(c.result,a,f)}catch(D){e(D)}};b.src=c.result};c.onerror=function(a){e(a)}}else e(a)};g.onerror=
-function(a){e(a)};g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,l,p,n,m){p=null!=p?p:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,p,!0,m)}if("data:image/png;base64,"==
-a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,p,!0,m);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,p,!0,m);if(0<g.length)return g}catch(F){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
+function(a){e(a)};g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,l,k,n,m){k=null!=k?k:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
+" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,k,!0,m)}if("data:image/png;base64,"==
+a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,k,!0,m);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,k,!0,m);if(0<g.length)return g}catch(F){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),
g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,
-b,d,p,null,m);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,p,null,m))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;l=null;c.getModel().beginUpdate();try{l=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==a.charAt(0)&&a.indexOf(">")==
-a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");l.value=a;c.updateCellSize(l);if(0<this.maxTextWidth&&l.geometry.width>this.maxTextWidth){var k=c.getPreferredSizeForCell(l,this.maxTextWidth);l.geometry.width=k.width;l.geometry.height=k.height}Graph.isLink(l.value)&&c.setLinkForCell(l,l.value);l.geometry.width+=c.gridSize;l.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=
+b,d,k,null,m);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,k,null,m))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;l=null;c.getModel().beginUpdate();try{l=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==a.charAt(0)&&a.indexOf(">")==
+a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");l.value=a;c.updateCellSize(l);if(0<this.maxTextWidth&&l.geometry.width>this.maxTextWidth){var p=c.getPreferredSizeForCell(l,this.maxTextWidth);l.geometry.width=p.width;l.geometry.height=p.height}Graph.isLink(l.value)&&c.setLinkForCell(l,l.value);l.geometry.width+=c.gridSize;l.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=
function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&('{"state":"{\\"Properties\\":'==
a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=c}this.importFileInputElt.click()}else{window.openNew=
!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(a,c){StorageFile.listFiles(this,"F",a,c)});window.openBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.getFileContent(this,a,c,b)});window.deleteBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.deleteFile(this,a,c,b)});if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,
function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,
function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,d){var c=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==Object.keys(e.files).length)d();else{var f=0,g,k=!1;e.forEach(function(a,c){var e=c.name.toLowerCase();"diagram/diagram.xml"==e?(k=!0,c.async("string").then(function(a){0==a.indexOf("<mxfile ")?
b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=c))});0<f?g.async("string").then(function(e){!c.isOffline()&&(new XMLHttpRequest).upload&&c.isRemoteFileFormat(e,a.name)?c.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):d())}),a.name):d()}):k||d()}},function(a){d(a)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,l,p,n,m,q,y,I,x){y=null!=y?y:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,y,null,null!=x?mxEvent.isControlDown(x):null);null!=m&&m(c)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=I?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,y,
-null,null!=x?mxEvent.isControlDown(x):null),q=!0)),q||(b=this.editor.graph,I=a.indexOf(";"),0<I&&(a=a.substring(0,I)+a.substring(a.indexOf(",",I+1))),y&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,l,p,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=q&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?
+!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,l,k,n,m,q,y,I,x){y=null!=y?y:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,y,null,null!=x?mxEvent.isControlDown(x):null);null!=m&&m(c)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=I?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,y,
+null,null!=x?mxEvent.isControlDown(x):null),q=!0)),q||(b=this.editor.graph,I=a.indexOf(";"),0<I&&(a=a.substring(0,I)+a.substring(a.indexOf(",",I+1))),y&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,l,k,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=q&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?
(c=!0,this.importVisio(q,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=q?q:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=m&&m(null))}),n)):0==a.indexOf("PK")&&null!=q?(c=!0,this.importZipFile(q,g,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y);m(f)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||
-(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y,null,null!=x?mxEvent.isControlDown(x):null));c||null==m||m(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,l,p,n,m,q,y,I,x,F){e=null!=e?e:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=I||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>k){g=!0;break}var u=mxUtils.bind(this,
-function(){var g=this.editor.graph,k=g.gridSize;l=null!=l?l:mxUtils.bind(this,function(a,b,d,e,f,g,k,l,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,l,p,c,x,F)}catch(ca){return this.handleError(ca),null}});p=null!=p?p:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=a.length,q=t,u=[],D=mxUtils.bind(this,function(a,
-c){u[a]=c;if(0==--q){this.spinner.stop();if(null!=m)m(u);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}p(b)}}),H=0;H<t;H++)mxUtils.bind(this,function(c){var p=a[c];if(null!=p){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(p))if("image/"==p.type.substring(0,6))if("image/svg"==p.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),t=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(t+
+(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y,null,null!=x?mxEvent.isControlDown(x):null));c||null==m||m(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,l,k,n,m,q,y,I,x,F){e=null!=e?e:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var p=I||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>p){g=!0;break}var u=mxUtils.bind(this,
+function(){var g=this.editor.graph,p=g.gridSize;l=null!=l?l:mxUtils.bind(this,function(a,b,d,e,f,g,k,l,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,l,p,c,x,F)}catch(ca){return this.handleError(ca),null}});k=null!=k?k:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=a.length,q=t,u=[],D=mxUtils.bind(this,function(a,
+c){u[a]=c;if(0==--q){this.spinner.stop();if(null!=m)m(u);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}k(b)}}),H=0;H<t;H++)mxUtils.bind(this,function(c){var k=a[c];if(null!=k){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),t=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(t+
1)))),v=mxUtils.parseXml(q),q=v.getElementsByTagName("svg");if(0<q.length){var q=q[0],u=x?null:q.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?D(c,mxUtils.bind(this,function(){try{if(m.substring(0,t+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=f.getAttribute("width"),
-q=f.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox","0 0 "+n+" "+q);else if(isNaN(n)||isNaN(q)){var x=u.split(" ");3<x.length&&(n=parseFloat(x[2]),q=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(f));var y=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,q)),D=l(m,p.type,b+c*k,d+c*k,Math.max(1,Math.round(n*y)),Math.max(1,Math.round(q*
-y)),p.name);if(isNaN(n)||isNaN(q)){var N=new Image;N.onload=mxUtils.bind(this,function(){n=Math.max(1,N.width);q=Math.max(1,N.height);D[0].geometry.width=n;D[0].geometry.height=q;f.setAttribute("viewBox","0 0 "+n+" "+q);m=Editor.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return D}}}catch(ba){}return null})):D(c,mxUtils.bind(this,function(){return l(u,
-"text/xml",b+c*k,d+c*k,0,0,p.name)}))}else D(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==p.type){var N=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;D(c,mxUtils.bind(this,function(){return l(N,"text/xml",b+c*k,d+c*k,B.width,B.height,p.name)}));q=!0}}q||(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(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,n){D(c,mxUtils.bind(this,function(){if(null!=a&&a.length<y){var m=f&&this.isResampleImageSize(p.size,I)?Math.min(1,Math.min(e/g,e/n)):1;return l(a,p.type,b+c*k,d+c*k,Math.round(g*m),Math.round(n*m),p.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),f,e,I,p.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,l(m,p.type,b+c*k,d+c*k,240,160,p.name,function(a){D(c,function(){return a})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?l(null,p.type,b+c*k,d+c*k,240,160,p.name,function(a){D(c,function(){return a})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?m.readAsDataURL(p):m.readAsText(p)}})(H)});if(g){g=
+q=f.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox","0 0 "+n+" "+q);else if(isNaN(n)||isNaN(q)){var x=u.split(" ");3<x.length&&(n=parseFloat(x[2]),q=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(f));var y=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,q)),D=l(m,k.type,b+c*p,d+c*p,Math.max(1,Math.round(n*y)),Math.max(1,Math.round(q*
+y)),k.name);if(isNaN(n)||isNaN(q)){var N=new Image;N.onload=mxUtils.bind(this,function(){n=Math.max(1,N.width);q=Math.max(1,N.height);D[0].geometry.width=n;D[0].geometry.height=q;f.setAttribute("viewBox","0 0 "+n+" "+q);m=Editor.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return D}}}catch(ba){}return null})):D(c,mxUtils.bind(this,function(){return l(u,
+"text/xml",b+c*p,d+c*p,0,0,k.name)}))}else D(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==k.type){var N=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;D(c,mxUtils.bind(this,function(){return l(N,"text/xml",b+c*p,d+c*p,B.width,B.height,k.name)}));q=!0}}q||(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(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,n){D(c,mxUtils.bind(this,function(){if(null!=a&&a.length<y){var m=f&&this.isResampleImageSize(k.size,I)?Math.min(1,Math.min(e/g,e/n)):1;return l(a,k.type,b+c*p,d+c*p,Math.round(g*m),Math.round(n*m),k.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),f,e,I,k.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,l(m,k.type,b+c*p,d+c*p,240,160,k.name,function(a){D(c,function(){return a})},k)});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?l(null,k.type,b+c*p,d+c*p,240,160,k.name,function(a){D(c,function(){return a})},k):"image"==k.type.substring(0,5)||"application/pdf"==k.type?m.readAsDataURL(k):m.readAsText(k)}})(H)});if(g){g=
[];for(t=0;t<a.length;t++)g.push(a[t]);a=g;this.confirmImageResize(function(a){f=a;u()},q)}else u()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(a){e(a,!0)},function(a){e(a,!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,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",
-OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(p){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,l,p,n){l=null!=l?l:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=n?n:b.length,p))try{var g=Math.max(c/l,f/l);if(1<g){var k=Math.round(c/g),m=Math.round(f/
-g),q=document.createElement("canvas");q.width=k;q.height=m;q.getContext("2d").drawImage(a,0,0,k,m);var u=q.toDataURL();if(u.length<b.length){var L=document.createElement("canvas");L.width=k;L.height=m;var G=L.toDataURL();u!==G&&(b=u,c=k,f=m)}}}catch(J){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
+OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(k){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,l,k,n){l=null!=l?l:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=n?n:b.length,k))try{var g=Math.max(c/l,f/l);if(1<g){var p=Math.round(c/g),m=Math.round(f/
+g),q=document.createElement("canvas");q.width=p;q.height=m;q.getContext("2d").drawImage(a,0,0,p,m);var u=q.toDataURL();if(u.length<b.length){var L=document.createElement("canvas");L.width=p;L.height=m;var G=L.toDataURL();u!==G&&(b=u,c=p,f=m)}}}catch(J){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(l){if(null!=d)d(l);else throw l;}};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=g,l.height=k,b.cellsResized([c],[l],!1))}b.setAttributeForCell(c,"plantUmlData",
JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
e,[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=Math.max(l.width,g),l.height=Math.max(l.height,k),b.cellsResized([c],[l],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(D){a.handleError(D)}};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(G){a.handleError(G)}return c};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.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 l=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return l.apply(this,arguments)};
-var p=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};p.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var n=Menus.prototype.addPopupMenuEditItems;
+var k=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};k.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var n=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(b,c,d){a.editor.graph.isSelectionEmpty()?n.apply(this,arguments):a.menus.addMenuItems(b,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var t=b.getExportVariables;b.getExportVariables=function(){var b=t.apply(this,arguments),c=a.getCurrentFile();null!=
c&&(b.filename=c.getTitle());b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return b};var q=b.getGlobalVariable;b.getGlobalVariable=function(b){var c=a.getCurrentFile();return"filename"==b&&null!=c?c.getTitle():"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
"pagecount"==b?null!=a.pages?a.pages.length:1:q.apply(this,arguments)};var y=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))y.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?
@@ -3527,11 +3529,11 @@ document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.edito
"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var x=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:x.apply(this,arguments)}}I=document.getElementById("geInfo");null!=I&&I.parentNode.removeChild(I);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),
F=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=F&&(F.parentNode.removeChild(F),F=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,
-null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(l);var p=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(p=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
-(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(l=mxUtils.getTextContent(c[0]))));var n=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,f,g,!0,p,null,n,mxEvent.isControlDown(a)))});p&&null!=l&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;m()},mxEvent.isControlDown(a)):m()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
+null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(l);var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(n=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
+(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(l=mxUtils.getTextContent(c[0]))));var p=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,f,g,!0,n,null,p,mxEvent.isControlDown(a)))});n&&null!=l&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){p=a;m()},mxEvent.isControlDown(a)):m()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();
-a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var n=
-f[index];if("file"===n.kind){if(a.isEditing())this.importFiles([n.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var m=this.editor.graph.getInsertPoint();this.importFiles([n.getAsFile()],m.x,m.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(A){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
+a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c))try{for(var b=c.clipboardData||c.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var n=
+f[index];if("file"===n.kind){if(a.isEditing())this.importFiles([n.getAsFile()],0,0,this.maxImageSize,function(c,b,d,e,f,g){a.insertImage(c,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var m=this.editor.graph.getInsertPoint();this.importFiles([n.getAsFile()],m.x,m.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(A){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
"&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow=
"hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var e=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||224!=a.keyCode&&(mxClient.IS_MAC||17!=a.keyCode)&&(!mxClient.IS_MAC||91!=a.keyCode&&93!=a.keyCode)||e||(d.style.left=b.container.scrollLeft+10+"px",d.style.top=b.container.scrollTop+10+"px",b.container.appendChild(d),e=!0,d.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!e||224!=c&&17!=
@@ -3543,20 +3545,20 @@ EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof windo
mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){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(a,b){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(a,b,d){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(a,
-c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(A){this.handleError(A)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(k){this.handleError(k)}};
+c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(A){this.handleError(A)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(p){this.handleError(p)}};
EditorUi.prototype.writeImageToClipboard=function(a,b,d,e){var c=this.base64ToBlob(a.substring(a.indexOf(",")+1),"image/png");a=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="'+a+'" width="'+b+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](e)};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));
mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var a=null;if(Editor.enableNativeCipboard){var b=this.editor.graph;b.isSelectionEmpty()||(a=mxUtils.sortCells(b.getExportableCells(b.model.getTopmostCells(b.getSelectionCells()))),b=mxUtils.getXml(b.encodeCells(a)),navigator.clipboard.writeText(b))}return a};EditorUi.prototype.pasteXml=
function(a,b,d,e){var c=this.editor.graph,f=null;c.lastPasteXml==a?c.pasteCounter++:(c.lastPasteXml=a,c.pasteCounter=0);var g=c.pasteCounter*c.gridSize;if(d||this.isCompatibleString(a))f=this.importXml(a,g,g),c.setSelectionCells(f);else if(b&&1==c.getSelectionCount()){g=c.getStartEditingCell(c.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a)&&"image"==c.getCurrentCellStyle(g)[mxConstants.STYLE_SHAPE])c.setCellStyles(mxConstants.STYLE_IMAGE,a,[g]);else{c.model.beginUpdate();try{c.labelChanged(g,
a),Graph.isLink(a)&&c.setLinkForCell(g,a)}finally{c.model.endUpdate()}}c.setSelectionCell(g)}else f=c.getInsertPoint(),c.isMouseInsertPoint()&&(g=0,c.lastPasteXml==a&&0<c.pasteCounter&&c.pasteCounter--),f=this.insertTextAt(a,f.x+g,f.y+g,!0),c.setSelectionCells(f);c.isSelectionEmpty()||(c.scrollCellToVisible(c.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(a,b,d,e){if(!mxEvent.isConsumed(a)){var c=
-b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),k=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var n=decodeURIComponent(g);this.isCompatibleString(n)&&(k=!0,g=n)}k=k?null:a.clipboardData.getData("text/html");null!=k&&0<k.length?(c=this.parseHtmlData(k),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,k))}g=c.getElementsByTagName("span");if(null!=
+b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),n=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var p=decodeURIComponent(g);this.isCompatibleString(p)&&(n=!0,g=p)}n=n?null:a.clipboardData.getData("text/html");null!=n&&0<n.length?(c=this.parseHtmlData(n),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,n))}g=c.getElementsByTagName("span");if(null!=
g&&0<g.length&&"application/vnd.lucid.chart.objects"===g[0].getAttribute("data-lucid-type"))d=g[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){var b=this.editor.graph;b.lastPasteXml==a?b.pasteCounter++:(b.lastPasteXml=a,b.pasteCounter=0);var c=b.pasteCounter*b.gridSize;b.setSelectionCells(this.importXml(a,c,c));b.scrollCellToVisible(b.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{f=
-f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);k=!1;try{var m=f.lastIndexOf("%3E");0<=m&&m<f.length-3&&(f=f.substring(0,m+3))}catch(x){}try{g=c.getElementsByTagName("span"),n=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(n)&&(k=!0,f=n)}catch(x){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,k,a);try{mxEvent.consume(a)}catch(x){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
+f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);n=!1;try{var m=f.lastIndexOf("%3E");0<=m&&m<f.length-3&&(f=f.substring(0,m+3))}catch(x){}try{g=c.getElementsByTagName("span"),p=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(p)&&(n=!0,f=p)}catch(x){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,n,a);try{mxEvent.consume(a)}catch(x){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
0}}catch(x){this.handleError(x)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=
this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);
if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=this.editor.graph.sanitizeHtml(c),d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,
"text/plain")&&(c=d.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(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.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)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var n=document.documentElement;d=(e.clientWidth||n.clientWidth)-3;e=Math.max(e.clientHeight||0,n.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;n=document.createElement("div");
-n.style.zIndex=mxPopupMenu.prototype.zIndex+2;n.style.border="3px dotted rgb(254, 137, 12)";n.style.pointerEvents="none";n.style.position="absolute";n.style.top=b+"px";n.style.left=c+"px";n.style.width=Math.max(0,d-3)+"px";n.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(n):document.body.appendChild(n);return n};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var k=document.documentElement;d=(e.clientWidth||k.clientWidth)-3;e=Math.max(e.clientHeight||0,k.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.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=b+"px";k.style.left=c+"px";k.style.width=Math.max(0,d-3)+"px";k.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,l){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(d,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?c(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
@@ -3569,52 +3571,52 @@ null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.open
(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=
a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=a?"":"hidden",this.ruler.vRuler.container.style.visibility=a?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=a?"":"hidden");a||(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(a,b,d,e){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);if(null==a||0==
-a.length)a=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);if(e)try{var c=this.editor.graph;c.setGridEnabled(!1);c.pageVisible=!1;var f=c.model.cells,g;for(g in f){var k=f[g];null!=k&&null!=k.style&&(k.style+=";sketch=1;"+(-1==k.style.indexOf("fontFamily=")||-1<k.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(A){console.log(A)}this.editor.isChromelessView()?
+a.length)a=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);if(e)try{var c=this.editor.graph;c.setGridEnabled(!1);c.pageVisible=!1;var f=c.model.cells,g;for(g in f){var n=f[g];null!=n&&null!=n.style&&(n.style+=";sketch=1;"+(-1==n.style.indexOf("fontFamily=")||-1<n.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(A){console.log(A)}this.editor.isChromelessView()?
this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=d?d:!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(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,n=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?
-null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,n);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==
+EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,k=mxUtils.bind(this,function(a,b){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 g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==
a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(ua){}return a});if("json"==urlParams.proto){var l=!1;try{g=JSON.parse(g)}catch(P){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):
-g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var n=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?m.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):m.postMessage(JSON.stringify({event:"prompt-cancel",message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(n.container,
-300,80,!0,!1);n.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();n=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):
-null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(P){m.postMessage(JSON.stringify({event:"draft",error:P.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();var t=1==g.enableRecent,q=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&
-!g.templatesOnly&&null!=g.callback){var D=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,b,c){a=a||this.emptyDiagramXml;m.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:b,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=D?D.id:null,t?mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getRecentDiagrams",[c],null,a,b)}):null,
-q?mxUtils.bind(this,function(a,b,c,d){this.remoteInvoke("searchDiagrams",[a,d],null,b,c)}):null,mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getFileContent",[a.url],null,b,c)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(A.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}n=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=
-b||this.emptyDiagramXml;null!=g.callback?m.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml,g.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",[null],null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",
-[a,null],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){m.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==g.withoutType);this.showDialog(n.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==g.action){var O=
-this.getDiagramTextContent();m.postMessage(JSON.stringify({event:"textContent",data:O,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var U=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,U):
-this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,C=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=N;m.postMessage(JSON.stringify(b),
+g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,
+300,80,!0,!1);m.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):
+null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(P){n.postMessage(JSON.stringify({event:"draft",error:P.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();var t=1==g.enableRecent,q=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&
+!g.templatesOnly&&null!=g.callback){var D=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,b,c){a=a||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:b,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=D?D.id:null,t?mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getRecentDiagrams",[c],null,a,b)}):null,
+q?mxUtils.bind(this,function(a,b,c,d){this.remoteInvoke("searchDiagrams",[a,d],null,b,c)}):null,mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getFileContent",[a.url],null,b,c)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(A.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}m=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=
+b||this.emptyDiagramXml;null!=g.callback?n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml,g.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",[null],null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",
+[a,null],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){n.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==g.withoutType);this.showDialog(m.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();a&&this.actions.get("exit").funct()}));m.init();return}if("textContent"==g.action){var O=
+this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:O,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var U=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,U):
+this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,C=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=N;n.postMessage(JSON.stringify(b),
"*")}),B=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(N)));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);C(a)}),E=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(N),c=!1);if(null!=this.pages&&this.currentPage.getId()!=E){for(var K=v.getGlobalVariable,
-v=this.createTemporaryGraph(v.getStylesheet()),Z,Q=0;Q<this.pages.length;Q++)if(this.pages[Q].getId()==E){Z=this.updatePageRoot(this.pages[Q]);break}null==Z&&(Z=this.currentPage);v.getGlobalVariable=function(a){return"page"==a?Z.getName():"pagenumber"==a?1:K.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(Z.root)}if(null!=g.layerIds){for(var aa=v.model,pa=aa.getChildCells(aa.getRoot()),n={},Q=0;Q<g.layerIds.length;Q++)n[g.layerIds[Q]]=!0;for(Q=0;Q<pa.length;Q++)aa.setVisible(pa[Q],
-n[pa[Q].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){B(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){B(null)}),null,null,g.scale,g.transparent,g.shadow,null,v,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=E?"&pageId="+E:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):"")+(null!=g.scale?"&scale="+g.scale:
+v=this.createTemporaryGraph(v.getStylesheet()),Z,Q=0;Q<this.pages.length;Q++)if(this.pages[Q].getId()==E){Z=this.updatePageRoot(this.pages[Q]);break}null==Z&&(Z=this.currentPage);v.getGlobalVariable=function(a){return"page"==a?Z.getName():"pagenumber"==a?1:K.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(Z.root)}if(null!=g.layerIds){for(var aa=v.model,pa=aa.getChildCells(aa.getRoot()),m={},Q=0;Q<g.layerIds.length;Q++)m[g.layerIds[Q]]=!0;for(Q=0;Q<pa.length;Q++)aa.setVisible(pa[Q],
+m[pa[Q].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){B(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){B(null)}),null,null,g.scale,g.transparent,g.shadow,null,v,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=E?"&pageId="+E:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):"")+(null!=g.scale?"&scale="+g.scale:
"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?C("data:image/png;base64,"+a.getText()):B(null)}),mxUtils.bind(this,function(){B(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);U=this.createLoadMessage("export");U.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();U.xml=mxUtils.getXml(ga);U.data=this.getFileData(null,
-null,!0,null,null,null,ga);U.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),U.data=this.getHtml(N,this.editor.graph),U.xml=mxUtils.getXml(N),U.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);U.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);U.format="svg";var ma=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();U.data=
-Editor.createSvgDataUri(a);m.postMessage(JSON.stringify(U),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(U.xml,this.editor.graph,null,!0,ma,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);var V=this.editor.graph.getSvg(ea,
-g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){ma(mxUtils.getXml(a))})):ma(mxUtils.getXml(a))}))}return}m.postMessage(JSON.stringify(U),"*")}return}if("load"==g.action){l=g.toSketch;d=1==g.autosave;this.hideDialog();null!=
+null,!0,null,null,null,ga);U.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),U.data=this.getHtml(N,this.editor.graph),U.xml=mxUtils.getXml(N),U.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);U.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);U.format="svg";var na=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();U.data=
+Editor.createSvgDataUri(a);n.postMessage(JSON.stringify(U),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(U.xml,this.editor.graph,null,!0,na,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);var V=this.editor.graph.getSvg(ea,
+g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){na(mxUtils.getXml(a))})):na(mxUtils.getXml(a))}))}return}n.postMessage(JSON.stringify(U),"*")}return}if("load"==g.action){l=g.toSketch;d=1==g.autosave;this.hideDialog();null!=
g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
"6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(P){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==
-g.action){var ca=this.getCurrentFile();null!=ca&&(p=k(g.xml),null!=p&&""!=p&&ca.mergeFile(new LocalFile(this,p),function(){m.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){m.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(m):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):m.postMessage(JSON.stringify({error:"unknownMessage",
-data:JSON.stringify(g)}),"*");return}}catch(P){this.handleError(P)}}var na=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g,null,l)}catch(da){this.handleError(da)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=na();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=na();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=
+g.action){var ca=this.getCurrentFile();null!=ca&&(p=k(g.xml),null!=p&&""!=p&&ca.mergeFile(new LocalFile(this,p),function(){n.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){n.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):n.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(g)}),"*");return}}catch(P){this.handleError(P)}}var oa=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g,null,l)}catch(da){this.handleError(da)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=oa();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=oa();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=
d;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
-b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;m.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){T(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),
+b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;n.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){T(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),
k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&T(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){T(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):
-null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),T(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){T(na(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var m=window.opener||window.parent,n="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";m.postMessage(n,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(a,b,c){t.apply(this,arguments);
-m.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?
+null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),T(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){T(oa(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");if("json"==urlParams.proto){var m=this.editor.graph.openLink;this.editor.graph.openLink=function(a,b,c){m.apply(this,arguments);
+n.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?
mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,e);b.setAttribute("title",e);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),
mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,d),b.setAttribute("title",d),b.className="geBigButton geBigStandardButton",
b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.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(a){this.importCsv(a)}),
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(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var n in a[e].config)f[n]=a[e].config[n];this.executeLayout(function(){f.execute(c.getDefaultParent(),
-0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var n={},m=null,q=null,y=null,I=null,x=null,F=null,H=null,L=null,G=null,J="",D="auto",M="auto",O=null,U=null,N=40,v=40,C=100,B=0,E=this.editor.graph;E.getGraphBounds();for(var K=function(){null!=b?b(ta):(E.setSelectionCells(ta),E.scrollCellToVisible(E.getSelectionCell()))},Z=E.getFreeInsertPoint(),Q=Z.x,aa=Z.y,Z=aa,pa=null,ga="auto",G=null,ea=[],ma=null,V=null,ca=
-0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var T=mxUtils.trim(a.substring(1,na)),P=mxUtils.trim(a.substring(na+1));"label"==T?pa=E.sanitizeHtml(P):"labelname"==T&&0<P.length&&"-"!=P?x=P:"labels"==T&&0<P.length&&"-"!=P?F=JSON.parse(P):"style"==T?q=P:"parentstyle"==T?H=P:"stylename"==T&&0<P.length&&"-"!=P?I=P:
-"styles"==T&&0<P.length&&"-"!=P?y=JSON.parse(P):"vars"==T&&0<P.length&&"-"!=P?m=JSON.parse(P):"identity"==T&&0<P.length&&"-"!=P?L=P:"parent"==T&&0<P.length&&"-"!=P?G=P:"namespace"==T&&0<P.length&&"-"!=P?J=P:"width"==T?D=P:"height"==T?M=P:"left"==T&&0<P.length?O=P:"top"==T&&0<P.length?U=P:"ignore"==T?V=P.split(","):"connect"==T?ea.push(JSON.parse(P)):"link"==T?ma=P:"padding"==T?B=parseFloat(P):"edgespacing"==T?N=parseFloat(P):"nodespacing"==T?v=parseFloat(P):"levelspacing"==T?C=parseFloat(P):"layout"==
-T&&(ga=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ua=this.editor.csvToArray(c[ca]),T=na=null,P=[],W=0;W<ua.length;W++)L==ua[W]&&(na=W),G==ua[W]&&(T=W),P.push(mxUtils.trim(ua[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+P[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==n[ea[da].to]&&(n[ea[da].to]={});L=[];for(W=ca+1;W<c.length;W++){var ia=this.editor.csvToArray(c[W]);if(null==ia){var qa=40<c[W].length?c[W].substring(0,
-40)+"...":c[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ia.length&&L.push(ia)}E.model.beginUpdate();try{for(W=0;W<L.length;W++){var ia=L[W],R=null,ka=null!=na?J+ia[na]:null;null!=ka&&(R=E.model.getCell(ka));var c=null!=R,ba=new mxCell(pa,new mxGeometry(Q,Z,0,0),q||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=ka;for(var ja=0;ja<ia.length;ja++)E.setAttributeForCell(ba,P[ja],ia[ja]);if(null!=x&&null!=F){var X=F[ba.getAttribute(x)];null!=X&&E.labelChanged(ba,X)}if(null!=
-I&&null!=y){var la=y[ba.getAttribute(I)];null!=la&&(ba.style=la)}E.setAttributeForCell(ba,"placeholders","1");ba.style=E.replacePlaceholders(ba,ba.style,m);c&&(E.model.setGeometry(R,ba.geometry),E.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)n[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=ma&&"link"!=ma&&(E.setLinkForCell(R,R.getAttribute(ma)),E.setAttributeForCell(R,ma,null));E.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var sa=
+0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var n={},m=null,q=null,y=null,I=null,x=null,F=null,H=null,L=null,G=null,J="",D="auto",M="auto",O=null,U=null,N=40,v=40,C=100,B=0,E=this.editor.graph;E.getGraphBounds();for(var K=function(){null!=b?b(ta):(E.setSelectionCells(ta),E.scrollCellToVisible(E.getSelectionCell()))},Z=E.getFreeInsertPoint(),Q=Z.x,aa=Z.y,Z=aa,pa=null,ga="auto",G=null,ea=[],na=null,V=null,ca=
+0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var oa=a.indexOf(":");if(0<oa){var T=mxUtils.trim(a.substring(1,oa)),P=mxUtils.trim(a.substring(oa+1));"label"==T?pa=E.sanitizeHtml(P):"labelname"==T&&0<P.length&&"-"!=P?x=P:"labels"==T&&0<P.length&&"-"!=P?F=JSON.parse(P):"style"==T?q=P:"parentstyle"==T?H=P:"stylename"==T&&0<P.length&&"-"!=P?I=P:
+"styles"==T&&0<P.length&&"-"!=P?y=JSON.parse(P):"vars"==T&&0<P.length&&"-"!=P?m=JSON.parse(P):"identity"==T&&0<P.length&&"-"!=P?L=P:"parent"==T&&0<P.length&&"-"!=P?G=P:"namespace"==T&&0<P.length&&"-"!=P?J=P:"width"==T?D=P:"height"==T?M=P:"left"==T&&0<P.length?O=P:"top"==T&&0<P.length?U=P:"ignore"==T?V=P.split(","):"connect"==T?ea.push(JSON.parse(P)):"link"==T?na=P:"padding"==T?B=parseFloat(P):"edgespacing"==T?N=parseFloat(P):"nodespacing"==T?v=parseFloat(P):"levelspacing"==T?C=parseFloat(P):"layout"==
+T&&(ga=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ua=this.editor.csvToArray(c[ca]),T=oa=null,P=[],W=0;W<ua.length;W++)L==ua[W]&&(oa=W),G==ua[W]&&(T=W),P.push(mxUtils.trim(ua[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+P[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==n[ea[da].to]&&(n[ea[da].to]={});L=[];for(W=ca+1;W<c.length;W++){var ja=this.editor.csvToArray(c[W]);if(null==ja){var qa=40<c[W].length?c[W].substring(0,
+40)+"...":c[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&L.push(ja)}E.model.beginUpdate();try{for(W=0;W<L.length;W++){var ja=L[W],R=null,la=null!=oa?J+ja[oa]:null;null!=la&&(R=E.model.getCell(la));var c=null!=R,ba=new mxCell(pa,new mxGeometry(Q,Z,0,0),q||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=la;for(var ka=0;ka<ja.length;ka++)E.setAttributeForCell(ba,P[ka],ja[ka]);if(null!=x&&null!=F){var X=F[ba.getAttribute(x)];null!=X&&E.labelChanged(ba,X)}if(null!=
+I&&null!=y){var ma=y[ba.getAttribute(I)];null!=ma&&(ba.style=ma)}E.setAttributeForCell(ba,"placeholders","1");ba.style=E.replacePlaceholders(ba,ba.style,m);c&&(E.model.setGeometry(R,ba.geometry),E.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)n[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=na&&"link"!=na&&(E.setLinkForCell(R,R.getAttribute(na)),E.setAttributeForCell(R,na,null));E.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var sa=
this.editor.graph.getPreferredSizeForCell(R);R.vertex&&(null!=O&&null!=R.getAttribute(O)&&(R.geometry.x=Q+parseFloat(R.getAttribute(O))),null!=U&&null!=R.getAttribute(U)&&(R.geometry.y=aa+parseFloat(R.getAttribute(U))),"@"==D.charAt(0)&&null!=R.getAttribute(D.substring(1))?R.geometry.width=parseFloat(R.getAttribute(D.substring(1))):R.geometry.width="auto"==D?sa.width+B:parseFloat(D),"@"==M.charAt(0)&&null!=R.getAttribute(M.substring(1))?R.geometry.height=parseFloat(R.getAttribute(M.substring(1))):
-R.geometry.height="auto"==M?sa.height+B:parseFloat(M),Z+=R.geometry.height+v);c?(null==f[ka]&&(f[ka]=[]),f[ka].push(R)):(G=null!=T?E.model.getCell(J+ia[T]):null,d.push(R),null!=G?(G.style=E.replacePlaceholders(G,H,m),E.addCell(R,G)):e.push(E.addCell(R)))}for(var va=e.slice(),ta=e.slice(),da=0;da<ea.length;da++)for(var ya=ea[da],W=0;W<d.length;W++){var R=d[W],za=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
+R.geometry.height="auto"==M?sa.height+B:parseFloat(M),Z+=R.geometry.height+v);c?(null==f[la]&&(f[la]=[]),f[la].push(R)):(G=null!=T?E.model.getCell(J+ja[T]):null,d.push(R),null!=G?(G.style=E.replacePlaceholders(G,H,m),E.addCell(R,G)):e.push(E.addCell(R)))}for(var va=e.slice(),ta=e.slice(),da=0;da<ea.length;da++)for(var ya=ea[da],W=0;W<d.length;W++){var R=d[W],za=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
e=0;e<d.length;e++){var f=n[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=E.replacePlaceholders(b,c.sourcelabel,m)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+E.replacePlaceholders(f,c.targetlabel,m));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?E.replacePlaceholders(k,c.style,m):E.createCurrentEdgeStyle(),g=E.insertEdge(null,null,g||"",c.invert?
f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var l=c.labels[k],p=new mxCell(l.label||k,new mxGeometry(null!=l.x?l.x:0,null!=l.y?l.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=l.placeholders&&(p.value=E.replacePlaceholders("target"==l.placeholders==!c.invert?f:a,p.value,m));if(null!=l.dx||null!=l.dy)p.geometry.offset=new mxPoint(null!=l.dx?l.dx:0,null!=l.dy?l.dy:0);g.insert(p)}ta.push(g);mxUtils.remove(c.invert?a:f,va)}}});za(R,R,
-ya);if(null!=f[R.id])for(ja=0;ja<f[R.id].length;ja++)za(R,f[R.id][ja],ya)}if(null!=V)for(W=0;W<d.length;W++)for(R=d[W],ja=0;ja<V.length;ja++)E.setAttributeForCell(R,mxUtils.trim(V[ja]),null);if(0<e.length){var S=new mxParallelEdgeLayout(E);S.spacing=N;S.checkOverlap=!0;var Aa=function(){0<S.spacing&&S.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==D&&(b.width=Math.round(E.snap(b.width)));"auto"==
-M&&(b.height=Math.round(E.snap(b.height)))}};if("["==ga.charAt(0)){var ha=K;E.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ha()});K=null}else if("circle"==ga){var Ba=new mxCircleLayout(E);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(E.getDefaultParent());Aa()},!0,K);K=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==
+ya);if(null!=f[R.id])for(ka=0;ka<f[R.id].length;ka++)za(R,f[R.id][ka],ya)}if(null!=V)for(W=0;W<d.length;W++)for(R=d[W],ka=0;ka<V.length;ka++)E.setAttributeForCell(R,mxUtils.trim(V[ka]),null);if(0<e.length){var S=new mxParallelEdgeLayout(E);S.spacing=N;S.checkOverlap=!0;var Aa=function(){0<S.spacing&&S.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==D&&(b.width=Math.round(E.snap(b.width)));"auto"==
+M&&(b.height=Math.round(E.snap(b.height)))}};if("["==ga.charAt(0)){var ia=K;E.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ia()});K=null}else if("circle"==ga){var Ba=new mxCircleLayout(E);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(E.getDefaultParent());Aa()},!0,K);K=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==
ga&&ta.length==2*e.length-1&&1==va.length){E.view.validate();var Ea=new mxCompactTreeLayout(E,"horizontaltree"==ga);Ea.levelDistance=v;Ea.edgeRouting=!1;Ea.resetEdges=!1;this.executeLayout(function(){Ea.execute(E.getDefaultParent(),0<va.length?va[0]:null)},!0,K);K=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==va.length){E.view.validate();var Ca=new mxHierarchicalLayout(E,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);Ca.intraCellSpacing=v;Ca.parallelEdgeSpacing=
N;Ca.interRankCellSpacing=C;Ca.disableEdgeStyle=!1;this.executeLayout(function(){Ca.execute(E.getDefaultParent(),ta);E.moveCells(ta,Q,aa)},!0,K);K=null}else if("organic"==ga||"auto"==ga&&ta.length>e.length){E.view.validate();var xa=new mxFastOrganicLayout(E);xa.forceConstant=3*v;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ga=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ga.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(E.getDefaultParent());Aa()},
!0,K);K=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=K&&K()}}catch(Y){this.handleError(Y)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
@@ -3627,17 +3629,17 @@ null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMen
e.length||a.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(d);this.actions.get("connectionArrows").setEnabled(d);this.actions.get("connectionPoints").setEnabled(d);this.actions.get("copyStyle").setEnabled(d&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(d&&0<e.length);this.actions.get("editGeometry").setEnabled(0<e.length&&a.getModel().isVertex(e[0]));this.actions.get("createShape").setEnabled(d);this.actions.get("createRevision").setEnabled(d);this.actions.get("moveToFolder").setEnabled(null!=
b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled(d&&(null==b||!b.isRestricted()));this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=
b&&b.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=b);this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());b=this.actions.get("findReplace");b.setEnabled("hidden"!=this.diagramContainer.style.visibility);b.label=mxResources.get("find")+(a.isEnabled()?"/"+mxResources.get("replace"):"")+"...";a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(d&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var q=EditorUi.prototype.destroy;
-EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,l,n,m,q){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,
-l,n)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*l/c.view.scale),p=Math.floor(g.height*l/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&k*p<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};q&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+
-(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<m?"&dpi="+m:"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(l,null==e||"none"==e,!0,!1,!1,n,!0,!1,null,q,m):a.exportImage(l,!1,!0,!1,!1,n,!0,!1,"jpeg",q);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,l,k,n,m){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,
+l,k)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),p=Math.floor(g.width*l/c.view.scale),q=Math.floor(g.height*l/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&p*q<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};m&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+
+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+p+"&h="+q+"&border="+k+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(l,null==e||"none"==e,!0,!1,!1,k,!0,!1,null,m,n):a.exportImage(l,!1,!0,!1,!1,k,!0,!1,"jpeg",m);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=
this.pages)for(var d=0;d<this.pages.length;d++){var e=a;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(a.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,
-mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var n={};try{var m=mxSettings.getCustomLibraries();for(a=0;a<m.length;a++){var q=m[a];if("R"==q.substring(0,1)){var A=JSON.parse(decodeURIComponent(q.substring(1)));n[A[0]]=
-{id:A[0],title:A[1],downloadUrl:A[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];n[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,n[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
-function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==n[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
-null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(H){this.handleError(H,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in n)b[c]||this.closeLibrary(new RemoteLibrary(this,null,n[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
+mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(a=0;a<n.length;a++){var m=n[a];if("R"==m.substring(0,1)){var q=JSON.parse(decodeURIComponent(m.substring(1)));k[q[0]]=
+{id:q[0],title:q[1],downloadUrl:q[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];k[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,k[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
+function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==k[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
+null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(H){this.handleError(H,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in k)b[c]||this.closeLibrary(new RemoteLibrary(this,null,k[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
340,375,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(a){this.remoteWin=a;for(var b=0;b<this.remoteInvokeQueue.length;b++)a.postMessage(this.remoteInvokeQueue[b],
"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,d,e,l){var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;l({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
-this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),k=mxUtils.bind(this,function(){window.clearTimeout(f);c&&l.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:k});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
+this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),n=mxUtils.bind(this,function(){window.clearTimeout(f);c&&l.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:n});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,n=0;n<e.allowedDomains.length;n++)if(b=="https://"+e.allowedDomains[n]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var m=a.functionArgs;Array.isArray(m)||
(m=[]);if(e.isAsync)m.push(function(){c(Array.prototype.slice.apply(arguments))}),m.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,m);else{var q=this[d].apply(this,m);c([q])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(y){c(null,"Invalid Call: An error occured, "+y.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
@@ -3647,40 +3649,40 @@ size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,
(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,l()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?n(f.resp[0]):k())}}catch(M){console.log(M)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(l){null!=b&&b(l)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,e,l){this.openDatabase(mxUtils.bind(this,function(c){try{l=l||"objects";Array.isArray(l)||(l=
[l],a=[a],b=[b]);var f=c.transaction(l,"readwrite");f.oncomplete=d;f.onerror=e;for(c=0;c<l.length;c++)f.objectStore(l[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(t){null!=e&&e(t)}}),e)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){e=e||"objects";Array.isArray(e)||(e=[e],a=[a]);c=c.transaction(e,"readwrite");c.oncomplete=b;c.onerror=d;for(var f=0;f<e.length;f++)c.objectStore(e[f])["delete"](a[f])}),d)};EditorUi.prototype.getDatabaseItem=
function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){try{e=e||"objects";var f=c.transaction([e],"readonly").objectStore(e).get(a);f.onsuccess=function(){b(f.result)};f.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
-b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(p){null!=b&&b(p)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
+b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(k){null!=b&&b(k)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var a=this.getCurrentFile();return null!=a?a.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(a,b){var c=this.getCurrentFile();null!=c?c.getComments(a,b):a([])};EditorUi.prototype.addComment=function(a,b,d){var c=this.getCurrentFile();null!=c?c.addComment(a,b,d):b(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var a=this.getCurrentFile();return null!=a?
a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=
-c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,l,n,m,q){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
-return this.editor.loadUrl(a,b,d,e,l,n,m,q)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
-return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,l,n,m,q,A,y,I,x,F,H,L,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,l,n,m,q,A,y,I,x,F,H,L,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,l,k,n,m){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(a,b,d,e,l,k,n,m)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,l,k,n,m,q,y,I,x,F,H,L,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,l,k,n,m,q,y,I,x,F,H,L,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(a,b,d,e)};EditorUi.prototype.convertImageToDataUri=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(a,b)};EditorUi.prototype.base64Encode=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(a)};EditorUi.prototype.updateCRC=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(a,b,d,e)};EditorUi.prototype.crc32=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,l){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,d,e,l)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var d=localStorage.key(b),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var l=
"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(l||e)&&a.push(d)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(a,b,e,d,m,n){function q(){for(var a=x.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==x&&b++;F.style.display=0==b?"block":"none"}function c(a,b,c,d){function e(){b.removeChild(k);b.removeChild(l);g.style.display="block";f.style.display="block"}A={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var l=document.createElement("div");l.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),q()):e();A=null});n.className="geCommentEditBtn";l.appendChild(n);var m=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(m.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));m.focus();m.className="geCommentEditBtn gePrimaryBtn";l.appendChild(m);b.insertBefore(l,f);g.style.display="none";f.style.display="none";k.focus()}function f(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
-[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function g(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function k(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function l(a){a.style.border="";a.removeChild(a.busyImg)}function p(b,d,e,n,m){function v(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});L.appendChild(e);d&&(e.style.display="none")}function D(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=N;a(b);return{pdiv:d,replies:c}}function y(d,e,f,m,q){function t(){g(N);b.addReply(u,function(a){u.id=a;b.replies.push(u);l(N);f&&f()},function(b){v();k(N);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,q)}function v(){c(u,N,function(a){t()},!0)}var x=D().pdiv,u=a.newComment(d,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var N=p(u,b.replies,x,n+1);e?v():t()}if(m||!b.isResolved){F.style.display="none";var N=document.createElement("div");N.className="geCommentContainer";N.setAttribute("data-commentId",b.id);N.style.marginLeft=20*n+5+"px";b.isResolved&&!Editor.isDarkMode()&&(N.style.backgroundColor="ghostWhite");
+[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function g(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function p(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function l(a){a.style.border="";a.removeChild(a.busyImg)}function k(b,d,e,n,m){function v(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});L.appendChild(e);d&&(e.style.display="none")}function D(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=N;a(b);return{pdiv:d,replies:c}}function y(d,e,f,m,q){function t(){g(N);b.addReply(u,function(a){u.id=a;b.replies.push(u);l(N);f&&f()},function(b){v();p(N);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,q)}function v(){c(u,N,function(a){t()},!0)}var x=D().pdiv,u=a.newComment(d,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var N=k(u,b.replies,x,n+1);e?v():t()}if(m||!b.isResolved){F.style.display="none";var N=document.createElement("div");N.className="geCommentContainer";N.setAttribute("data-commentId",b.id);N.style.marginLeft=20*n+5+"px";b.isResolved&&!Editor.isDarkMode()&&(N.style.backgroundColor="ghostWhite");
var C=document.createElement("div");C.className="geCommentHeader";var O=document.createElement("img");O.className="geCommentUserImg";O.src=b.user.pictureUrl||Editor.userImage;C.appendChild(O);O=document.createElement("div");O.className="geCommentHeaderTxt";C.appendChild(O);var H=document.createElement("div");H.className="geCommentUsername";mxUtils.write(H,b.user.displayName||"");O.appendChild(H);H=document.createElement("div");H.className="geCommentDate";H.setAttribute("data-commentId",b.id);f(b,
H);O.appendChild(H);N.appendChild(C);C=document.createElement("div");C.className="geCommentTxt";mxUtils.write(C,b.content||"");N.appendChild(C);b.isLocked&&(N.style.opacity="0.5");C=document.createElement("div");C.className="geCommentActions";var L=document.createElement("ul");L.className="geCommentActionsList";C.appendChild(L);u||b.isLocked||0!=n&&!t||v(mxResources.get("reply"),function(){y("",!0)},b.isResolved);O=a.getCurrentUser();null==O||O.id!=b.user.id||u||b.isLocked||(v(mxResources.get("edit"),
-function(){function d(){c(b,N,function(){g(N);b.editComment(b.content,function(){l(N)},function(b){k(N);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),v(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){g(N);b.deleteComment(function(a){if(!0===a){a=N.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=N.querySelectorAll(".geCommentAction");for(a=
-0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);l(N);N.style.opacity="0.5"}else{c=D(b).replies;for(a=0;a<c.length;a++)x.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}F.style.display=0==x.getElementsByTagName("div").length?"block":"none"}},function(b){k(N);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=n||v(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
+function(){function d(){c(b,N,function(){g(N);b.editComment(b.content,function(){l(N)},function(b){p(N);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),v(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){g(N);b.deleteComment(function(a){if(!0===a){a=N.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=N.querySelectorAll(".geCommentAction");for(a=
+0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);l(N);N.style.opacity="0.5"}else{c=D(b).replies;for(a=0;a<c.length;a++)x.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}F.style.display=0==x.getElementsByTagName("div").length?"block":"none"}},function(b){p(N);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=n||v(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=D(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),l=0;l<k.length;l++)k[l]!=c.parentNode&&(k[l].style.display=d);G||(e[g].style.display="none")}q()}b.isResolved?y(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):y(mxResources.get("markedAsResolved"),!1,c,!0)});N.appendChild(C);null!=e?x.insertBefore(N,e.nextSibling):x.appendChild(N);for(e=0;null!=b.replies&&e<b.replies.length;e++)C=b.replies[e],C.isResolved=b.isResolved,p(C,b.replies,null,n+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,N,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return N}}
+c,!1,!0):y(mxResources.get("markedAsResolved"),!1,c,!0)});N.appendChild(C);null!=e?x.insertBefore(N,e.nextSibling):x.appendChild(N);for(e=0;null!=b.replies&&e<b.replies.length;e++)C=b.replies[e],C.isResolved=b.isResolved,k(C,b.replies,null,n+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,N,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return N}}
var u=!a.canComment(),t=a.canReplyToReplies(),A=null,y=document.createElement("div");y.className="geCommentsWin";y.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var I=EditorUi.compactUi?"26px":"30px",x=document.createElement("div");x.className="geCommentsList";x.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";x.style.bottom=parseInt(I)+7+"px";y.appendChild(x);var F=document.createElement("span");F.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(F,mxResources.get("noCommentsFound"));var H=document.createElement("div");H.className="geToolbarContainer geCommentsToolbar";H.style.height=I;H.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";I=document.createElement("a");I.className="geButton";if(!u){var L=I.cloneNode();L.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';L.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(L,"click",function(b){function d(){c(e,f,function(b){g(f);a.addComment(b,function(a){b.id=a;J.push(b);l(f)},function(b){k(f);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=a.newComment("",a.getCurrentUser()),f=p(e,J,null,0);d();b.preventDefault();mxEvent.consume(b)});H.appendChild(L)}L=I.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
+"...");mxEvent.addListener(L,"click",function(b){function d(){c(e,f,function(b){g(f);a.addComment(b,function(a){b.id=a;J.push(b);l(f)},function(b){p(f);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=a.newComment("",a.getCurrentUser()),f=k(e,J,null,0);d();b.preventDefault();mxEvent.consume(b)});H.appendChild(L)}L=I.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
var G=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(a){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";D();a.preventDefault();mxEvent.consume(a)});H.appendChild(L);a.commentsRefreshNeeded()&&(L=I.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(a){D();
a.preventDefault();mxEvent.consume(a)}),H.appendChild(L));a.commentsSaveNeeded()&&(I=I.cloneNode(),I.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',I.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(I.style.filter="invert(100%)"),mxEvent.addListener(I,"click",function(a){n();a.preventDefault();mxEvent.consume(a)}),H.appendChild(I));y.appendChild(H);var J=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
var b=A.div.querySelector(".geCommentEditTxtArea"),d=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);d.parentNode.removeChild(d)}catch(N){a.handleError(N)}x.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";t=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});x.innerHTML="";x.appendChild(F);F.style.display="block";J=a;for(a=0;a<J.length;a++)b(J[a].replies),p(J[a],J,null,0,G);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){x.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
+new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});x.innerHTML="";x.appendChild(F);F.style.display="block";J=a;for(a=0;a<J.length;a++)b(J[a].replies),k(J[a],J,null,0,G);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){x.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
": "+a.message:""));this.hasError=!0})):x.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;H=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(f(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=x.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var e=b[d];c[e.getAttribute("data-commentId")]=e}for(d=0;d<J.length;d++)a(J[d])}});setInterval(H,6E4);this.refreshCommentsTime=H;this.window=
new mxWindow(mxResources.get("comments"),y,b,e,d,m,!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(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var M=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",M);this.destroy=function(){mxEvent.removeListener(window,"resize",M);this.window.destroy()}},ConfirmDialog=function(a,b,e,
-d,m,n,q,c,f,g,k){var l=document.createElement("div");l.style.textAlign="center";k=null!=k?k:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=k+"px";p.style.lineHeight="1.2em";mxUtils.write(p,b);l.appendChild(p);null!=g&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",g),p.appendChild(b),l.appendChild(p));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
+d,m,n,q,c,f,g,p){var l=document.createElement("div");l.style.textAlign="center";p=null!=p?p:44;var k=document.createElement("div");k.style.padding="6px";k.style.overflow="auto";k.style.maxHeight=p+"px";k.style.lineHeight="1.2em";mxUtils.write(k,b);l.appendChild(k);null!=g&&(k=document.createElement("div"),k.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",g),k.appendChild(b),l.appendChild(k));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
"nowrap";var u=document.createElement("input");u.setAttribute("type","checkbox");n=mxUtils.button(n||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(u.checked)});n.className="geBtn";null!=c&&(n.innerHTML=c+"<br>"+n.innerHTML,n.style.paddingBottom="8px",n.style.paddingTop="8px",n.style.height="auto",n.style.width="40%");a.editor.cancelFirst&&g.appendChild(n);var t=mxUtils.button(m||mxResources.get("ok"),function(){a.hideDialog();null!=e&&e(u.checked)});g.appendChild(t);null!=q?(t.innerHTML=
-q+"<br>"+t.innerHTML+"<br>",t.style.paddingBottom="8px",t.style.paddingTop="8px",t.style.height="auto",t.className="geBtn",t.style.width="40%"):t.className="geBtn gePrimaryBtn";a.editor.cancelFirst||g.appendChild(n);l.appendChild(g);f?(g.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(u),m=document.createElement("span"),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),p.appendChild(m),l.appendChild(p),mxEvent.addListener(m,
+q+"<br>"+t.innerHTML+"<br>",t.style.paddingBottom="8px",t.style.paddingTop="8px",t.style.height="auto",t.className="geBtn",t.style.width="40%"):t.className="geBtn gePrimaryBtn";a.editor.cancelFirst||g.appendChild(n);l.appendChild(g);f?(g.style.marginTop="10px",k=document.createElement("p"),k.style.marginTop="20px",k.style.marginBottom="0px",k.appendChild(u),m=document.createElement("span"),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),k.appendChild(m),l.appendChild(k),mxEvent.addListener(m,
"click",function(a){u.checked=!u.checked;mxEvent.consume(a)})):g.style.marginTop="12px";this.init=function(){t.focus()};this.container=l};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
@@ -3739,7 +3741,7 @@ this.hideCurrentMenu();if(!mxEvent.isTouchEvent(n)||!d){var q=new mxPopupMenu(th
EditorUi.prototype.getLinkForPage=function(a,b,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=this.getCurrentFile();if(null!=d&&d.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var m=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),m=m+((0==m.length?"?":"&")+"page-id="+a.getId());null!=b&&(m+="&"+b.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
EditorUi.drawHost:"https://"+window.location.host)+"/"+m+"#"+d.getHash()}}return null};
EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){var m=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);null!=this.getLinkForPage(a)&&(e.addSeparator(d),e.addItem(mxResources.get("link"),
-null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,c,e,g,k){b=this.createUrlParameters(b,d,c,e,g,k);c||b.push("hide-pages=1");m.isSelectionEmpty()||(c=m.getBoundingBox(m.getSelectionCells()),d=m.view.translate,g=m.view.scale,c.width/=g,c.height/=g,c.x=c.x/g-d.x,c.y=c.y/g-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(c.x),y:Math.round(c.y),width:Math.round(c.width),height:Math.round(c.height),border:100}))));
+null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,c,e,g,p){b=this.createUrlParameters(b,d,c,e,g,p);c||b.push("hide-pages=1");m.isSelectionEmpty()||(c=m.getBoundingBox(m.getSelectionCells()),d=m.view.translate,g=m.view.scale,c.width/=g,c.height/=g,c.x=c.x/g-d.x,c.y=c.y/g-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(c.x),y:Math.round(c.y),width:Math.round(c.width),height:Math.round(c.height),border:100}))));
e=new EmbedDialog(this,this.getLinkForPage(a,b,e));this.showDialog(e.container,440,240,!0,!0);e.init()}))})));e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(d),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
!0,!0))}),d))})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
@@ -3754,11 +3756,11 @@ null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.ge
a.geometry.height+10:-f[1].geometry.height-10)*n;var p=t.getOutgoingTreeEdges(t.model.getTerminal(e[0],!0));if(null!=p){for(var q=g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH,x=k=e=0;x<p.length;x++){var v=t.model.getTerminal(p[x],!1);if(g==c(v)){var u=t.view.getState(v);v!=a&&null!=u&&(q&&b!=u.getCenterX()<l.getCenterX()||!q&&b!=u.getCenterY()<l.getCenterY())&&mxUtils.intersects(m,u)&&(e=10+Math.max(e,(Math.min(m.x+m.width,u.x+u.width)-Math.max(m.x,u.x))/n),k=10+Math.max(k,(Math.min(m.y+
m.height,u.y+u.height)-Math.max(m.y,u.y))/n))}}q?k=0:e=0;for(x=0;x<p.length;x++)if(v=t.model.getTerminal(p[x],!1),g==c(v)&&(u=t.view.getState(v),v!=a&&null!=u&&(q&&b!=u.getCenterX()<l.getCenterX()||!q&&b!=u.getCenterY()<l.getCenterY()))){var D=[];t.traverse(u.cell,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&D.push(b);(null==b||c)&&D.push(a);return null==b||c});t.moveCells(D,(b?1:-1)*e,(b?1:-1)*k)}}}return t.addCells(f,d)}finally{t.model.endUpdate()}}function g(a){t.model.beginUpdate();try{var b=
c(a),d=t.getIncomingTreeEdges(a),e=t.cloneCells([d[0],a]);t.model.setTerminal(d[0],e[1],!1);t.model.setTerminal(e[0],e[1],!0);t.model.setTerminal(e[0],a,!1);var f=t.model.getParent(a),g=f.geometry,k=[];t.view.currentRoot!=f&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);t.traverse(a,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});var l=a.geometry.width+40,n=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?l=0:b==mxConstants.DIRECTION_NORTH?
-(l=0,n=-n):b==mxConstants.DIRECTION_WEST?(l=-l,n=0):b==mxConstants.DIRECTION_EAST&&(n=0);t.moveCells(k,l,n);return t.addCells(e,f)}finally{t.model.endUpdate()}}function k(a,b){t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=c(a);0==e.length&&(e=[t.createEdge(d,null,"",null,null,t.createCurrentEdgeStyle())],f=b);var g=t.cloneCells([e[0],a]);t.model.setTerminal(g[0],a,!0);if(null==t.model.getTerminal(g[0],!1)){t.model.setTerminal(g[0],g[1],!1);var k=t.getCellStyle(g[1]).newEdgeStyle;
+(l=0,n=-n):b==mxConstants.DIRECTION_WEST?(l=-l,n=0):b==mxConstants.DIRECTION_EAST&&(n=0);t.moveCells(k,l,n);return t.addCells(e,f)}finally{t.model.endUpdate()}}function p(a,b){t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=c(a);0==e.length&&(e=[t.createEdge(d,null,"",null,null,t.createCurrentEdgeStyle())],f=b);var g=t.cloneCells([e[0],a]);t.model.setTerminal(g[0],a,!0);if(null==t.model.getTerminal(g[0],!1)){t.model.setTerminal(g[0],g[1],!1);var k=t.getCellStyle(g[1]).newEdgeStyle;
if(null!=k)try{var l=JSON.parse(k),n;for(n in l)t.setCellStyles(n,l[n],[g[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==l[n]&&t.setCellStyles("elbow",f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[g[0]])}catch(ca){}}var e=t.getOutgoingTreeEdges(a),m=d.geometry,k=[];t.view.currentRoot==d&&(m=new mxRectangle);for(l=0;l<e.length;l++){var p=t.model.getTerminal(e[l],!1);null!=p&&k.push(p)}var q=t.view.getBounds(k),x=t.view.translate,v=t.view.scale;f==mxConstants.DIRECTION_SOUTH?
(g[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-g[1].geometry.width)/2:(q.x+q.width)/v-x.x-m.x+10,g[1].geometry.y+=g[1].geometry.height-m.y+40):f==mxConstants.DIRECTION_NORTH?(g[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-g[1].geometry.width)/2:(q.x+q.width)/v-x.x+-m.x+10,g[1].geometry.y-=g[1].geometry.height+m.y+40):(g[1].geometry.x=f==mxConstants.DIRECTION_WEST?g[1].geometry.x-(g[1].geometry.width+m.x+40):g[1].geometry.x+(g[1].geometry.width-m.x+40),g[1].geometry.y=null==q?a.geometry.y+
(a.geometry.height-g[1].geometry.height)/2:(q.y+q.height)/v-x.y+-m.y+10);return t.addCells(g,d)}finally{t.model.endUpdate()}}function l(a,b,c){a=t.getOutgoingTreeEdges(a);c=t.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=t.view.getState(t.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
-c.y-c.height})}return d}function p(a,b){var d=c(a),e=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST)==e&&d!=b?u.actions.get("selectParent").funct():d==b?(e=t.getOutgoingTreeEdges(a),null!=e&&0<e.length&&t.setSelectionCell(t.model.getTerminal(e[0],!1))):(d=t.getIncomingTreeEdges(a),null!=d&&0<d.length&&(e=l(t.model.getTerminal(d[0],!0),e,a),d=t.view.getState(a),null!=d&&(d=mxUtils.indexOf(e,d),0<=d&&(d+=b==mxConstants.DIRECTION_NORTH||
+c.y-c.height})}return d}function k(a,b){var d=c(a),e=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST)==e&&d!=b?u.actions.get("selectParent").funct():d==b?(e=t.getOutgoingTreeEdges(a),null!=e&&0<e.length&&t.setSelectionCell(t.model.getTerminal(e[0],!1))):(d=t.getIncomingTreeEdges(a),null!=d&&0<d.length&&(e=l(t.model.getTerminal(d[0],!0),e,a),d=t.view.getState(a),null!=d&&(d=mxUtils.indexOf(e,d),0<=d&&(d+=b==mxConstants.DIRECTION_NORTH||
b==mxConstants.DIRECTION_WEST?-1:1,0<=d&&d<=e.length-1&&t.setSelectionCell(e[d].cell)))))}var u=this,t=u.editor.graph,A=t.getModel(),y=u.menus.createPopupMenu;u.menus.createPopupMenu=function(b,c,d){y.apply(this,arguments);if(1==t.getSelectionCount()){c=t.getSelectionCell();var e=t.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(t.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(t.getSelectionCell())?(b.addSeparator(),
0<t.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d)):0<t.model.getEdgeCount(c)&&this.addMenuItems(b,["selectConnections"],null,d)}};u.actions.addAction("selectChildren",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(t.model.getTerminal(a[c],!1));t.setSelectionCells(b)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(t.isEnabled()&&
1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=t.getOutgoingTreeEdges(t.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(t.model.getTerminal(a[c],!1));t.setSelectionCells(b)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getIncomingTreeEdges(a);null!=a&&0<a.length&&t.setSelectionCell(t.model.getTerminal(a[0],
@@ -3769,9 +3771,9 @@ t.getIncomingTreeEdges(k[e]),g=t.getIncomingTreeEdges(b[e]);if(0==l.length&&0<g.
!0)){f=t.model.getParent(b[p]);break}if(null!=n&&f!=n&&null!=this.view.getState(b[0])){var q=t.getIncomingTreeEdges(b[0]);if(0<q.length){var x=t.view.getState(t.model.getTerminal(q[0],!0));if(null!=x){var u=t.view.getState(n);null!=u&&(c=(u.getCenterX()-x.getCenterX())/t.view.scale,d=(u.getCenterY()-x.getCenterY())/t.view.scale)}}}}l=F.apply(this,arguments);if(null!=l&&null!=b&&l.length==b.length)for(p=0;p<l.length;p++)if(this.model.isEdge(l[p]))a(n)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[p],
!0))&&this.model.setTerminal(l[p],n,!0);else if(a(b[p])&&(q=t.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(n)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],n,!0);else if(0==t.getIncomingTreeEdges(l[p]).length){m=n;if(null==m||m==t.model.getParent(b[p]))m=t.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,t.getDefaultParent(),m,l[p])}}finally{this.model.endUpdate()}return l};if(null!=u.sidebar){var H=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
function(b,c,d,e){var f=t.model,g=null;f.beginUpdate();try{if(g=H.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var l=t.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var L={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=u.onKeyDown;u.onKeyDown=function(b){try{if(t.isEnabled()&&
-!t.isEditing()&&a(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingTreeEdges(t.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?g(t.getSelectionCell()):k(t.getSelectionCell()):13==b.which&&(c=f(t.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=c&&0<c.length)1==c.length&&t.model.isEdge(c[0])?t.setSelectionCell(t.model.getTerminal(c[0],!1)):t.setSelectionCell(c[c.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(t.view.getState(t.getSelectionCell())),
-t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=L[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(p(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(p(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(p(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(p(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(b))}}catch(B){u.handleError(B)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var J=t.connectVertex;t.connectVertex=function(b,d,e,l,n,m,p){var q=t.getIncomingTreeEdges(b);if(a(b)){var x=c(b),u=x==mxConstants.DIRECTION_EAST||x==mxConstants.DIRECTION_WEST,v=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return x==d||0==q.length?k(b,d):u==v?g(b):f(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};t.getSubtree=function(c){var d=
+!t.isEditing()&&a(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingTreeEdges(t.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?g(t.getSelectionCell()):p(t.getSelectionCell()):13==b.which&&(c=f(t.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=c&&0<c.length)1==c.length&&t.model.isEdge(c[0])?t.setSelectionCell(t.model.getTerminal(c[0],!1)):t.setSelectionCell(c[c.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(t.view.getState(t.getSelectionCell())),
+t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=L[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(k(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(k(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(k(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(k(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(b))}}catch(B){u.handleError(B)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var J=t.connectVertex;t.connectVertex=function(b,d,e,k,l,n,m){var q=t.getIncomingTreeEdges(b);if(a(b)){var x=c(b),u=x==mxConstants.DIRECTION_EAST||x==mxConstants.DIRECTION_WEST,v=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return x==d||0==q.length?p(b,d):u==v?g(b):f(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};t.getSubtree=function(c){var d=
[c];!b(c)&&!a(c)||q(c)||t.traverse(c,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!q(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(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);
this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(a)})))};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 O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){O.apply(this,
@@ -3780,15 +3782,15 @@ function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimla
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);a.insert(d);a.insert(b);a.insert(c);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-e.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;b.insertEdge(k,!0);e.insertEdge(k,!1);var l=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-l.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);l.insertEdge(m,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-u.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");t.geometry.relative=!0;t.edge=!0;b.insertEdge(t,!0);u.insertEdge(t,!1);a.insert(d);a.insert(k);a.insert(m);a.insert(t);a.insert(b);a.insert(c);a.insert(e);a.insert(l);a.insert(u);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
+e.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);e.insertEdge(m,!1);var l=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+l.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;b.insertEdge(k,!0);l.insertEdge(k,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+u.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");t.geometry.relative=!0;t.edge=!0;b.insertEdge(t,!0);u.insertEdge(t,!1);a.insert(d);a.insert(m);a.insert(k);a.insert(t);a.insert(b);a.insert(c);a.insert(e);a.insert(l);a.insert(u);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
a.vertex=!0;var d=new mxCell("Organization",new mxGeometry(80,40,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.setAttributeForCell(d,"treeRoot","1");d.vertex=!0;var c=new mxCell("Division",new mxGeometry(20,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
-c.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;d.insertEdge(e,!0);c.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
-k.geometry.relative=!0;k.edge=!0;d.insertEdge(k,!0);g.insertEdge(k,!1);a.insert(e);a.insert(k);a.insert(d);a.insert(c);a.insert(g);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.setAttributeForCell(a,"treeRoot",
+c.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;d.insertEdge(e,!0);c.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');g.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
+m.geometry.relative=!0;m.edge=!0;d.insertEdge(m,!0);g.insertEdge(m,!1);a.insert(e);a.insert(m);a.insert(d);a.insert(c);a.insert(g);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.setAttributeForCell(a,"treeRoot",
"1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");d.geometry.setTerminalPoint(new mxPoint(110,-40),!0);d.geometry.relative=
@@ -3819,13 +3821,13 @@ document.body.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";n.in
(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var n=document.createElement("style");n.type="text/css";n.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(n);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
function(){return!1};var q=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");q.apply(this,arguments)};var c=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){c.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var f=
Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):f.apply(this,arguments)};var g=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){g.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+a.style.display;a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage=
-"url("+Editor.userImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";a.style.cssFloat="right";a.setAttribute("title",mxResources.get("changeUser"));"none"!=a.style.display&&(a.style.display="inline-block")}};var k=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){k.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText=
+"url("+Editor.userImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";a.style.cssFloat="right";a.setAttribute("title",mxResources.get("changeUser"));"none"!=a.style.display&&(a.style.display="inline-block")}};var p=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){p.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText=
"display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage="url("+Editor.shareImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";"1"==urlParams.sketch&&(this.shareButton.style.display="none")}null!=this.buttonContainer&&(this.buttonContainer.style.marginTop="-2px",this.buttonContainer.style.paddingTop=
"4px")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");a.style.display="inline-block";a.style.position="relative";a.style.marginTop="6px";a.style.marginRight="4px";var b=document.createElement("a");b.className="geMenuItem gePrimaryBtn";b.style.marginLeft="8px";b.style.padding="6px";if("1"==urlParams.noSaveBtn){var c="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,c);b.setAttribute("title",
c);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),
b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),c="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,c),b.setAttribute("title",c),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),
a.appendChild(b));this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};var l=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,a)){var c=mxUtils.getOffset(this.editorUi.picker);c.x+=this.editorUi.picker.offsetWidth+4;c.y+=a.offsetTop-b.height/2+16;return c}var d=l.apply(this,arguments),c=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);d.x+=c.x-16;d.y+=
-c.y;return d};var p=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;p.apply(this,arguments);"1"==urlParams.sketch?d.isEnabled()&&(a.addSeparator(),1==d.getSelectionCount()?(null!=c&&mxEvent.isTouchEvent(c)&&this.addMenuItems(a,["edit"],null,c),this.addMenuItems(a,["-","lockUnlock"],null,c)):this.addSubmenu("view",a,null,mxResources.get("options"))):1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-",
+c.y;return d};var k=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;k.apply(this,arguments);"1"==urlParams.sketch?d.isEnabled()&&(a.addSeparator(),1==d.getSelectionCount()?(null!=c&&mxEvent.isTouchEvent(c)&&this.addMenuItems(a,["edit"],null,c),this.addMenuItems(a,["-","lockUnlock"],null,c)):this.addSubmenu("view",a,null,mxResources.get("options"))):1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-",
"editGeometry","edit"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-","lockUnlock","enterGroup"],null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",
a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(a,b,c){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(a,["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=
function(){return!0};var t=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=
@@ -3854,8 +3856,8 @@ p.insertBefore(g,m.statusContainer):p.appendChild(g);null!=f?(g.style.background
"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,m.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
"geItem"!=a.className||a.parentNode.removeChild(a);a=b}t=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"==urlParams.sketch)aa.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px";else if(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),d(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?K:null),f([b,d(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ta:null)],a?60:null),411<=e&&(f([la,sa],60),520<=e&&(f([va,640<=e?d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",P,ua):null,640<=e?d("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,da):null],60),720<=e))){var g=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);g.style.opacity=
-"0.4";m.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ba:ka)+")"}));null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,m.statusContainer):p.appendChild(g)}a=m.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==wa&&(b=q.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+
+null)],a?60:null),b=c("insert",!0,a?K:null),f([b,d(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ta:null)],a?60:null),411<=e&&(f([ma,sa],60),520<=e&&(f([va,640<=e?d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",P,ua):null,640<=e?d("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,da):null],60),720<=e))){var g=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:la);g.style.opacity=
+"0.4";m.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ba:la)+")"}));null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,m.statusContainer):p.appendChild(g)}a=m.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==wa&&(b=q.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+
")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",b.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(b),wa=b),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=wa&&(wa.parentNode.removeChild(wa),wa=null))}I.apply(this,arguments);this.doSetDarkMode(null!=
urlParams.dark?1==urlParams.dark:mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||
mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var l=this.formatWindow.window.toggleMinimized;
@@ -3866,37 +3868,37 @@ b+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus()
var k=m.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var E=m.menus.get("viewZoom"),K="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
Z="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,aa="1"==urlParams.sketch?document.createElement("div"):null;m.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()}));
Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=m.hoverIcons){var pa=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||pa.apply(this,arguments)}}if(null!=n.freehand){var ga=n.freehand.createStyle;n.freehand.createStyle=function(a){return ga.apply(this,arguments)+
-"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";Z.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var ma=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",a):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?ma(m.statusContainer.firstChild.getAttribute("title")):ma(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==
-mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",ma(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin="0px";aa.appendChild(S);m.statusContainer.style.position=
+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";Z.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var na=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",a):m.notificationBtn.removeAttribute("title"))});
+"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?na(m.statusContainer.firstChild.getAttribute("title")):na(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==
+mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",na(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin="0px";aa.appendChild(S);m.statusContainer.style.position=
"";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var V=document.createElement("a");V.style.padding="0px";V.style.boxShadow="none";V.className="geMenuItem";
-V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,na=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,e){a=d("",a.funct,null,c,a,e);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
+V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,oa=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,e){a=d("",a.funct,null,c,a,e);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
null!=c?c:"default";a.style.margin="2px 0px";Q.appendChild(a);mxUtils.br(Q);return a};b(m.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;sketch=1;shadow=1;size=20;fontSize=24;jiggle=2;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));b(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");b(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var a=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");
a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,0),!1);a.geometry.points=[];a.geometry.relative=!0;a.edge=!0;b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geometry.width=n.defaultEdgeLength+20;a.geometry.setTerminalPoint(new mxPoint(0,20),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,
20),!1);a=b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));a.style.borderBottom="1px solid lightgray";a.style.paddingBottom="14px";a.style.marginBottom="14px"})();a(m.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
var c=m.actions.get("toggleShapes");a(c,mxResources.get("shapes")+" ("+c.shortcut+")",K);a(m.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")}Q.appendChild(V)});
-mxEvent.addListener(V,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),ca=!1,na()):(Q.innerHTML="",Q.appendChild(V),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",
-Q.style.padding="0px",Q.style.height="24px",V.style.height="24px",V.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==)",V.setAttribute("title",mxResources.get("insert")),V.style.width="24px",ca=!0)}));na();m.addListener("darkModeChanged",mxUtils.bind(this,function(){na()}))}else m.editor.addListener("statusChanged",
+mxEvent.addListener(V,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),ca=!1,oa()):(Q.innerHTML="",Q.appendChild(V),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",
+Q.style.padding="0px",Q.style.height="24px",V.style.height="24px",V.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==)",V.setAttribute("title",mxResources.get("insert")),V.style.width="24px",ca=!0)}));oa();m.addListener("darkModeChanged",mxUtils.bind(this,function(){oa()}))}else m.editor.addListener("statusChanged",
mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=E){var T=function(a){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(a)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},P=m.actions.get("zoomIn"),ua="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
W=m.actions.get("zoomOut"),da="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
-ia=m.actions.get("resetView"),qa=m.actions.get("fullscreen"),R=m.actions.get("toggleDarkMode"),ka="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
+ja=m.actions.get("resetView"),qa=m.actions.get("fullscreen"),R=m.actions.get("toggleDarkMode"),la="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ba="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
-ja=m.actions.get("undo"),X=m.actions.get("redo"),la=d("",ja.funct,null,mxResources.get("undo")+" ("+ja.shortcut+")",ja,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),sa=d("",X.funct,null,mxResources.get("redo")+
-" ("+X.shortcut+")",X,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),va=d("",T,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",ia,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48cGF0aCBkPSJNNiwxNmgxMlY4SDZWMTZ6IE04LDEwaDh2NEg4VjEweiBNNCwxNUgydjNjMCwxLjEsMC45LDIsMiwyaDN2LTJINFYxNXogTTQsNmgzVjRINEMyLjksNCwyLDQuOSwyLDZ2M2gyVjZ6IE0yMCw0aC0zdjJoM3YzIGgyVjZDMjIsNC45LDIxLjEsNCwyMCw0eiBNMjAsMThoLTN2MmgzYzEuMSwwLDItMC45LDItMnYtM2gtMlYxOHoiLz48L2c+PC9zdmc+"),
-ia=d("",qa.funct,null,mxResources.get("fullscreen"),qa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==";
-if(null!=Z){var ya=m.actions.get("delete"),za=d("",ya.funct,null,mxResources.get("delete"),ya,ta);za.style.opacity="0.1";aa.appendChild(za);ya.addListener("stateChanged",function(){za.style.opacity=ya.enabled?"0.4":"0.1"});E=function(){la.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";sa.style.display=la.style.display;la.style.opacity=ja.enabled?"0.4":"0.1";sa.style.opacity=X.enabled?"0.4":"0.1"};aa.appendChild(la);aa.appendChild(sa);ja.addListener("stateChanged",
+ka=m.actions.get("undo"),X=m.actions.get("redo"),ma=d("",ka.funct,null,mxResources.get("undo")+" ("+ka.shortcut+")",ka,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),sa=d("",X.funct,null,mxResources.get("redo")+
+" ("+X.shortcut+")",X,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),va=d("",T,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",ja,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48cGF0aCBkPSJNNiwxNmgxMlY4SDZWMTZ6IE04LDEwaDh2NEg4VjEweiBNNCwxNUgydjNjMCwxLjEsMC45LDIsMiwyaDN2LTJINFYxNXogTTQsNmgzVjRINEMyLjksNCwyLDQuOSwyLDZ2M2gyVjZ6IE0yMCw0aC0zdjJoM3YzIGgyVjZDMjIsNC45LDIxLjEsNCwyMCw0eiBNMjAsMThoLTN2MmgzYzEuMSwwLDItMC45LDItMnYtM2gtMlYxOHoiLz48L2c+PC9zdmc+"),
+ja=d("",qa.funct,null,mxResources.get("fullscreen"),qa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==";
+if(null!=Z){var ya=m.actions.get("delete"),za=d("",ya.funct,null,mxResources.get("delete"),ya,ta);za.style.opacity="0.1";aa.appendChild(za);ya.addListener("stateChanged",function(){za.style.opacity=ya.enabled?"0.4":"0.1"});E=function(){ma.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";sa.style.display=ma.style.display;ma.style.opacity=ka.enabled?"0.4":"0.1";sa.style.opacity=X.enabled?"0.4":"0.1"};aa.appendChild(ma);aa.appendChild(sa);ka.addListener("stateChanged",
E);X.addListener("stateChanged",E);E();E=m.actions.get("outline");E=d("",E.funct,null,mxResources.get("outline"),E,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMC41IDNsLS4xNi4wM0wxNSA1LjEgOSAzIDMuMzYgNC45Yy0uMjEuMDctLjM2LjI1LS4zNi40OFYyMC41YzAgLjI4LjIyLjUuNS41bC4xNi0uMDNMOSAxOC45bDYgMi4xIDUuNjQtMS45Yy4yMS0uMDcuMzYtLjI1LjM2LS40OFYzLjVjMC0uMjgtLjIyLS41LS41LS41ek0xNSAxOWwtNi0yLjExVjVsNiAyLjExVjE5eiIvPjwvc3ZnPg==");
E.style.opacity="0.4";Z.appendChild(E);E=d("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,da);E.style.opacity="0.4";Z.appendChild(E);var S=document.createElement("div");S.innerHTML="100%";S.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");S.style.display="inline-block";S.style.cursor="pointer";S.style.textAlign="center";S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.verticalAlign=
-"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";Z.appendChild(S);mxEvent.addListener(S,"click",T);T=d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",P,ua);T.style.opacity="0.4";Z.appendChild(T);var Aa=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);Aa.style.opacity="0.4";Z.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
-ba:ka)+")"}));qa.visible&&(ia.style.opacity="0.4",Z.appendChild(ia));var ha=this.createPageMenuTab(!1);ha.style.display="none";ha.style.position="";ha.style.marginLeft="";ha.style.top="";ha.style.left="";ha.style.height="100%";ha.style.lineHeight="";ha.style.borderStyle="none";ha.style.padding="3px 0";ha.style.margin="0px";ha.style.background="";ha.style.border="";ha.style.boxShadow="none";ha.style.verticalAlign="top";ha.firstChild.style.height="100%";ha.firstChild.style.opacity="0.6";ha.firstChild.style.margin=
-"0px";Z.appendChild(ha);m.addListener("fileDescriptorChanged",function(){ha.style.display="1"==urlParams.pages||null!=m.pages&&1<m.pages.length?"inline-block":"none"});m.tabContainer.style.visibility="hidden";p.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;";aa.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;";
+"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";Z.appendChild(S);mxEvent.addListener(S,"click",T);T=d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",P,ua);T.style.opacity="0.4";Z.appendChild(T);var Aa=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:la);Aa.style.opacity="0.4";Z.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
+ba:la)+")"}));qa.visible&&(ja.style.opacity="0.4",Z.appendChild(ja));var ia=this.createPageMenuTab(!1);ia.style.display="none";ia.style.position="";ia.style.marginLeft="";ia.style.top="";ia.style.left="";ia.style.height="100%";ia.style.lineHeight="";ia.style.borderStyle="none";ia.style.padding="3px 0";ia.style.margin="0px";ia.style.background="";ia.style.border="";ia.style.boxShadow="none";ia.style.verticalAlign="top";ia.firstChild.style.height="100%";ia.firstChild.style.opacity="0.6";ia.firstChild.style.margin=
+"0px";Z.appendChild(ia);m.addListener("fileDescriptorChanged",function(){ia.style.display="1"==urlParams.pages||null!=m.pages&&1<m.pages.length?"inline-block":"none"});m.tabContainer.style.visibility="hidden";p.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;";aa.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;";
Z.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;";A.appendChild(aa);A.appendChild(Z);Q.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;";A.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,
"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(A)}else p.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",S=q.addMenu("100%",E.funct),S.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),S.style.whiteSpace="nowrap",S.style.paddingRight="10px",S.style.textDecoration="none",S.style.textDecoration="none",S.style.overflow="hidden",
S.style.visibility="hidden",S.style.textAlign="center",S.style.cursor="pointer",S.style.height=parseInt(m.tabContainerHeight)-1+"px",S.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px",S.style.position="absolute",S.style.display="block",S.style.fontSize="12px",S.style.width="59px",S.style.right="0px",S.style.bottom="0px",S.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",S.style.backgroundPosition="right 6px center",S.style.backgroundRepeat="no-repeat",A.appendChild(S);qa=mxUtils.bind(this,
function(){S.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,qa);m.editor.addListener("resetGraphView",qa);m.editor.addListener("pageSelected",qa);var Ba=m.setGraphEnabled;m.setGraphEnabled=function(){Ba.apply(this,arguments);null!=this.tabContainer&&(S.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==Z?this.tabContainerHeight+"px":"0px")}}A.appendChild(p);
A.appendChild(m.diagramContainer);k.appendChild(A);m.updateTabContainer();null==Z&&A.appendChild(m.tabContainer);var wa=null;g();mxEvent.addListener(window,"resize",function(){g();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.tagsWindow&&m.menus.tagsWindow.window.fit();null!=m.menus.findWindow&&m.menus.findWindow.window.fit();
-null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,m,n,q){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=m;this.isResolved=n;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,m){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,m){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=m};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.\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\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 occured 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\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;
+null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,m,n,q){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=m;this.isResolved=n;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,m){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,m){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=m};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.\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 occured 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\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(a,b,e){this.init(a,b,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?28:30;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;
GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -3905,12 +3907,12 @@ this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.forceCenter=null!=this.g
this.pageId=this.graphConfig.pageId;this.editor=null;"inline"==this.graphConfig["toolbar-position"]&&(this.minHeight+=this.toolbarHeight);if(null!=b&&(this.xmlDocument=b.ownerDocument,this.xmlNode=b,this.xml=mxUtils.getXml(b),null!=a)){var d=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.enableFlowAnimation=!0;this.graph.defaultPageBackgroundColor="transparent";this.graph.transparentBackground=!1;if(this.responsive&&this.graph.dialect==mxConstants.DIALECT_SVG){var d=this.graph.view.getDrawPane().ownerSVGElement;
this.graph.view.getCanvas();null!=this.graphConfig.border?d.style.padding=this.graphConfig.border+"px":""==a.style.padding&&(d.style.padding="8px");d.style.boxSizing="border-box";d.style.overflow="visible";this.graph.fit=function(){};this.graph.sizeDidChange=function(){var a=this.view.graphBounds,b=this.view.translate;d.setAttribute("viewBox",a.x+b.x-this.panDx+" "+(a.y+b.y-this.panDy)+" "+(a.width+1)+" "+(a.height+1));this.container.style.backgroundColor=d.style.backgroundColor;this.fireEvent(new mxEventObject(mxEvent.SIZE,
"bounds",a))}}this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);1==this.graphConfig["toolbar-nohide"]&&(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);
-this.xmlNode!=b&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var c=this;this.graph.getImageFromBundles=function(a){return c.getImageUrl(a)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var e=this.xmlNode.getElementsByTagName("diagram");if(0<e.length){if(null!=this.pageId)for(var g=0;g<e.length;g++)if(this.pageId==e[g].getAttribute("id")){this.currentPage=g;break}var k=this.graph.getGlobalVariable,
-c=this;this.graph.getGlobalVariable=function(a){var b=e[c.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(c.currentPage+1):"pagenumber"==a?c.currentPage+1:"pagecount"==a?e.length:k.apply(this,arguments)}}}this.diagrams=[];var l=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==
+this.xmlNode!=b&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var c=this;this.graph.getImageFromBundles=function(a){return c.getImageUrl(a)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var e=this.xmlNode.getElementsByTagName("diagram");if(0<e.length){if(null!=this.pageId)for(var g=0;g<e.length;g++)if(this.pageId==e[g].getAttribute("id")){this.currentPage=g;break}var m=this.graph.getGlobalVariable,
+c=this;this.graph.getGlobalVariable=function(a){var b=e[c.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(c.currentPage+1):"pagenumber"==a?c.currentPage+1:"pagecount"==a?e.length:m.apply(this,arguments)}}}this.diagrams=[];var l=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==
a){this.selectPage(c);b=!0;break}return b};g=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=l&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),l=this.xmlNode)});this.addListener("xmlNodeChanged",g);g();urlParams.page=c.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.view.scale=this.graphConfig.zoom||1,g=this.setLayersVisible(),
this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||(this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);
null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.forceCenter||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);
-this.graph.customLinkClicked=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");c.selectPageById(a.substring(b+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(a);return!0};var m=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return m.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;
+this.graph.customLinkClicked=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");c.selectPageById(a.substring(b+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(a);return!0};var k=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return k.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;
if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var m=this.getObservableParent(a),n=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(n.disconnect(),d())}));n.observe(m,{attributes:!0})}else d()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};
GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};GraphViewer.prototype.setXmlNode=function(a){a=this.editor.extractGraphModel(a,!0);this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))};
GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))};
@@ -3926,22 +3928,22 @@ this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWi
d);var q=mxUtils.bind(this,function(c){var d=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");var e=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=a.style.height&&this.autoFit?a.offsetHeight:void 0;0<a.offsetWidth&&null==c&&this.allowZoomOut&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>e)?(c=null,null!=e&&b.height+2*this.graph.border>e-2&&(c=(e-2*this.graph.border-2)/b.height),this.fitGraph(c)):this.widthIsEmpty||
null!=c||0!=this.graphConfig.resize||""==a.style.height?(c=null!=c?c:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-b.x/this.graph.view.scale)+c.x,Math.floor(this.graph.border-b.y/this.graph.view.scale)+c.y),m=a.offsetWidth):this.graph.center((!this.widthIsEmpty||b.width<this.minWidth)&&1!=this.graphConfig.resize);a.style.minWidth=d});8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(a){b=this.graph.getGraphBounds();m=null;q(a)}};
GraphViewer.prototype.crop=function(){var a=this.graph,b=a.getGraphBounds(),e=a.border,d=a.view.scale;a.view.setTranslate(null!=b.x?Math.floor(a.view.translate.x-b.x/d+e):e,null!=b.y?Math.floor(a.view.translate.y-b.y/d+e):e)};GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.forceCenter||this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)a.style.height=b+"px"};
-GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,m=null!=d&&0<d.length,n=!1;if(0<e.length||m||null!=b){var q=null!=b?b.getModel():null,n=a.getModel();n.beginUpdate();try{var c=n.getChildCount(n.root);if(null==q){var q=!1,f={};if(m)for(var g=0;g<d.length;g++){var k=n.getCell(d[g]);null!=k&&(q=!0,f[k.id]=!0)}else for(g=0;g<e.length;g++)k=n.getChildAt(n.root,parseInt(e[g])),null!=k&&(q=!0,f[k.id]=!0);for(g=
-0;q&&g<c;g++)k=n.getChildAt(n.root,g),n.setVisible(k,f[k.id]||!1)}else for(g=0;g<c;g++)n.setVisible(n.getChildAt(n.root,g),q.isVisible(q.getChildAt(q.root,g)))}finally{n.endUpdate()}n=!0}return n};
+GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,m=null!=d&&0<d.length,n=!1;if(0<e.length||m||null!=b){var q=null!=b?b.getModel():null,n=a.getModel();n.beginUpdate();try{var c=n.getChildCount(n.root);if(null==q){var q=!1,f={};if(m)for(var g=0;g<d.length;g++){var p=n.getCell(d[g]);null!=p&&(q=!0,f[p.id]=!0)}else for(g=0;g<e.length;g++)p=n.getChildAt(n.root,parseInt(e[g])),null!=p&&(q=!0,f[p.id]=!0);for(g=
+0;q&&g<c;g++)p=n.getChildAt(n.root,g),n.setVisible(p,f[p.id]||!1)}else for(g=0;g<c;g++)n.setVisible(n.getChildAt(n.root,g),q.isVisible(q.getChildAt(q.root,g)))}finally{n.endUpdate()}n=!0}return n};
GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var f=document.createElement("div");f.style.borderRight="1px solid #d0d0d0";f.style.padding="3px 6px 3px 6px";mxEvent.addListener(f,"click",a);null!=c&&f.setAttribute("title",c);f.style.display="inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(f,"mouseenter",function(){f.style.backgroundColor="#ddd"}),mxEvent.addListener(f,"mouseleave",function(){f.style.backgroundColor=
-"#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);e.appendChild(f);k++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";e.style.whiteSpace="nowrap";e.style.textAlign=
+"#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);e.appendChild(f);p++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";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 d=null,m=null,n=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=m&&(window.clearTimeout(m),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,0);d=
null;m=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";m=null}),100)}),a||200)}),q=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=m&&(window.clearTimeout(m),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(q(30),n())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":"mousemove",
function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){q(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){q(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||q(30)}));var c=this.graph,f=c.getTolerance();c.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=c.container.scrollLeft;
-this.scrollTop=c.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-c.container.scrollLeft)<f&&Math.abs(this.scrollTop-c.container.scrollTop)<f&&Math.abs(this.startX-b.getGraphX())<f&&Math.abs(this.startY-b.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():q(30))}})}for(var g=this.toolbarItems,k=0,l=null,p=null,u=0;u<g.length;u++){var t=g[u];if("pages"==t){p=b.ownerDocument.createElement("div");p.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
-mxUtils.setOpacity(p,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(p);var y=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");y.style.paddingLeft="0px";y.style.paddingRight="0px";t=mxUtils.bind(this,function(){p.innerHTML=
-"";mxUtils.write(p,this.currentPage+1+" / "+this.diagrams.length);p.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=p.style.display;y.style.display=p.style.display});this.addListener("graphChanged",t);t()}else if("zoom"==t)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,
+this.scrollTop=c.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-c.container.scrollLeft)<f&&Math.abs(this.scrollTop-c.container.scrollTop)<f&&Math.abs(this.startX-b.getGraphX())<f&&Math.abs(this.startY-b.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():q(30))}})}for(var g=this.toolbarItems,p=0,l=null,k=null,u=0;u<g.length;u++){var t=g[u];if("pages"==t){k=b.ownerDocument.createElement("div");k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
+mxUtils.setOpacity(k,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(k);var y=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");y.style.paddingLeft="0px";y.style.paddingRight="0px";t=mxUtils.bind(this,function(){k.innerHTML=
+"";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=k.style.display;y.style.display=k.style.display});this.addListener("graphChanged",t);t()}else if("zoom"==t)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(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"==t){if(this.layersEnabled){var I=this.graph.getModel(),x=a(mxUtils.bind(this,function(a){if(null!=l)l.parentNode.removeChild(l),l=null;else{l=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var a=this.graph.getGraphBounds(),
b=this.graph.view;0>a.x||0>a.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:b.translate.clone(),scale:b.scale}):null!=this.graph.originalViewState&&0<a.x/b.scale+this.graph.originalViewState.translate.x-b.translate.x&&0<a.y/b.scale+this.graph.originalViewState.translate.y-b.translate.y&&(b.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState=
{translate:b.translate.clone(),scale:b.scale})}}));mxEvent.addListener(l,"mouseleave",function(){l.parentNode.removeChild(l);l=null});a=x.getBoundingClientRect();l.style.width="140px";l.style.padding="2px 0px 2px 0px";l.style.border="1px solid #d0d0d0";l.style.backgroundColor="#eee";l.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";l.style.fontSize="11px";l.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(l,80);var b=mxUtils.getDocumentScrollOrigin(document);l.style.left=b.x+
a.left-1+"px";l.style.top=b.y+a.bottom-2+"px";document.body.appendChild(l)}}),Editor.layersImage,mxResources.get("layers")||"Layers");I.addListener(mxEvent.CHANGE,function(){x.style.display=1<I.getChildCount(I.root)?"inline-block":"none"});x.style.display=1<I.getChildCount(I.root)?"inline-block":"none"}}else"lightbox"==t?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(t=this.graphConfig["toolbar-buttons"][t],
-null!=t&&(t.elem=a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*k);null!=this.graphConfig.title&&(g=b.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),
-mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=g);this.minToolbarWidth=34*k;var F=b.style.border,H=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},
+null!=t&&(t.elem=a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*p);null!=this.graphConfig.title&&(g=b.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),
+mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=g);this.minToolbarWidth=34*p;var F=b.style.border,H=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},
a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==F&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=
l&&(l.parentNode.removeChild(l),l=null);b.style.border=F});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==l)return;a=a.parentNode}d()});mxEvent.addListener(document.body,"mouseleave",function(a){d()})}else e.style.top=-this.toolbarHeight+"px",b.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",H):H();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&
H()})).observe(b)};GraphViewer.prototype.disableButton=function(a){var b=this.graphConfig["toolbar-buttons"][a];null!=b&&(mxUtils.setOpacity(b.elem,30),mxEvent.removeListener(b.elem,"click",b.handler),mxEvent.addListener(b.elem,"mouseenter",function(){b.elem.style.backgroundColor="#eee"}))};
@@ -3966,7 +3968,7 @@ GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewe
(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function m(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function n(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function q(b,c){if(!b.resizedAttached)b.resizedAttached=
new m,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
b.appendChild(b.resizeSensor);"static"==n(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,l=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(l))};a(l);var p,q,L,G,J=function(){if((L=b.offsetWidth)!=p||(G=b.offsetHeight)!=q)k=!0,p=L,q=G;g()},D=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",J);D(f,"scroll",J)}var c=function(){GraphViewer.resizeSensorEnabled&&d()},f=Object.prototype.toString.call(e),g="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var f=0,k=e.length;f<k;f++)q(e[f],c);else q(e,c);this.detach=function(){if(g)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",J);D(f,"scroll",J)}var c=function(){GraphViewer.resizeSensorEnabled&&d()},f=Object.prototype.toString.call(e),g="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var f=0,p=e.length;f<p;f++)q(e[f],c);else q(e,c);this.detach=function(){if(g)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
function mxBpmnShape(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxBpmnShape,mxShape);
mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 5a8edaf7..37b6d35b 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");(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:"14.9.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.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:"14.9.2",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"),
@@ -305,12 +305,12 @@ STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"en
STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",
STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",
FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",
-ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,
-DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",
-PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};
-mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;
-mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};
-mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
+ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",
+DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",
+PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};
+mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;
+mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};
+mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
mxMouseEvent.prototype.consume=function(a){(null!=a?a:null!=this.evt.touches||mxEvent.isMouseEvent(this.evt))&&this.evt.preventDefault&&this.evt.preventDefault();mxClient.IS_IE&&(this.evt.returnValue=!0);this.consumed=!0};function mxEventSource(a){this.setEventSource(a)}mxEventSource.prototype.eventListeners=null;mxEventSource.prototype.eventsEnabled=!0;mxEventSource.prototype.eventSource=null;mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled};
mxEventSource.prototype.setEventsEnabled=function(a){this.eventsEnabled=a};mxEventSource.prototype.getEventSource=function(){return this.eventSource};mxEventSource.prototype.setEventSource=function(a){this.eventSource=a};mxEventSource.prototype.addListener=function(a,b){null==this.eventListeners&&(this.eventListeners=[]);this.eventListeners.push(a);this.eventListeners.push(b)};
mxEventSource.prototype.removeListener=function(a){if(null!=this.eventListeners)for(var b=0;b<this.eventListeners.length;)this.eventListeners[b+1]==a?this.eventListeners.splice(b,2):b+=2};
@@ -507,10 +507,11 @@ mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};mxSvgCanvas2D.prototype.getAlternateText=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=f?this.foAltText:null};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){a=this.getAlternateText(a,b,c,d,e,f,g,k,l,m,n,p,q);d=this.state;return null!=a&&0<d.fontSize?(k=k==mxConstants.ALIGN_TOP?1:k==mxConstants.ALIGN_BOTTOM?0:.3,e=g==mxConstants.ALIGN_RIGHT?"end":g==mxConstants.ALIGN_LEFT?"start":"middle",g=this.createElement("text"),g.setAttribute("x",Math.round(b+d.dx)),g.setAttribute("y",Math.round(c+d.dy+k*d.fontSize)),g.setAttribute("fill",d.fontColor||"black"),g.setAttribute("font-family",
d.fontFamily),g.setAttribute("font-size",Math.round(d.fontSize)+"px"),"start"!=e&&g.setAttribute("text-anchor",e),(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&g.setAttribute("font-weight","bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&g.setAttribute("font-style","italic"),b=[],(d.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(d.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),
-0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
+0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};
+mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":e==mxConstants.DIRECTION_RADIAL?c="r":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
-mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
-e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
+mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement(e==mxConstants.DIRECTION_RADIAL?"radialGradient":"linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");
+c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&(!a||null==d.fillColor)&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=
c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
@@ -2044,10 +2045,10 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,e){var d=a.getSelectionCellsForChanges(e.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var m=[],c=0;c<
d.length;c++)null!=a.view.getState(d[c])&&m.push(d[c]);a.setSelectionCells(m)}};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,e,d,m,n,q,c,f,g,k){var l=f?57:0,p=e,u=d,t=f?0:64,A=mxUtils.getDocumentSize();null!=window.innerHeight&&(A.height=window.innerHeight);var y=A.height,I=Math.max(1,Math.round((A.width-e-t)/2)),x=Math.max(1,Math.round((y-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-t):e;d=Math.min(d,y-t);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",
+function Dialog(a,b,e,d,m,n,q,c,f,g,p){var l=f?57:0,k=e,u=d,t=f?0:64,A=mxUtils.getDocumentSize();null!=window.innerHeight&&(A.height=window.innerHeight);var y=A.height,I=Math.max(1,Math.round((A.width-e-t)/2)),x=Math.max(1,Math.round((y-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-t):e;d=Math.min(d,y-t);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",
this.bg.style.background=Dialog.backdropColor,this.bg.style.height=y+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));A=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=A.x+"px";this.bg.style.top=A.y+"px";I+=A.x;x+=A.y;m&&document.body.appendChild(this.bg);var F=a.createDiv(f?"geTransDialog":"geDialog");m=this.getPosition(I,x,e,d);I=m.x;x=m.y;F.style.width=e+"px";F.style.height=d+"px";F.style.left=I+"px";F.style.top=x+"px";F.style.zIndex=
-this.zIndex;F.appendChild(b);document.body.appendChild(F);!c&&b.clientHeight>F.clientHeight-t&&(b.style.overflowY="auto");if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=x+14+"px",n.style.left=I+e+38-l+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=n,!k)){var H=!1;
-mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){H=!0}),null,mxUtils.bind(this,function(c){H&&(a.hideDialog(!0),H=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var f=g();null!=f&&(p=e=f.w,u=d=f.h)}f=mxUtils.getDocumentSize();y=f.height;this.bg.style.height=y+"px";I=Math.max(1,Math.round((f.width-e-t)/2));x=Math.max(1,Math.round((y-d-a.footerHeight)/3));e=null!=document.body?Math.min(p,document.body.scrollWidth-t):p;d=Math.min(u,y-t);f=this.getPosition(I,x,e,
+this.zIndex;F.appendChild(b);document.body.appendChild(F);!c&&b.clientHeight>F.clientHeight-t&&(b.style.overflowY="auto");if(n&&(n=document.createElement("img"),n.setAttribute("src",Dialog.prototype.closeImage),n.setAttribute("title",mxResources.get("close")),n.className="geDialogClose",n.style.top=x+14+"px",n.style.left=I+e+38-l+"px",n.style.zIndex=this.zIndex,mxEvent.addListener(n,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(n),this.dialogImg=n,!p)){var H=!1;
+mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){H=!0}),null,mxUtils.bind(this,function(c){H&&(a.hideDialog(!0),H=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var f=g();null!=f&&(k=e=f.w,u=d=f.h)}f=mxUtils.getDocumentSize();y=f.height;this.bg.style.height=y+"px";I=Math.max(1,Math.round((f.width-e-t)/2));x=Math.max(1,Math.round((y-d-a.footerHeight)/3));e=null!=document.body?Math.min(k,document.body.scrollWidth-t):k;d=Math.min(u,y-t);f=this.getPosition(I,x,e,
d);I=f.x;x=f.y;F.style.left=I+"px";F.style.top=x+"px";F.style.width=e+"px";F.style.height=d+"px";!c&&b.clientHeight>F.clientHeight-t&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=x+14+"px",this.dialogImg.style.left=I+e+38-l+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=F;a.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";
@@ -2057,42 +2058,42 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
"/locked.png";
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a,b){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,b))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(a,b,e,d,m,n,q,c,f,g,k){f=null!=f?f:!0;var l=document.createElement("div");l.style.textAlign="center";if(null!=b){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,b);p.setAttribute("title",b);l.appendChild(p)}b=
-document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;l.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=n&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();n()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=k&&k()}),g.className="geBtn",e.appendChild(g));var u=mxUtils.button(d,function(){f&&a.hideDialog();null!=m&&m()});
+var ErrorDialog=function(a,b,e,d,m,n,q,c,f,g,p){f=null!=f?f:!0;var l=document.createElement("div");l.style.textAlign="center";if(null!=b){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="10px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";k.style.whiteSpace="nowrap";k.style.textOverflow="ellipsis";k.style.overflow="hidden";mxUtils.write(k,b);k.setAttribute("title",b);l.appendChild(k)}b=
+document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;l.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=n&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();n()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=p&&p()}),g.className="geBtn",e.appendChild(g));var u=mxUtils.button(d,function(){f&&a.hideDialog();null!=m&&m()});
u.className="geBtn";e.appendChild(u);null!=q&&(d=mxUtils.button(q,function(){f&&a.hideDialog();null!=c&&c()}),d.className="geBtn gePrimaryBtn",e.appendChild(d));this.init=function(){u.focus()};l.appendChild(e);this.container=l},PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var f=c.checked||g.checked,b=parseInt(l.value)/100;isNaN(b)&&(b=1,l.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,p=1/e.pageScale;if(f){var n=c.checked?1:parseInt(k.value);isNaN(n)||(p=mxUtils.getScaleForPageCount(n,e,d))}e.getGraphBounds();var u=n=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);p*=b;!f&&e.pageVisible?(b=e.getPageLayout(),n-=b.x*d.width,u-=b.y*d.height):
-f=!0;f=PrintDialog.createPrintPreview(e,p,d,0,n,u,f);f.open();a&&PrintDialog.printPreview(f)}var e=a.editor.graph,d,m,n=document.createElement("table");n.style.width="100%";n.style.height="100%";var q=document.createElement("tbody");d=document.createElement("tr");var c=document.createElement("input");c.setAttribute("type","checkbox");m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(c);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
+PrintDialog.prototype.create=function(a){function b(a){var f=c.checked||g.checked,b=parseInt(l.value)/100;isNaN(b)&&(b=1,l.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(f){var n=c.checked?1:parseInt(p.value);isNaN(n)||(k=mxUtils.getScaleForPageCount(n,e,d))}e.getGraphBounds();var u=n=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);k*=b;!f&&e.pageVisible?(b=e.getPageLayout(),n-=b.x*d.width,u-=b.y*d.height):
+f=!0;f=PrintDialog.createPrintPreview(e,k,d,0,n,u,f);f.open();a&&PrintDialog.printPreview(f)}var e=a.editor.graph,d,m,n=document.createElement("table");n.style.width="100%";n.style.height="100%";var q=document.createElement("tbody");d=document.createElement("tr");var c=document.createElement("input");c.setAttribute("type","checkbox");m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(c);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
m.appendChild(f);mxEvent.addListener(f,"click",function(a){c.checked=!c.checked;g.checked=!c.checked;mxEvent.consume(a)});mxEvent.addListener(c,"change",function(){g.checked=!c.checked});d.appendChild(m);q.appendChild(d);d=d.cloneNode(!1);var g=document.createElement("input");g.setAttribute("type","checkbox");m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(g);f=document.createElement("span");mxUtils.write(f," "+mxResources.get("posterPrint")+":");m.appendChild(f);mxEvent.addListener(f,
-"click",function(a){g.checked=!g.checked;c.checked=!g.checked;mxEvent.consume(a)});d.appendChild(m);var k=document.createElement("input");k.setAttribute("value","1");k.setAttribute("type","number");k.setAttribute("min","1");k.setAttribute("size","4");k.setAttribute("disabled","disabled");k.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(k);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);q.appendChild(d);mxEvent.addListener(g,"change",
-function(){g.checked?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled");c.checked=!g.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var l=document.createElement("input");l.setAttribute("value","100 %");l.setAttribute("size","5");l.style.width="50px";m.appendChild(l);d.appendChild(m);q.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2;
-m.style.paddingTop="20px";m.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&m.appendChild(f);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";m.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";m.appendChild(p);a.editor.cancelFirst||
+"click",function(a){g.checked=!g.checked;c.checked=!g.checked;mxEvent.consume(a)});d.appendChild(m);var p=document.createElement("input");p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.setAttribute("size","4");p.setAttribute("disabled","disabled");p.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(p);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);q.appendChild(d);mxEvent.addListener(g,"change",
+function(){g.checked?p.removeAttribute("disabled"):p.setAttribute("disabled","disabled");c.checked=!g.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var l=document.createElement("input");l.setAttribute("value","100 %");l.setAttribute("size","5");l.style.width="50px";m.appendChild(l);d.appendChild(m);q.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2;
+m.style.paddingTop="20px";m.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&m.appendChild(f);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});k.className="geBtn";m.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});k.className="geBtn gePrimaryBtn";m.appendChild(k);a.editor.cancelFirst||
m.appendChild(f);d.appendChild(m);q.appendChild(d);n.appendChild(q);this.container=n};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(e){}};
PrintDialog.createPrintPreview=function(a,b,e,d,m,n,q){b=new mxPrintPreview(a,b,e,d,m,n);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=q;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var c=b.writeHead;b.writeHead=function(a){c.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function b(){null==k||k==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=k,g.style.backgroundImage="")}function e(){null==u?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(p.setAttribute("title",u.src),p.style.fontSize="11px",p.innerHTML=mxUtils.htmlEntities(u.src.substring(0,42))+"...")}var d=a.editor.graph,m,
+var PageSetupDialog=function(a){function b(){null==p||p==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=p,g.style.backgroundImage="")}function e(){null==u?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(k.setAttribute("title",u.src),k.style.fontSize="11px",k.innerHTML=mxUtils.htmlEntities(u.src.substring(0,42))+"...")}var d=a.editor.graph,m,
n,q=document.createElement("table");q.style.width="100%";q.style.height="100%";var c=document.createElement("tbody");m=document.createElement("tr");n=document.createElement("td");n.style.verticalAlign="top";n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("paperSize")+":");m.appendChild(n);n=document.createElement("td");n.style.verticalAlign="top";n.style.fontSize="10pt";var f=PageSetupDialog.addPageFormatPanel(n,"pagesetupdialog",d.pageFormat);m.appendChild(n);c.appendChild(m);m=document.createElement("tr");
-n=document.createElement("td");mxUtils.write(n,mxResources.get("background")+":");m.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="18px";g.style.height="18px";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";var k=d.background;b();mxEvent.addListener(g,"click",function(c){a.pickColor(k||"none",function(a){k=
+n=document.createElement("td");mxUtils.write(n,mxResources.get("background")+":");m.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="18px";g.style.height="18px";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";var p=d.background;b();mxEvent.addListener(g,"click",function(c){a.pickColor(p||"none",function(a){p=
a;b()});mxEvent.consume(c)});n.appendChild(g);mxUtils.write(n,mxResources.get("gridSize")+":");var l=document.createElement("input");l.setAttribute("type","number");l.setAttribute("min","0");l.style.width="40px";l.style.marginLeft="6px";l.value=d.getGridSize();n.appendChild(l);mxEvent.addListener(l,"change",function(){var a=parseInt(l.value);l.value=Math.max(1,isNaN(a)?d.getGridSize():a)});m.appendChild(n);c.appendChild(m);m=document.createElement("tr");n=document.createElement("td");mxUtils.write(n,
-mxResources.get("image")+":");m.appendChild(n);n=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var u=d.backgroundImage;mxEvent.addListener(p,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(u=a,e())},u);mxEvent.consume(c)});e();n.appendChild(p);m.appendChild(n);c.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align",
-"right");var t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&n.appendChild(t);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(l.value);isNaN(c)||d.gridSize===c||d.setGridSize(c);c=new ChangePageSetup(a,k,u,f.get());c.ignoreColor=d.background==k;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=u?u.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==
+mxResources.get("image")+":");m.appendChild(n);n=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var u=d.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(u=a,e())},u);mxEvent.consume(c)});e();n.appendChild(k);m.appendChild(n);c.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align",
+"right");var t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&n.appendChild(t);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(l.value);isNaN(c)||d.gridSize===c||d.setGridSize(c);c=new ChangePageSetup(a,p,u,f.get());c.ignoreColor=d.background==p;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=u?u.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==
c.previousFormat.height&&c.ignoreColor&&c.ignoreImage||d.model.execute(c)});A.className="geBtn gePrimaryBtn";n.appendChild(A);a.editor.cancelFirst||n.appendChild(t);m.appendChild(n);c.appendChild(m);q.appendChild(c);this.container=q};
-PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function m(a,b,d){if(d||l!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<t.length;b++)d=t[b],x?"custom"==d.key&&(c.value=d.key,x=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
-e.height==d.format.height?(c.value=d.key,n.setAttribute("checked","checked"),n.defaultChecked=!0,n.checked=!0,q.removeAttribute("checked"),q.defaultChecked=!1,q.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(c.value=d.key,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,q.setAttribute("checked","checked"),q.defaultChecked=!0,a=q.checked=!0));a?(f.style.display="",k.style.display="none"):(l.value=e.width/100,p.value=e.height/100,n.setAttribute("checked","checked"),
-c.value="custom",f.style.display="none",k.style.display="")}}b="format-"+b;var n=document.createElement("input");n.setAttribute("name",b);n.setAttribute("type","radio");n.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",b);q.setAttribute("type","radio");q.setAttribute("value","landscape");var c=document.createElement("select");c.style.marginBottom="8px";c.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);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));f.appendChild(b);q.style.marginLeft="10px";q.style.marginRight="6px";f.appendChild(q);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));f.appendChild(g);var k=document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";k.style.height="24px";var l=document.createElement("input");
-l.setAttribute("size","7");l.style.textAlign="right";k.appendChild(l);mxUtils.write(k," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";k.appendChild(p);mxUtils.write(k," in");f.style.display="none";k.style.display="none";for(var u={},t=PageSetupDialog.getFormats(),A=0;A<t.length;A++){var y=t[A];u[y.key]=y;var I=document.createElement("option");I.setAttribute("value",y.key);mxUtils.write(I,y.title);c.appendChild(I)}var x=!1;m();a.appendChild(c);mxUtils.br(a);
-a.appendChild(f);a.appendChild(k);var F=e,H=function(a,b){var g=u[c.value];null!=g.format?(l.value=g.format.width/100,p.value=g.format.height/100,k.style.display="none",f.style.display=""):(f.style.display="none",k.style.display="");g=parseFloat(l.value);if(isNaN(g)||0>=g)l.value=e.width/100;g=parseFloat(p.value);if(isNaN(g)||0>=g)p.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(l.value)),Math.floor(100*parseFloat(p.value)));"custom"!=c.value&&q.checked&&(g=new mxRectangle(0,0,
-g.height,g.width));b&&x||g.width==F.width&&g.height==F.height||(F=g,null!=d&&d(F))};mxEvent.addListener(b,"click",function(a){n.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){q.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(l,"blur",H);mxEvent.addListener(l,"click",H);mxEvent.addListener(p,"blur",H);mxEvent.addListener(p,"click",H);mxEvent.addListener(q,"change",H);mxEvent.addListener(n,"change",H);mxEvent.addListener(c,"change",function(a){x="custom"==c.value;
-H(a,!0)});H();return{set:function(a){e=a;m(null,null,!0)},get:function(){return F},widthInput:l,heightInput:p}};
+PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function m(a,b,d){if(d||l!=document.activeElement&&k!=document.activeElement){a=!1;for(b=0;b<t.length;b++)d=t[b],x?"custom"==d.key&&(c.value=d.key,x=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
+e.height==d.format.height?(c.value=d.key,n.setAttribute("checked","checked"),n.defaultChecked=!0,n.checked=!0,q.removeAttribute("checked"),q.defaultChecked=!1,q.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(c.value=d.key,n.removeAttribute("checked"),n.defaultChecked=!1,n.checked=!1,q.setAttribute("checked","checked"),q.defaultChecked=!0,a=q.checked=!0));a?(f.style.display="",p.style.display="none"):(l.value=e.width/100,k.value=e.height/100,n.setAttribute("checked","checked"),
+c.value="custom",f.style.display="none",p.style.display="")}}b="format-"+b;var n=document.createElement("input");n.setAttribute("name",b);n.setAttribute("type","radio");n.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",b);q.setAttribute("type","radio");q.setAttribute("value","landscape");var c=document.createElement("select");c.style.marginBottom="8px";c.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);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));f.appendChild(b);q.style.marginLeft="10px";q.style.marginRight="6px";f.appendChild(q);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));f.appendChild(g);var p=document.createElement("div");p.style.marginLeft="4px";p.style.width="210px";p.style.height="24px";var l=document.createElement("input");
+l.setAttribute("size","7");l.style.textAlign="right";p.appendChild(l);mxUtils.write(p," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";p.appendChild(k);mxUtils.write(p," in");f.style.display="none";p.style.display="none";for(var u={},t=PageSetupDialog.getFormats(),A=0;A<t.length;A++){var y=t[A];u[y.key]=y;var I=document.createElement("option");I.setAttribute("value",y.key);mxUtils.write(I,y.title);c.appendChild(I)}var x=!1;m();a.appendChild(c);mxUtils.br(a);
+a.appendChild(f);a.appendChild(p);var F=e,H=function(a,b){var g=u[c.value];null!=g.format?(l.value=g.format.width/100,k.value=g.format.height/100,p.style.display="none",f.style.display=""):(f.style.display="none",p.style.display="");g=parseFloat(l.value);if(isNaN(g)||0>=g)l.value=e.width/100;g=parseFloat(k.value);if(isNaN(g)||0>=g)k.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(l.value)),Math.floor(100*parseFloat(k.value)));"custom"!=c.value&&q.checked&&(g=new mxRectangle(0,0,
+g.height,g.width));b&&x||g.width==F.width&&g.height==F.height||(F=g,null!=d&&d(F))};mxEvent.addListener(b,"click",function(a){n.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){q.checked=!0;H(a);mxEvent.consume(a)});mxEvent.addListener(l,"blur",H);mxEvent.addListener(l,"click",H);mxEvent.addListener(k,"blur",H);mxEvent.addListener(k,"click",H);mxEvent.addListener(q,"change",H);mxEvent.addListener(n,"change",H);mxEvent.addListener(c,"change",function(a){x="custom"==c.value;
+H(a,!0)});H();return{set:function(a){e=a;m(null,null,!0)},get:function(){return F},widthInput:l,heightInput:k}};
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(a,b,e,d,m,n,q,c,f,g,k,l){f=null!=f?f:!0;var p,u,t=document.createElement("table"),A=document.createElement("tbody");t.style.marginTop="8px";p=document.createElement("tr");u=document.createElement("td");u.style.whiteSpace="nowrap";u.style.fontSize="10pt";u.style.width=k?"80px":"120px";mxUtils.write(u,(m||mxResources.get("filename"))+":");p.appendChild(u);var y=document.createElement("input");y.setAttribute("value",b||"");y.style.marginLeft="4px";y.style.width=null!=l?l+
+var FilenameDialog=function(a,b,e,d,m,n,q,c,f,g,p,l){f=null!=f?f:!0;var k,u,t=document.createElement("table"),A=document.createElement("tbody");t.style.marginTop="8px";k=document.createElement("tr");u=document.createElement("td");u.style.whiteSpace="nowrap";u.style.fontSize="10pt";u.style.width=p?"80px":"120px";mxUtils.write(u,(m||mxResources.get("filename"))+":");k.appendChild(u);var y=document.createElement("input");y.setAttribute("value",b||"");y.style.marginLeft="4px";y.style.width=null!=l?l+
"px":"180px";var I=mxUtils.button(e,function(){if(null==n||n(y.value))f&&a.hideDialog(),d(y.value)});I.className="geBtn gePrimaryBtn";this.init=function(){if(null!=m||null==q)if(y.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?y.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=t.parentNode;if(null!=a){var c=null;mxEvent.addListener(a,"dragleave",function(a){null!=c&&(c.style.backgroundColor="",c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=y,c.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=c&&(c.style.backgroundColor="",c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(y.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),I.click());a.stopPropagation();a.preventDefault()}))}}};u=document.createElement("td");u.style.whiteSpace=
-"nowrap";u.appendChild(y);p.appendChild(u);if(null!=m||null==q)A.appendChild(p),null!=k&&(null!=a.editor.diagramFileTypes&&(p=FilenameDialog.createFileTypes(a,y,a.editor.diagramFileTypes),p.style.marginLeft="6px",p.style.width="74px",u.appendChild(p),y.style.width=null!=l?l-40+"px":"140px"),u.appendChild(FilenameDialog.createTypeHint(a,y,k)));null!=q&&(p=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(q),p.appendChild(u),A.appendChild(p));p=document.createElement("tr");
-u=document.createElement("td");u.colSpan=2;u.style.paddingTop="20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});k.className="geBtn";a.editor.cancelFirst&&u.appendChild(k);null!=c&&(l=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(c)}),l.className="geBtn",u.appendChild(l));mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&I.click()});u.appendChild(I);a.editor.cancelFirst||
-u.appendChild(k);p.appendChild(u);A.appendChild(p);t.appendChild(A);this.container=t};FilenameDialog.filenameHelpLink=null;
+"nowrap";u.appendChild(y);k.appendChild(u);if(null!=m||null==q)A.appendChild(k),null!=p&&(null!=a.editor.diagramFileTypes&&(k=FilenameDialog.createFileTypes(a,y,a.editor.diagramFileTypes),k.style.marginLeft="6px",k.style.width="74px",u.appendChild(k),y.style.width=null!=l?l-40+"px":"140px"),u.appendChild(FilenameDialog.createTypeHint(a,y,p)));null!=q&&(k=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(q),k.appendChild(u),A.appendChild(k));k=document.createElement("tr");
+u=document.createElement("td");u.colSpan=2;u.style.paddingTop="20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});p.className="geBtn";a.editor.cancelFirst&&u.appendChild(p);null!=c&&(l=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(c)}),l.className="geBtn",u.appendChild(l));mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&I.click()});u.appendChild(I);a.editor.cancelFirst||
+u.appendChild(p);k.appendChild(u);A.appendChild(k);t.appendChild(A);this.container=t};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,b,e){var d=document.createElement("img");d.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(d,70);var m=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var a=0;a<e.length;a++)if(0<e[a].ext.length&&b.value.toLowerCase().substring(b.value.length-e[a].ext.length-1)=="."+e[a].ext){d.setAttribute("src",
mxClient.imageBasePath+"/warning.png");d.setAttribute("title",mxResources.get(e[a].title));break}};mxEvent.addListener(b,"keyup",m);mxEvent.addListener(b,"change",m);mxEvent.addListener(d,"click",function(b){var e=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&a.showError(null,e,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
mxEvent.consume(b)});m();return d};
@@ -2103,36 +2104,36 @@ this.backgroundPageShape.init(a.container),f.style.position="absolute",a.contain
a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=c,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}};
mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,c=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,f=null!=c&&this.gridColor!=c.toLowerCase()?this.gridColor:"#ffffff",b="none",d="";if(a.isGridEnabled()||a.gridVisible){d=10;mxClient.IS_SVG?(b=unescape(encodeURIComponent(this.createSvgGrid(f))),b=window.btoa?btoa(b):Base64.encode(b,!0),b="url(data:image/svg+xml;base64,"+b+")",d=a.gridSize*this.scale*this.gridSteps):b="url("+this.gridImage+
")";var e=f=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),f=1+e.x,e=1+e.y);d=-Math.round(d-mxUtils.mod(this.translate.x*this.scale-f,d))+"px "+-Math.round(d-mxUtils.mod(this.translate.y*this.scale-e,d))+"px"}f=a.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=d,a.view.backgroundPageShape.node.style.backgroundImage=b,a.view.backgroundPageShape.node.style.backgroundColor=c,a.view.backgroundPageShape.node.style.borderColor=
-a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(a.container.className="geDiagramContainer",f.style.backgroundPosition=d,f.style.backgroundColor=c,f.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var c=this.graph.gridSize*this.scale;c<this.minGridSize;)c*=2;for(var b=this.gridSteps*c,d=[],e=1;e<this.gridSteps;e++){var l=e*c;d.push("M 0 "+l+" L "+b+" "+l+" M "+l+" 0 L "+l+
-" "+b)}return'<svg width="'+b+'" height="'+b+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+b+'" height="'+b+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+b+" 0 L 0 0 0 "+b+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);
-if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var d=this.gridSize*this.view.scale*this.view.gridSteps,d=-Math.round(d-mxUtils.mod(this.view.translate.x*this.view.scale+b,d))+"px "+-Math.round(d-mxUtils.mod(this.view.translate.y*this.view.scale+c,d))+"px";f.style.backgroundPosition=d}};mxGraph.prototype.updatePageBreaks=function(a,c,b){var f=this.view.scale,d=this.view.translate,e=this.pageFormat,p=f*this.pageScale,n=this.view.getBackgroundPageBounds();
-c=n.width;b=n.height;var t=new mxRectangle(f*d.x,f*d.y,e.width*p,e.height*p),m=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(b/t.height)-1:0,y=a?Math.ceil(c/t.width)-1:0,q=n.x+c,x=n.y+b;null==this.horizontalPageBreaks&&0<m&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<y&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?m:y,b=0;b<=c;b++){var f=a==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
+a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(a.container.className="geDiagramContainer",f.style.backgroundPosition=d,f.style.backgroundColor=c,f.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var c=this.graph.gridSize*this.scale;c<this.minGridSize;)c*=2;for(var f=this.gridSteps*c,b=[],d=1;d<this.gridSteps;d++){var e=d*c;b.push("M 0 "+e+" L "+f+" "+e+" M "+e+" 0 L "+e+
+" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+b.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);
+if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var d=this.gridSize*this.view.scale*this.view.gridSteps,d=-Math.round(d-mxUtils.mod(this.view.translate.x*this.view.scale+b,d))+"px "+-Math.round(d-mxUtils.mod(this.view.translate.y*this.view.scale+c,d))+"px";f.style.backgroundPosition=d}};mxGraph.prototype.updatePageBreaks=function(a,c,b){var f=this.view.scale,d=this.view.translate,e=this.pageFormat,k=f*this.pageScale,n=this.view.getBackgroundPageBounds();
+c=n.width;b=n.height;var t=new mxRectangle(f*d.x,f*d.y,e.width*k,e.height*k),m=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(b/t.height)-1:0,y=a?Math.ceil(c/t.width)-1:0,q=n.x+c,x=n.y+b;null==this.horizontalPageBreaks&&0<m&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<y&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?m:y,b=0;b<=c;b++){var f=a==this.horizontalPageBreaks?[new mxPoint(Math.round(n.x),
Math.round(n.y+(b+1)*t.height)),new mxPoint(Math.round(q),Math.round(n.y+(b+1)*t.height))]:[new mxPoint(Math.round(n.x+(b+1)*t.width),Math.round(n.y)),new mxPoint(Math.round(n.x+(b+1)*t.width),Math.round(x))];null!=a[b]?(a[b].points=f,a[b].redraw()):(f=new mxPolyline(f,this.pageBreakColor),f.dialect=this.dialect,f.isDashed=this.pageBreakDashed,f.pointerEvents=!1,f.init(this.view.backgroundPane),f.redraw(),a[b]=f)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);
a(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,c,f){for(var d=0;d<c.length;d++){if(this.graph.isTableCell(c[d])||this.graph.isTableRow(c[d]))return!1;if(this.graph.getModel().isVertex(c[d])){var e=this.graph.getCellGeometry(c[d]);if(null!=e&&e.relative)return!1}}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(c,b){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),c=0<a.width?a.x/this.scale-this.translate.x:0,b=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
-e=this.graph.pageScale,l=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,c)/l),p=Math.floor(Math.min(0,b)/d);return new mxRectangle(this.scale*(this.translate.x+e*l),this.scale*(this.translate.y+p*d),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/l)-e)*l,this.scale*(Math.ceil(Math.max(1,b+a.height/this.scale)/d)-p)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
+e=this.graph.pageScale,l=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,c)/l),k=Math.floor(Math.min(0,b)/d);return new mxRectangle(this.scale*(this.translate.x+e*l),this.scale*(this.translate.y+k*d),this.scale*(Math.ceil(Math.max(1,c+a.width/this.scale)/l)-e)*l,this.scale*(Math.ceil(Math.max(1,b+a.height/this.scale)/d)-k)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=c+"px")};var m=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,c,b,d,e,l){var f=m.apply(this,arguments);null==l||l||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var n=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
function(a,c,b){var f,d=this.graph.model.getParent(a);if(c)f=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),f=!this.graph.model.isEdge(d)&&!this.graph.isSiblingSelected(a)&&(null!=f&&f.relative||!this.graph.isContainer(d)||this.graph.isPart(a));else if(f=n.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))f=d,this.graph.isTable(f)||(f=this.graph.model.getParent(f)),f=!this.graph.selectionCellsHandler.isHandled(f)||this.graph.isCellSelected(f)&&this.graph.isToggleEvent(b.getEvent())||
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(b.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(d);return f};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var c=this.graph.getModel(),b=c.getParent(a),d=this.graph.view.getState(b),e=this.graph.isCellSelected(a);null!=d&&(c.isVertex(b)||c.isEdge(b));){var l=this.graph.isCellSelected(b),e=e||l;if(l||!e&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=b;b=c.getParent(b)}return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;this.initialDefaultVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.initialDefaultEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=
mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!d.standalone){var m="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
-n="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),l=null!=e?e.split(";"):[],e=0;e<l.length;e++){var k=
-l[e],p=k.indexOf("=");if(0<=p){g=k.substring(0,p);var n=k.substring(p+1);null!=f[g]&&"none"==n&&(a.push(n),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(aa){this.handleError(aa)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
-"keys",[],"values",[],"cells",[]))};var q=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<q.length;b++)0>mxUtils.indexOf(m,q[b])&&m.push(q[b]);var c="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),f=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["align","verticalAlign"],["opacity"],["html"]];for(b=0;b<f.length;b++)for(e=
-0;e<f[b].length;e++)m.push(f[b][e]);for(b=0;b<n.length;b++)0>mxUtils.indexOf(m,n[b])&&m.push(n[b]);var g=function(a,c,b,g,e,l,k){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;b=null!=b?b:d.getModel();if(k){k=[];for(var v=0;v<a.length;v++)k=k.concat(b.getDescendants(a[v]));a=k}b.beginUpdate();try{for(v=0;v<a.length;v++){var p=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(p),u=null!=t?t.split(";"):[];B=m.slice();for(var C=0;C<u.length;C++){var E=u[C],y=
-E.indexOf("=");if(0<=y){var x=E.substring(0,y),q=mxUtils.indexOf(B,x);0<=q&&B.splice(q,1);for(k=0;k<f.length;k++){var N=f[k];if(0<=mxUtils.indexOf(N,x))for(var A=0;A<N.length;A++){var H=mxUtils.indexOf(B,N[A]);0<=H&&B.splice(H,1)}}}}}var O=b.isEdge(p);k=O?e:g;for(var F=b.getStyle(p),C=0;C<B.length;C++){var x=B[C],I=k[x];null!=I&&("shape"!=x||O)&&(!O||l||0>mxUtils.indexOf(n,x))&&(F=mxUtils.setStyle(F,x,I))}Editor.simpleLabels&&(F=mxUtils.setStyle(mxUtils.setStyle(F,"html",null),"whiteSpace",null));
-b.setStyle(p,F)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){g(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){g(c.getProperty("cells"),!0)});this.insertHandler=g;this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown=k,this.toolbarContainer.onselectstart=
-k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=
-c;){if("geHint"==c.className)return!0;c=c.parentNode}}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var l=
-d.graphHandler.start;d.graphHandler.start=function(){null!=G.hoverIcons&&G.hoverIcons.reset();l.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var p=
-!1,u=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return p||u.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(p=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor=
-"";p=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||p||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,
-arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var y=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return p||y.apply(this,arguments)};var I=!1,x=null,F=null,H=null,L=mxUtils.bind(this,function(){if(null!=this.toolbar&&I!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
+n="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),l=null!=e?e.split(";"):[],e=0;e<l.length;e++){var p=
+l[e],k=p.indexOf("=");if(0<=k){g=p.substring(0,k);var n=p.substring(k+1);null!=f[g]&&"none"==n&&(a.push(n),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(aa){this.handleError(aa)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
+"keys",[],"values",[],"cells",[]))};var q=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<q.length;b++)0>mxUtils.indexOf(m,q[b])&&m.push(q[b]);var c="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),f=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(b=
+0;b<f.length;b++)for(e=0;e<f[b].length;e++)m.push(f[b][e]);for(b=0;b<n.length;b++)0>mxUtils.indexOf(m,n[b])&&m.push(n[b]);var g=function(a,c,b,g,e,p,l){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;b=null!=b?b:d.getModel();if(l){l=[];for(var v=0;v<a.length;v++)l=l.concat(b.getDescendants(a[v]));a=l}b.beginUpdate();try{for(v=0;v<a.length;v++){var k=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(k),u=null!=t?t.split(";"):[];B=m.slice();for(var C=0;C<u.length;C++){var E=
+u[C],y=E.indexOf("=");if(0<=y){var x=E.substring(0,y),q=mxUtils.indexOf(B,x);0<=q&&B.splice(q,1);for(l=0;l<f.length;l++){var N=f[l];if(0<=mxUtils.indexOf(N,x))for(var A=0;A<N.length;A++){var H=mxUtils.indexOf(B,N[A]);0<=H&&B.splice(H,1)}}}}}var O=b.isEdge(k);l=O?e:g;for(var F=b.getStyle(k),C=0;C<B.length;C++){var x=B[C],I=l[x];null!=I&&("shape"!=x||O)&&(!O||p||0>mxUtils.indexOf(n,x))&&(F=mxUtils.setStyle(F,x,I))}Editor.simpleLabels&&(F=mxUtils.setStyle(mxUtils.setStyle(F,"html",null),"whiteSpace",
+null));b.setStyle(k,F)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){g(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){g(c.getProperty("cells"),!0)});this.insertHandler=g;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});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?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=
+c;){if("geHint"==c.className)return!0;c=c.parentNode}}return p(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var l=
+d.graphHandler.start;d.graphHandler.start=function(){null!=G.hoverIcons&&G.hoverIcons.reset();l.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var k=
+!1,u=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return k||u.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(k=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor=
+"";k=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||k||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,
+arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var y=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return k||y.apply(this,arguments)};var I=!1,x=null,F=null,H=null,L=mxUtils.bind(this,function(){if(null!=this.toolbar&&I!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
c.push(a));a=b}a=this.toolbar.fontMenu;b=this.toolbar.sizeMenu;if(null==H)this.toolbar.createTextToolbar();else{for(var f=0;f<H.length;f++)this.toolbar.container.appendChild(H[f]);this.toolbar.fontMenu=x;this.toolbar.sizeMenu=F}I=d.cellEditor.isContentEditing();x=a;F=b;H=c}}),G=this,J=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){J.apply(this,arguments);L();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=d.getSelectedEditingElement();
null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=G.toolbar&&(G.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),G.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var D=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){try{D.apply(this,arguments),L()}catch(N){G.handleError(N)}};
d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(O){}var M=d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();M.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&(b.push(c.getProperty("terminal")),window.setTimeout(function(){null!=G.hoverIcons&&G.hoverIcons.update(d.view.getState(b[b.length-1]))},0));g(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var f=b.getProperty("cells"),
-g=!1,e=!1;if(0<f.length)for(var k=0;k<f.length&&(g=d.getModel().isVertex(f[k])||g,!(e=d.getModel().isEdge(f[k])||e)||!g);k++);else e=g=!0;for(var f=b.getProperty("keys"),l=b.getProperty("values"),k=0;k<f.length;k++){var p=0<=mxUtils.indexOf(q,f[k]);if("strokeColor"!=f[k]||null!=l[k]&&"none"!=l[k])if(0<=mxUtils.indexOf(n,f[k]))e||0<=mxUtils.indexOf(c,f[k])?null==l[k]?delete d.currentEdgeStyle[f[k]]:d.currentEdgeStyle[f[k]]=l[k]:g&&0<=mxUtils.indexOf(m,f[k])&&(null==l[k]?delete d.currentVertexStyle[f[k]]:
-d.currentVertexStyle[f[k]]=l[k]);else if(0<=mxUtils.indexOf(m,f[k])){if(g||p)null==l[k]?delete d.currentVertexStyle[f[k]]:d.currentVertexStyle[f[k]]=l[k];if(e||p||0<=mxUtils.indexOf(c,f[k]))null==l[k]?delete d.currentEdgeStyle[f[k]]:d.currentEdgeStyle[f[k]]=l[k]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
+g=!1,e=!1;if(0<f.length)for(var l=0;l<f.length&&(g=d.getModel().isVertex(f[l])||g,!(e=d.getModel().isEdge(f[l])||e)||!g);l++);else e=g=!0;for(var f=b.getProperty("keys"),p=b.getProperty("values"),l=0;l<f.length;l++){var k=0<=mxUtils.indexOf(q,f[l]);if("strokeColor"!=f[l]||null!=p[l]&&"none"!=p[l])if(0<=mxUtils.indexOf(n,f[l]))e||0<=mxUtils.indexOf(c,f[l])?null==p[l]?delete d.currentEdgeStyle[f[l]]:d.currentEdgeStyle[f[l]]=p[l]:g&&0<=mxUtils.indexOf(m,f[l])&&(null==p[l]?delete d.currentVertexStyle[f[l]]:
+d.currentVertexStyle[f[l]]=p[l]);else if(0<=mxUtils.indexOf(m,f[l])){if(g||k)null==p[l]?delete d.currentVertexStyle[f[l]]:d.currentVertexStyle[f[l]]=p[l];if(e||k||0<=mxUtils.indexOf(c,f[l]))null==p[l]?delete d.currentEdgeStyle[f[l]]:d.currentEdgeStyle[f[l]]=p[l]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
@@ -2146,12 +2147,12 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"
arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
EditorUi.prototype.installShapePicker=function(){var a=this.editor.graph,b=this;a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){"mouseDown"==c.getProperty("eventName")&&b.hideShapePicker()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));var e=
a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(e,c){if(this.isEnabled())if(null!=c||null==b.sidebar||mxEvent.isShiftDown(e)||a.isCellLocked(a.getDefaultParent()))d.apply(this,arguments);else{mxEvent.consume(e);var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.x,f.y)}),30)}};if(null!=
-this.hoverIcons){var m=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();m.apply(this,arguments)};var n=this.hoverIcons.execute;this.hoverIcons.execute=function(d,c,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?n.apply(this,arguments):this.graph.connectVertex(d.cell,c,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,e,p){var k=a.getCompositeParent(d.cell);g=a.getCellGeometry(k);for(f.consume();null!=k&&a.model.isVertex(k)&&null!=
-g&&g.relative;)cell=k,k=a.model.getParent(cell),g=a.getCellGeometry(k);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.getGraphX(),f.getGraphY(),k,mxUtils.bind(this,function(c){p(c);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(c))}),c)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,g,this)}))}}};
+this.hoverIcons){var m=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();m.apply(this,arguments)};var n=this.hoverIcons.execute;this.hoverIcons.execute=function(d,c,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?n.apply(this,arguments):this.graph.connectVertex(d.cell,c,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,e,k){var l=a.getCompositeParent(d.cell);g=a.getCellGeometry(l);for(f.consume();null!=l&&a.model.isVertex(l)&&null!=
+g&&g.relative;)cell=l,l=a.model.getParent(cell),g=a.getCellGeometry(l);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.getGraphX(),f.getGraphY(),l,mxUtils.bind(this,function(c){k(c);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(c))}),c)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,g,this)}))}}};
EditorUi.prototype.showShapePicker=function(a,b,e,d,m){a=this.createShapePicker(a,b,e,d,m,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),b=this.editor.graph,b.popupMenuHandler.hideMenu(),b.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a)};
-EditorUi.prototype.createShapePicker=function(a,b,e,d,m,n,q){var c=null;if(null!=q&&0<q.length){var f=this,g=this.editor.graph,c=document.createElement("div");m=g.view.getState(e);var k=null==e||null!=m&&g.isTransparentState(m)?null:g.copyStyle(e);e=6>q.length?35*q.length:140;c.className="geToolbarContainer geSidebarContainer geSidebar";c.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
-mxPopupMenu.prototype.zIndex+1+";";mxUtils.setPrefixedStyle(c.style,"transform","translate(-22px,-22px)");null!=g.background&&g.background!=mxConstants.NONE&&(c.style.backgroundColor=g.background);g.container.appendChild(c);e=mxUtils.bind(this,function(e){var l=document.createElement("a");l.className="geItem";l.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";c.appendChild(l);null!=k&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(k,[e]):f.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,l,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(l,"click",function(){var c=g.cloneCell(e);if(null!=d)d(c);else{c.geometry.x=g.snap(Math.round(a/g.view.scale)-g.view.translate.x-e.geometry.width/2);c.geometry.y=g.snap(Math.round(b/g.view.scale)-g.view.translate.y-e.geometry.height/2);g.model.beginUpdate();try{g.addCell(c)}finally{g.model.endUpdate()}g.setSelectionCell(c);
+EditorUi.prototype.createShapePicker=function(a,b,e,d,m,n,q){var c=null;if(null!=q&&0<q.length){var f=this,g=this.editor.graph,c=document.createElement("div");m=g.view.getState(e);var p=null==e||null!=m&&g.isTransparentState(m)?null:g.copyStyle(e);e=6>q.length?35*q.length:140;c.className="geToolbarContainer geSidebarContainer geSidebar";c.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
+mxPopupMenu.prototype.zIndex+1+";";mxUtils.setPrefixedStyle(c.style,"transform","translate(-22px,-22px)");null!=g.background&&g.background!=mxConstants.NONE&&(c.style.backgroundColor=g.background);g.container.appendChild(c);e=mxUtils.bind(this,function(e){var l=document.createElement("a");l.className="geItem";l.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";c.appendChild(l);null!=p&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(p,[e]):f.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,l,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(l,"click",function(){var c=g.cloneCell(e);if(null!=d)d(c);else{c.geometry.x=g.snap(Math.round(a/g.view.scale)-g.view.translate.x-e.geometry.width/2);c.geometry.y=g.snap(Math.round(b/g.view.scale)-g.view.translate.y-e.geometry.height/2);g.model.beginUpdate();try{g.addCell(c)}finally{g.model.endUpdate()}g.setSelectionCell(c);
g.scrollCellToVisible(c);g.startEditingAtCell(c);null!=f.hoverIcons&&f.hoverIcons.update(g.view.getState(c))}null!=n&&n()})});for(m=0;m<q.length;m++)e(q[m]);q=c.offsetTop+c.clientHeight-(g.container.scrollTop+g.container.offsetHeight);0<q&&(c.style.top=Math.max(g.container.scrollTop+22,b-q)+"px");q=c.offsetLeft+c.clientWidth-(g.container.scrollLeft+g.container.offsetWidth);0<q&&(c.style.left=Math.max(g.container.scrollLeft+22,a-q)+"px")}return c};
EditorUi.prototype.getCellsForShapePicker=function(a){var b=mxUtils.bind(this,function(a,b,m,n){return this.editor.graph.createVertex(null,null,n||"",0,0,b||120,m||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("rounded=1;whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
b("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),b("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),b("triangle;whiteSpace=wrap;html=1;",60,80),b("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80),b("shape=tape;whiteSpace=wrap;html=1;",120,100),b("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
@@ -2167,21 +2168,21 @@ e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond":"g
e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())};
EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var d=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var d=d||b.getSelectionCells(),d=b.getExportableCells(b.model.getTopmostCells(d)),c={},f=b.createCellLookup(d),g=b.cloneCells(d,null,c),e=new mxGraphModel,l=e.getChildAt(e.getRoot(),
-0),p=0;p<g.length;p++){e.add(l,g[p]);var n=b.view.getState(d[p]);if(null!=n){var t=b.getCellGeometry(g[p]);null!=t&&t.relative&&!e.isEdge(d[p])&&null==f[mxObjectIdentity.get(e.getParent(d[p]))]&&(t.offset=null,t.relative=!1,t.x=n.x/n.view.scale-n.view.translate.x,t.y=n.y/n.view.scale-n.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(c,f),g);mxClipboard.insertCount=1;mxClipboard.setCells(g)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
+0),k=0;k<g.length;k++){e.add(l,g[k]);var n=b.view.getState(d[k]);if(null!=n){var t=b.getCellGeometry(g[k]);null!=t&&t.relative&&!e.isEdge(d[k])&&null==f[mxObjectIdentity.get(e.getParent(d[k]))]&&(t.offset=null,t.relative=!1,t.x=n.x/n.view.scale-n.view.translate.x,t.y=n.y/n.view.scale-n.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(c,f),g);mxClipboard.insertCount=1;mxClipboard.setCells(g)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=e.apply(this,arguments);a.updatePasteActionStates();return d};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width,
-this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,f,d){if(null!=a.container&&!a.isViewer()){f=null!=f?f:0;d=null!=d?d:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,l=a.view.scale,v=mxRectangle.fromRectangle(g);
-v.x=v.x/l-k.x;v.y=v.y/l-k.y;v.width/=l;v.height/=l;var k=a.container.scrollTop,p=a.container.scrollLeft,B=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)B+=3;var n=a.container.offsetWidth-B,B=a.container.offsetHeight-B;c=c?Math.max(.3,Math.min(b||1,n/v.width)):l;b=(n-c*v.width)/2/c;var t=0==this.lightboxVerticalDivider?0:(B-c*v.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),t=Math.max(t,0));if(e||g.width<n||g.height<B)a.view.scaleAndTranslate(c,Math.floor(b-
-v.x),Math.floor(t-v.y)),a.container.scrollTop=k*c/l,a.container.scrollLeft=p*c/l;else if(0!=f||0!=d)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+f/l),Math.floor(g.y+d/l))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,f,d){if(null!=a.container&&!a.isViewer()){f=null!=f?f:0;d=null!=d?d:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),l=a.view.translate,p=a.view.scale,v=mxRectangle.fromRectangle(g);
+v.x=v.x/p-l.x;v.y=v.y/p-l.y;v.width/=p;v.height/=p;var l=a.container.scrollTop,k=a.container.scrollLeft,B=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)B+=3;var n=a.container.offsetWidth-B,B=a.container.offsetHeight-B;c=c?Math.max(.3,Math.min(b||1,n/v.width)):p;b=(n-c*v.width)/2/c;var t=0==this.lightboxVerticalDivider?0:(B-c*v.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),t=Math.max(t,0));if(e||g.width<n||g.height<B)a.view.scaleAndTranslate(c,Math.floor(b-
+v.x),Math.floor(t-v.y)),a.container.scrollTop=l*c/p,a.container.scrollLeft=k*c/p;else if(0!=f||0!=d)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+f/p),Math.floor(g.y+d/p))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var m=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var n=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
"0":this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",n);n();var q=0,n=mxUtils.bind(this,function(a,c,b){q++;var f=document.createElement("span");f.style.paddingLeft="8px";f.style.paddingRight="8px";f.style.cursor="pointer";mxEvent.addListener(f,"click",a);null!=b&&f.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");
a.setAttribute("src",c);f.appendChild(a);this.chromelessToolbar.appendChild(f);return f});null!=m.backBtn&&n(mxUtils.bind(this,function(a){window.location.href=m.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var c=n(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),f=document.createElement("div");f.style.display="inline-block";
-f.style.verticalAlign="top";f.style.fontFamily="Helvetica,Arial";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color="#ffffff";this.chromelessToolbar.appendChild(f);var g=n(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),k=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))});c.style.paddingLeft="0px";c.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",c.style.display="",f.style.display="inline-block"):(g.style.display="none",c.style.display="none",f.style.display="none");k()});this.editor.addListener("resetGraphView",l);this.editor.addListener("pageSelected",k)}n(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
-mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,u=null,t=mxUtils.bind(this,
-function(a){null!=p&&(window.clearTimeout(p),p=null);null!=u&&(window.clearTimeout(u),u=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";u=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),p=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
+f.style.verticalAlign="top";f.style.fontFamily="Helvetica,Arial";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color="#ffffff";this.chromelessToolbar.appendChild(f);var g=n(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),p=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))});c.style.paddingLeft="0px";c.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",c.style.display="",f.style.display="inline-block"):(g.style.display="none",c.style.display="none",f.style.display="none");p()});this.editor.addListener("resetGraphView",l);this.editor.addListener("pageSelected",p)}n(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
+mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");n(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var k=null,u=null,t=mxUtils.bind(this,
+function(a){null!=k&&(window.clearTimeout(k),k=null);null!=u&&(window.clearTimeout(u),u=null);k=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);k=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";u=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=k&&(window.clearTimeout(k),k=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
a||30)});if("1"==urlParams.layers){this.layersDialog=null;var y=n(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=y.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);
this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),I=a.getModel();I.addListener(mxEvent.CHANGE,function(){y.style.display=1<I.getChildCount(I.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(n);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||n(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():
@@ -2194,8 +2195,8 @@ t():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(thi
this.getPageLayout(),b=this.getPagePadding(),f=this.getPageSize(),d=Math.ceil(2*b.x+c.width*f.width),g=Math.ceil(2*b.y+c.height*f.height),e=a.minimumGraphSize;if(null==e||e.width!=d||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,d,g);d=b.x-c.x*f.width;b=b.y-c.y*f.height;this.autoTranslate||this.view.translate.x==d&&this.view.translate.y==b?L.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,f=a.view.translate.y,a.view.setTranslate(d,b),a.container.scrollLeft+=
Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((b-f)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var G=a.view.getBackgroundPane(),J=a.view.getDrawPane();a.cumulativeZoomFactor=1;var D=null,M=null,O=null,U=null,N=null,v=function(c){null!=D&&window.clearTimeout(D);window.setTimeout(function(){if(!a.isMouseDown||U)D=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),J.style.transformOrigin="",G.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",G.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";G.style.transform=""},0)):(J.style.transform="",G.style.transform=""),a.view.getDecoratorPane().style.opacity="",
-a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),f=mxUtils.getOffset(a.container),d=a.view.scale,g=0,k=0;null!=M&&(g=a.container.offsetWidth/2-M.x+f.x,k=a.container.offsetHeight/2-M.y+f.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=d&&(null!=O&&(g+=c.x-O.x,k+=c.y-O.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=N&&J.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=U=M=O=D=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},C=Date.now();a.lazyZoom=function(c,b,f){(b=b||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-C)){C=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
+a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),f=mxUtils.getOffset(a.container),d=a.view.scale,g=0,l=0;null!=M&&(g=a.container.offsetWidth/2-M.x+f.x,l=a.container.offsetHeight/2-M.y+f.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=d&&(null!=O&&(g+=c.x-O.x,l+=c.y-O.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),l*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==l||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
+1),a.container.scrollTop-=l*(a.cumulativeZoomFactor-1)));null!=N&&J.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=U=M=O=D=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},C=Date.now();a.lazyZoom=function(c,b,f){(b=b||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-C)){C=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*
this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==N&&""!=J.getAttribute("filter")&&(N=J.getAttribute("filter"),J.removeAttribute("filter"));O=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:M.x+a.container.scrollLeft-a.container.offsetLeft;var d=b?a.container.scrollTop+a.container.clientHeight/2:M.y+a.container.scrollTop-a.container.offsetTop;J.style.transformOrigin=c+"px "+d+"px";J.style.transform="scale("+
this.cumulativeZoomFactor+")";G.style.transformOrigin=c+"px "+d+"px";G.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":M.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":M.y+
@@ -2244,10 +2245,10 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,e,d){function m(a){if(null!=q){var l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,c+(b?l.x-q.x:q.y-l.y)-e));mxEvent.consume(a);c!=k()&&(f=!0,g=null)}}function n(a){m(a);q=c=null}var q=null,c=null,f=!0,g=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var k=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){q=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));c=k();f=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!f&&this.hsplitClickEnabled){var c=null!=g?g-e:0;g=k();d(c);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,m,n);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,m,n)})};
+EditorUi.prototype.addSplitHandler=function(a,b,e,d){function m(a){if(null!=q){var l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,c+(b?l.x-q.x:q.y-l.y)-e));mxEvent.consume(a);c!=p()&&(f=!0,g=null)}}function n(a){m(a);q=c=null}var q=null,c=null,f=!0,g=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var p=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){q=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));c=p();f=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!f&&this.hsplitClickEnabled){var c=null!=g?g-e:0;g=p();d(c);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,m,n);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,m,n)})};
EditorUi.prototype.handleError=function(a,b,e,d,m){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));var n=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(m=mxUtils.htmlEntities(a.message));this.showError(b,m,n,e,null,null,null,null,null,null,null,null,d?e:null)}else null!=e&&e()};
-EditorUi.prototype.showError=function(a,b,e,d,m,n,q,c,f,g,k,l,p){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,m,n,q,l,c,f);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,g||340,k||100+20*b,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,m,n,q,c,f,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,m,n,q,c,f,g);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(a,b,e,d,m,n,q,c,f,g,p,l,k){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,m,n,q,l,c,f);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,g||340,p||100+20*b,!0,!1,k);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,m,n,q,c,f,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,m,n,q,c,f,g);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,b,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(a,b)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),e=new mxDictionary,d=[],m=0;m<b.length;m++){var n=a.isTableCell(b[m])?a.model.getParent(b[m]):b[m];null==n||e.get(n)||(e.put(n,!0),d.push(n))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(q){this.handleError(q)}};
EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),m=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),n=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(n.container,230,m,!0,!1);n.init()};
@@ -2255,7 +2256,7 @@ EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind
EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(m){}return b};
EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){if(null!=b){var d=decodeURIComponent(b);this.isCompatibleString(d)&&(b=d)}a(b)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==b&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(b){b.text().then(mxUtils.bind(this,function(b){try{var d=this.parseHtmlData(b),e="text/plain"!=d.getAttribute("data-type")?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);try{var c=e.lastIndexOf("%3E");
-0<=c&&c<e.length-3&&(e=e.substring(0,c+3))}catch(k){}try{var f=d.getElementsByTagName("span"),g=null!=f&&0<f.length?mxUtils.trim(decodeURIComponent(f[0].textContent)):decodeURIComponent(e);this.isCompatibleString(g)&&(e=g)}catch(k){}}catch(k){}a(this.isCompatibleString(e)?e:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=e&&0<e.length&&"text"==b&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
+0<=c&&c<e.length-3&&(e=e.substring(0,c+3))}catch(p){}try{var f=d.getElementsByTagName("span"),g=null!=f&&0<f.length?mxUtils.trim(decodeURIComponent(f[0].textContent)):decodeURIComponent(e);this.isCompatibleString(g)&&(e=g)}catch(p){}}catch(p){}a(this.isCompatibleString(e)?e:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=e&&0<e.length&&"text"==b&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
else a(null)}))["catch"](function(b){a(null)})};
EditorUi.prototype.parseHtmlData=function(a){var b=null;if(null!=a&&0<a.length){var e="<meta "==a.substring(0,6),b=document.createElement("div");b.innerHTML=(e?'<meta charset="utf-8">':"")+this.editor.graph.sanitizeHtml(a);asHtml=!0;a=b.getElementsByTagName("style");if(null!=a)for(;0<a.length;)a[0].parentNode.removeChild(a[0]);null!=b.firstChild&&b.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.firstChild.nextSibling&&b.firstChild.nextSibling.nodeType==mxConstants.NODETYPE_ELEMENT&&"META"==
b.firstChild.nodeName&&"A"==b.firstChild.nextSibling.nodeName&&null==b.firstChild.nextSibling.nextSibling&&(a=null==b.firstChild.nextSibling.innerText?mxUtils.getTextContent(b.firstChild.nextSibling):b.firstChild.nextSibling.innerText,a==b.firstChild.nextSibling.getAttribute("href")&&(mxUtils.setTextContent(b,a),asHtml=!1));e=e&&null!=b.firstChild?b.firstChild.nextSibling:b.firstChild;null!=e&&null==e.nextSibling&&e.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==e.nodeName?(a=e.getAttribute("src"),
@@ -2271,14 +2272,14 @@ EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(thi
EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=b?b.src:"");null!=e&&0<e.length?(b=new Image,b.onload=function(){a(new mxImage(e,b.width,b.height),!1)},b.onerror=function(){a(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},b.src=e):a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()};EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);mxEvent.addListener(window,"resize",function(){b.update(!1)});return b};
EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
-EditorUi.prototype.createKeyHandler=function(a){function b(a,b,f){q.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(b=null!=b?b:1,f){d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),g=0;g<c.length;g++)if(d.getModel().isVertex(c[g])&&d.isCellResizable(c[g])){var e=d.getCellGeometry(c[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-b):38==a?e.height=Math.max(0,e.height-b):39==a?e.width+=b:40==a&&(e.height+=b),d.getModel().setGeometry(c[g],e))}}finally{d.getModel().endUpdate()}}else{var k=
-d.getSelectionCell(),e=d.model.getParent(k),c=null;1==d.getSelectionCount()&&d.model.isVertex(k)&&null!=d.layoutManager&&!d.isCellLocked(k)&&(c=d.layoutManager.getLayout(e));if(null!=c&&c.constructor==mxStackLayout)c=e.getIndex(k),37==a||38==a?d.model.add(e,k,Math.max(0,c-1)):39!=a&&40!=a||d.model.add(e,k,Math.min(d.model.getChildCount(e),c+1));else{c=d.getMovableCells(d.getSelectionCells());k=[];for(g=0;g<c.length;g++)e=d.getCurrentCellStyle(c[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(c[g]),
-d.model.isVertex(e)&&0>mxUtils.indexOf(c,e)&&k.push(e)):k.push(c[g]);0<k.length&&(c=e=0,37==a?e=-b:38==a?c=-b:39==a?e=b:40==a&&(c=b),d.moveCells(k,e,c))}}});null!=c&&window.clearTimeout(c);c=window.setTimeout(function(){if(0<q.length){d.getModel().beginUpdate();try{for(var a=0;a<q.length;a++)q[a]();q=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,m=new mxKeyHandler(d),n=m.isEventIgnored;m.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
+EditorUi.prototype.createKeyHandler=function(a){function b(a,b,f){q.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(b=null!=b?b:1,f){d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),g=0;g<c.length;g++)if(d.getModel().isVertex(c[g])&&d.isCellResizable(c[g])){var e=d.getCellGeometry(c[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-b):38==a?e.height=Math.max(0,e.height-b):39==a?e.width+=b:40==a&&(e.height+=b),d.getModel().setGeometry(c[g],e))}}finally{d.getModel().endUpdate()}}else{var l=
+d.getSelectionCell(),e=d.model.getParent(l),c=null;1==d.getSelectionCount()&&d.model.isVertex(l)&&null!=d.layoutManager&&!d.isCellLocked(l)&&(c=d.layoutManager.getLayout(e));if(null!=c&&c.constructor==mxStackLayout)c=e.getIndex(l),37==a||38==a?d.model.add(e,l,Math.max(0,c-1)):39!=a&&40!=a||d.model.add(e,l,Math.min(d.model.getChildCount(e),c+1));else{c=d.getMovableCells(d.getSelectionCells());l=[];for(g=0;g<c.length;g++)e=d.getCurrentCellStyle(c[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(c[g]),
+d.model.isVertex(e)&&0>mxUtils.indexOf(c,e)&&l.push(e)):l.push(c[g]);0<l.length&&(c=e=0,37==a?e=-b:38==a?c=-b:39==a?e=b:40==a&&(c=b),d.moveCells(l,e,c))}}});null!=c&&window.clearTimeout(c);c=window.setTimeout(function(){if(0<q.length){d.getModel().beginUpdate();try{for(var a=0;a<q.length;a++)q[a]();q=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,m=new mxKeyHandler(d),n=m.isEventIgnored;m.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&n.apply(this,arguments)};m.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};m.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var q=[],c=
null,f={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},g=m.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var c=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=c)return c.funct}if(null!=f[a.keyCode]&&!d.isSelectionEmpty())if(!this.isControlDown(a)&&mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var c=
d.connectVertex(d.getSelectionCell(),f[a.keyCode],d.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&d.model.isEdge(c[0])?d.setSelectionCell(d.model.getTerminal(c[0],!1)):d.setSelectionCell(c[c.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return g.apply(this,
-arguments)};m.bindAction=mxUtils.bind(this,function(a,c,b,f){var d=this.actions.get(b);null!=d&&(b=function(){d.isEnabled()&&d.funct()},c?f?m.bindControlShiftKey(a,b):m.bindControlKey(a,b):f?m.bindShiftKey(a,b):m.bindKey(a,b))});var k=this,l=m.escape;m.escape=function(a){l.apply(this,arguments)};m.enter=function(){};m.bindControlShiftKey(36,function(){d.exitGroup()});m.bindControlShiftKey(35,function(){d.enterGroup()});m.bindShiftKey(36,function(){d.home()});m.bindKey(35,function(){d.refresh()});
-m.bindAction(107,!0,"zoomIn");m.bindAction(109,!0,"zoomOut");m.bindAction(80,!0,"print");m.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)m.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),m.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),m.bindControlKey(13,function(){k.ctrlEnter()}),m.bindAction(8,!1,"delete"),m.bindAction(8,!0,"deleteAll"),m.bindAction(8,!1,"deleteLabels",!0),m.bindAction(46,!1,"delete"),m.bindAction(46,!0,"deleteAll"),
+arguments)};m.bindAction=mxUtils.bind(this,function(a,c,b,f){var d=this.actions.get(b);null!=d&&(b=function(){d.isEnabled()&&d.funct()},c?f?m.bindControlShiftKey(a,b):m.bindControlKey(a,b):f?m.bindShiftKey(a,b):m.bindKey(a,b))});var p=this,l=m.escape;m.escape=function(a){l.apply(this,arguments)};m.enter=function(){};m.bindControlShiftKey(36,function(){d.exitGroup()});m.bindControlShiftKey(35,function(){d.enterGroup()});m.bindShiftKey(36,function(){d.home()});m.bindKey(35,function(){d.refresh()});
+m.bindAction(107,!0,"zoomIn");m.bindAction(109,!0,"zoomOut");m.bindAction(80,!0,"print");m.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)m.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),m.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),m.bindControlKey(13,function(){p.ctrlEnter()}),m.bindAction(8,!1,"delete"),m.bindAction(8,!0,"deleteAll"),m.bindAction(8,!1,"deleteLabels",!0),m.bindAction(46,!1,"delete"),m.bindAction(46,!0,"deleteAll"),
m.bindAction(46,!1,"deleteLabels",!0),m.bindAction(36,!1,"resetView"),m.bindAction(72,!0,"fitWindow",!0),m.bindAction(74,!0,"fitPage"),m.bindAction(74,!0,"fitTwoPages",!0),m.bindAction(48,!0,"customZoom"),m.bindAction(82,!0,"turn"),m.bindAction(82,!0,"clearDefaultStyle",!0),m.bindAction(83,!0,"save"),m.bindAction(83,!0,"saveAs",!0),m.bindAction(65,!0,"selectAll"),m.bindAction(65,!0,"selectNone",!0),m.bindAction(73,!0,"selectVertices",!0),m.bindAction(69,!0,"selectEdges",!0),m.bindAction(69,!0,"editStyle"),
m.bindAction(66,!0,"bold"),m.bindAction(66,!0,"toBack",!0),m.bindAction(70,!0,"toFront",!0),m.bindAction(68,!0,"duplicate"),m.bindAction(68,!0,"setAsDefaultStyle",!0),m.bindAction(90,!0,"undo"),m.bindAction(89,!0,"autosize",!0),m.bindAction(88,!0,"cut"),m.bindAction(67,!0,"copy"),m.bindAction(86,!0,"paste"),m.bindAction(71,!0,"group"),m.bindAction(77,!0,"editData"),m.bindAction(71,!0,"grid",!0),m.bindAction(73,!0,"italic"),m.bindAction(76,!0,"lockUnlock"),m.bindAction(76,!0,"layers",!0),m.bindAction(80,
!0,"formatPanel",!0),m.bindAction(85,!0,"underline"),m.bindAction(85,!0,"ungroup",!0),m.bindAction(190,!0,"superscript"),m.bindAction(188,!0,"subscript"),m.bindAction(13,!1,"keyPressEnter"),m.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?m.bindAction(89,!0,"redo"):m.bindAction(90,!0,"redo",!0);return m};
@@ -2287,28 +2288,28 @@ EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),
"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var d=0;d<a.length;d++)e=e.replace(new RegExp("&"+a[d][0]+";","g"),"&#"+a[d][1]+";");return b(e)}})();
Date.prototype.toISOString||function(){function a(a){a=String(a);1===a.length&&(a="0"+a);return a}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,b=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},e=Math.pow(2,53)-1;return function(a){var d=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var n=1<arguments.length?arguments[1]:void 0,q;if("undefined"!==typeof n){if(!b(n))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(q=
-arguments[2])}var c;c=Number(d.length);c=isNaN(c)?0:0!==c&&isFinite(c)?(0<c?1:-1)*Math.floor(Math.abs(c)):c;c=Math.min(Math.max(c,0),e);for(var f=b(this)?Object(new this(c)):Array(c),g=0,k;g<c;)k=d[g],f[g]=n?"undefined"===typeof q?n(k,g):n.call(q,k,g):k,g+=1;f.length=c;return f}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
+arguments[2])}var c;c=Number(d.length);c=isNaN(c)?0:0!==c&&isFinite(c)?(0<c?1:-1)*Math.floor(Math.abs(c)):c;c=Math.min(Math.max(c,0),e);for(var f=b(this)?Object(new this(c)):Array(c),g=0,p;g<c;)p=d[g],f[g]=n?"undefined"===typeof q?n(p,g):n.call(q,p,g):p,g+=1;f.length=c;return f}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(a){this.unit!=a&&(this.unit=a,this.fireEvent(new mxEventObject("unitChanged","unit",a)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(a,b,e){return null};
mxImageShape.prototype.getImageDataUri=function(){var a=this.image;if("data:image/svg+xml;base64,"==a.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=a)this.clippedSvg=Graph.clipSvgDataUri(a),this.clippedImage=a;a=this.clippedSvg}return a};
Graph=function(a,b,e,d,m,n){mxGraph.call(this,a,b,e,d);this.themes=m||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=n?n:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
-return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var q=null,c=null,f=null,g=null,k=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(q=new mxPoint(d.getGraphX(),d.getGraphY()),k=this.isCellSelected(e.cell),f=e,c=d,null!=e.text&&null!=e.text.boundingBox&&
+return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var q=null,c=null,f=null,g=null,p=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(q=new mxPoint(d.getGraphX(),d.getGraphY()),p=this.isCellSelected(e.cell),f=e,c=d,null!=e.text&&null!=e.text.boundingBox&&
mxUtils.contains(e.text.boundingBox,d.getGraphX(),d.getGraphY()))g=mxEvent.LABEL_HANDLE;else{var l=this.selectionCellsHandler.getHandler(e.cell);null!=l&&null!=l.bends&&0<l.bends.length&&(g=l.getHandleForEvent(d))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&(l=this.selectionCellsHandler.getHandler(e.cell),null==l||null==l.getHandleForEvent(d))){var v=new mxRectangle(d.getGraphX()-1,d.getGraphY()-1);v.grow(mxEvent.isTouchEvent(d.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var p=this.model.getParent(e.cell),l=this.model.getParent(p);if(!this.isCellSelected(l)&&(mxUtils.intersects(v,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(l,0)!=p||mxUtils.intersects(v,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(v,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(p,0)!=e.cell||mxUtils.intersects(v,new mxRectangle(e.x+e.width-
-2,e.y,2,e.height)))&&(p=this.selectionCellsHandler.isHandled(l),this.selectCellForEvent(l,d.getEvent()),l=this.selectionCellsHandler.getHandler(l),null!=l)){var n=l.getHandleForEvent(d);null!=n&&(l.start(d.getGraphX(),d.getGraphY(),n),l.blockDelayedSelection=!p,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(l=this.getActualStartSize(e.cell),p=this.view.scale,(0<l.x||0<l.width)&&mxUtils.intersects(v,
-new mxRectangle(e.x+(l.x-l.width-1)*p+(0==l.x?e.width:0),e.y,1,e.height))||(0<l.y||0<l.height)&&mxUtils.intersects(v,new mxRectangle(e.x,e.y+(l.y-l.height-1)*p+(0==l.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),l=this.selectionCellsHandler.getHandler(e.cell),null!=l&&(n=mxEvent.CUSTOM_HANDLE-l.customHandles.length+1,l.start(d.getGraphX(),d.getGraphY(),n),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var k=this.model.getParent(e.cell),l=this.model.getParent(k);if(!this.isCellSelected(l)&&(mxUtils.intersects(v,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(l,0)!=k||mxUtils.intersects(v,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(v,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(k,0)!=e.cell||mxUtils.intersects(v,new mxRectangle(e.x+e.width-
+2,e.y,2,e.height)))&&(k=this.selectionCellsHandler.isHandled(l),this.selectCellForEvent(l,d.getEvent()),l=this.selectionCellsHandler.getHandler(l),null!=l)){var n=l.getHandleForEvent(d);null!=n&&(l.start(d.getGraphX(),d.getGraphY(),n),l.blockDelayedSelection=!k,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(l=this.getActualStartSize(e.cell),k=this.view.scale,(0<l.x||0<l.width)&&mxUtils.intersects(v,
+new mxRectangle(e.x+(l.x-l.width-1)*k+(0==l.x?e.width:0),e.y,1,e.height))||(0<l.y||0<l.height)&&mxUtils.intersects(v,new mxRectangle(e.x,e.y+(l.y-l.height-1)*k+(0==l.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),l=this.selectionCellsHandler.getHandler(e.cell),null!=l&&(n=mxEvent.CUSTOM_HANDLE-l.customHandles.length+1,l.start(d.getGraphX(),d.getGraphY(),n),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,e;for(e in d)if(null!=d[e].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(e=this.tolerance,null!=q&&null!=f&&null!=c){if(d=f,Math.abs(q.x-b.getGraphX())>e||Math.abs(q.y-b.getGraphY())>e){var l=this.selectionCellsHandler.getHandler(d.cell);null==l&&this.model.isEdge(d.cell)&&(l=this.createHandler(d));if(null!=l&&null!=l.bends&&0<l.bends.length){e=l.getHandleForEvent(c);
-var v=this.view.getEdgeStyle(d),p=v==mxEdgeStyle.EntityRelation;k||g!=mxEvent.LABEL_HANDLE||(e=g);if(p&&0!=e&&e!=l.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!p||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==l.bends.length-1||null!=d.visibleTargetState)p||e==mxEvent.LABEL_HANDLE||(p=d.absolutePoints,null!=p&&(null==v&&null==e||v==mxEdgeStyle.OrthConnector)&&(e=g,null==e&&(e=new mxRectangle(q.x,
-q.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,p[0].x,p[0].y)?e=0:mxUtils.contains(e,p[p.length-1].x,p[p.length-1].y)?e=l.bends.length-1:null!=v&&(2==p.length||3==p.length&&(0==Math.round(p[0].x-p[1].x)&&0==Math.round(p[1].x-p[2].x)||0==Math.round(p[0].y-p[1].y)&&0==Math.round(p[1].y-p[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,q.x,q.y),e=null==v?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),l.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
-l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,l),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||l.destroy());k=!1;q=c=f=g=null}}else if(d=b.getState(),null!=d&&this.isCellEditable(d.cell)){l=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),p=d.absolutePoints,null!=p)if(null!=d.text&&null!=d.text.boundingBox&&
-mxUtils.contains(d.text.boundingBox,b.getGraphX(),b.getGraphY()))l="move";else if(mxUtils.contains(e,p[0].x,p[0].y)||mxUtils.contains(e,p[p.length-1].x,p[p.length-1].y))l="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),l="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<p.length-1&&0<=e&&(l=0==Math.round(p[e].x-p[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=
-new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(p=this.model.getParent(d.cell),v=this.model.getParent(p),!this.isCellSelected(v)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(p,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))l="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(v,0)!=p||mxUtils.intersects(e,
-new mxRectangle(d.x,d.y+d.height-2,d.width,3)))l="row-resize";for(p=d;null==l&&null!=p&&(this.isTableCell(p.cell)||this.isTableRow(p.cell)||this.isTable(p.cell));){if(this.isSwimlane(p.cell)){var v=this.getActualStartSize(p.cell),n=this.view.scale;(0<v.x||0<v.width)&&mxUtils.intersects(e,new mxRectangle(p.x+(v.x-v.width-1)*n+(0==v.x?p.width*n:0),p.y,1,p.height))?l="col-resize":(0<v.y||0<v.height)&&mxUtils.intersects(e,new mxRectangle(p.x,p.y+(v.y-v.height-1)*n+(0==v.y?p.height:0),p.width,1))&&(l=
-"row-resize")}p=this.view.getState(this.model.getParent(p.cell))}}null!=l&&d.setCursor(l)}}),mouseUp:mxUtils.bind(this,function(a,b){g=q=c=f=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
+var v=this.view.getEdgeStyle(d),k=v==mxEdgeStyle.EntityRelation;p||g!=mxEvent.LABEL_HANDLE||(e=g);if(k&&0!=e&&e!=l.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!k||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==l.bends.length-1||null!=d.visibleTargetState)k||e==mxEvent.LABEL_HANDLE||(k=d.absolutePoints,null!=k&&(null==v&&null==e||v==mxEdgeStyle.OrthConnector)&&(e=g,null==e&&(e=new mxRectangle(q.x,
+q.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,k[0].x,k[0].y)?e=0:mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y)?e=l.bends.length-1:null!=v&&(2==k.length||3==k.length&&(0==Math.round(k[0].x-k[1].x)&&0==Math.round(k[1].x-k[2].x)||0==Math.round(k[0].y-k[1].y)&&0==Math.round(k[1].y-k[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,q.x,q.y),e=null==v?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),l.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
+l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,l),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||l.destroy());p=!1;q=c=f=g=null}}else if(d=b.getState(),null!=d&&this.isCellEditable(d.cell)){l=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),k=d.absolutePoints,null!=k)if(null!=d.text&&null!=d.text.boundingBox&&
+mxUtils.contains(d.text.boundingBox,b.getGraphX(),b.getGraphY()))l="move";else if(mxUtils.contains(e,k[0].x,k[0].y)||mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y))l="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),l="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<k.length-1&&0<=e&&(l=0==Math.round(k[e].x-k[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=
+new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(k=this.model.getParent(d.cell),v=this.model.getParent(k),!this.isCellSelected(v)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(k,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))l="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(v,0)!=k||mxUtils.intersects(e,
+new mxRectangle(d.x,d.y+d.height-2,d.width,3)))l="row-resize";for(k=d;null==l&&null!=k&&(this.isTableCell(k.cell)||this.isTableRow(k.cell)||this.isTable(k.cell));){if(this.isSwimlane(k.cell)){var v=this.getActualStartSize(k.cell),n=this.view.scale;(0<v.x||0<v.width)&&mxUtils.intersects(e,new mxRectangle(k.x+(v.x-v.width-1)*n+(0==v.x?k.width*n:0),k.y,1,k.height))?l="col-resize":(0<v.y||0<v.height)&&mxUtils.intersects(e,new mxRectangle(k.x,k.y+(v.y-v.height-1)*n+(0==v.y?k.height:0),k.width,1))&&(l=
+"row-resize")}k=this.view.getState(this.model.getParent(k.cell))}}null!=l&&d.setCursor(l)}}),mouseUp:mxUtils.bind(this,function(a,b){g=q=c=f=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var l=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=l.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)c.push(new mxRectangle(((g.x+k)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(k=1;k<g.height;k++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+k)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
-function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=p.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&
+function(){var a=l.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),p=0;p<g.width;p++)c.push(new mxRectangle(((g.x+p)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(p=1;p<g.height;p++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+p)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
+function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var k=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=k.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&
this.graph.isCellSelected(c[f])?this.graph.model.getParent(c[f]):this.graph.isTableRow(a)&&this.graph.isTableRow(c[f])&&this.graph.isCellSelected(c[f])?c[f]:this.graph.getCompositeParent(c[f]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}return d};var u=this.graphHandler.start;this.graphHandler.start=function(a,c,b,d){var f=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?f=!0:a=this.graph.model.getParent(a));f||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));
u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,c){c=this.graph.getCompositeParent(c);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var t=new mxRubberband(this);this.getRubberband=function(){return t};var A=(new Date).getTime(),y=0,I=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;I.apply(this,arguments);a!=this.currentState?(A=(new Date).getTime(),y=0):y=(new Date).getTime()-A};var x=
this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<y||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&x.apply(this,arguments)};var F=this.isToggleEvent;this.isToggleEvent=function(a){return F.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var H=t.isForceRubberbandEvent;t.isForceRubberbandEvent=function(a){return H.apply(this,
@@ -2339,18 +2340,18 @@ Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);th
d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(b.node,c,f,g);mxEvent.addListener(b.node,"click",function(a){mxEvent.consume(a)})};if(null!=this.tooltipHandler){var b=this.tooltipHandler.init;this.tooltipHandler.init=function(){b.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);"A"==b.nodeName&&(b=b.getAttribute("href"),null!=
b&&this.graph.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&this.graph.customLinkClicked(b)&&mxEvent.consume(a))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){if(null!=this.container&&this.flowAnimationStyle){var d=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(d)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.getVerticesAndEdges=function(a,b){a=null!=a?a:!0;b=null!=b?b:!0;var c=this.model;return c.filterDescendants(function(d){return a&&c.isVertex(d)||b&&c.isEdge(d)},c.getRoot())};Graph.prototype.getCommonStyle=function(a){for(var b={},c=0;c<a.length;c++){var d=this.view.getState(a[c]);this.mergeStyle(d.style,b,0==c)}return b};Graph.prototype.mergeStyle=function(a,
-b,c){if(null!=a){var d={},e;for(e in a){var k=a[e];null!=k&&(d[e]=!0,null==b[e]&&c?b[e]=k:b[e]!=k&&delete b[e])}for(e in b)d[e]||delete b[e]}};Graph.prototype.getStartEditingCell=function(a,b){var c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
-(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var k=d.substring(0,e),d=d.substring(e+1);null==b[k]&&d==mxConstants.NONE&&
-(b[k]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;this.model.beginUpdate();try{for(var d=0;d<b.length;d++)for(var e=this.getCurrentCellStyle(b[d]),k=0;k<c.length;k++){var l=e[c[k]],p=a[c[k]];l==p||null==l&&p==mxConstants.NONE||this.setCellStyles(c[k],p,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||
-mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,c,d,e,k){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,e,k){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),
-null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var f=this.model.getChildCount(c)-1;0<=f;f--){var g=this.model.getChildAt(c,f),n=this.getScaledCellAt(a,b,g,d,e,k);if(null!=n)return n;if(this.isCellVisible(g)&&(e&&this.model.isEdge(g)||d&&this.model.isVertex(g))&&(n=this.view.getState(g),null!=n&&(null==k||!k(n,a,b))&&this.intersects(n,a,b)))return g}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
+b,c){if(null!=a){var d={},e;for(e in a){var p=a[e];null!=p&&(d[e]=!0,null==b[e]&&c?b[e]=p:b[e]!=p&&delete b[e])}for(e in b)d[e]||delete b[e]}};Graph.prototype.getStartEditingCell=function(a,b){var c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
+(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var p=d.substring(0,e),d=d.substring(e+1);null==b[p]&&d==mxConstants.NONE&&
+(b[p]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;this.model.beginUpdate();try{for(var d=0;d<b.length;d++)for(var e=this.getCurrentCellStyle(b[d]),p=0;p<c.length;p++){var l=e[c[p]],k=a[c[p]];l==k||null==l&&k==mxConstants.NONE||this.setCellStyles(c[p],k,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||
+mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,c,d,e,p){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,e,p){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),
+null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var f=this.model.getChildCount(c)-1;0<=f;f--){var g=this.model.getChildAt(c,f),n=this.getScaledCellAt(a,b,g,d,e,p);if(null!=n)return n;if(this.isCellVisible(g)&&(e&&this.model.isEdge(g)||d&&this.model.isVertex(g))&&(n=this.view.getState(g),null!=n&&(null==p||!p(n,a,b))&&this.intersects(n,a,b)))return g}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.getAbsoluteParent=function(a){for(var b=this.getCellGeometry(a);null!=b&&b.relative;)a=this.getModel().getParent(a),b=this.getCellGeometry(cellToClone);return a};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=
this.model.getParent(a);if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();if(null!=a){for(var c=[],d=0;d<b.length;d++)a(b[d])||c.push(b[d]);b=c}return b};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,
c=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*c,(a.y+b.y)*c,a.width*c,a.height*c);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=
0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var b=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(a){a=b.apply(this,arguments);for(var d=[],c=0;c<a.length;c++)this.isTableRow(a[c])||this.isTableCell(a[c])||d.push(a[c]);return d};var e=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=
function(a){a=e.apply(this,arguments);for(var b=[],c=0;c<a.length;c++)this.isTable(a[c])||this.isTableRow(a[c])||this.isTableCell(a[c])||b.push(a[c]);return b};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var c=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+c+","+c+")translate("+Math.round(100*this.currentTranslate.x)/
100+","+Math.round(100*this.currentTranslate.y)/100+")");b!=a.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",a.getAttribute("transform"))}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,c=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);
-d.apply(this,arguments);a&&(this.scale=b,this.translate=c)};var m=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.useCssTransforms,e=this.view.scale,k=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);m.apply(this,arguments);d&&(this.view.scale=e,this.view.translate=k,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
+d.apply(this,arguments);a&&(this.scale=b,this.translate=c)};var m=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.useCssTransforms,e=this.view.scale,p=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);m.apply(this,arguments);d&&(this.view.scale=e,this.view.translate=p,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
Graph.prototype.openLink=function(a,b,e){var d=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var m=a.split("#")[1];window.location.hash=="#"+m&&(window.location.hash="");window.location.hash=m}else d=window.open(a,null!=b?b:"_blank"),null==d||e||(d.opener=null)}catch(n){}return d};
Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
@@ -2368,28 +2369,28 @@ Graph.prototype.isLabelMovable=function(a){var b=this.getCurrentCellStyle(a);ret
Graph.prototype.getClickableLinkForCell=function(a){do{var b=this.getLinkForCell(a);if(null!=b)return b;a=this.model.getParent(a)}while(null!=a);return null};Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,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 d=this.dateFormatCache,m=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,n=/[^-+\dA-Z]/g,q=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var c=e?"getUTC":"get",f=a[c+"Date"](),g=a[c+"Day"](),k=a[c+"Month"](),l=a[c+"FullYear"](),p=a[c+"Hours"](),u=a[c+"Minutes"](),t=a[c+"Seconds"](),c=a[c+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),y={d:f,dd:q(f),ddd:d.i18n.dayNames[g],dddd:d.i18n.dayNames[g+7],m:k+1,mm:q(k+1),mmm:d.i18n.monthNames[k],mmmm:d.i18n.monthNames[k+
-12],yy:String(l).slice(2),yyyy:l,h:p%12||12,hh:q(p%12||12),H:p,HH:q(p),M:u,MM:q(u),s:t,ss:q(t),l:q(c,3),L:q(99<c?Math.round(c/10):c),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(m)||[""]).pop().replace(n,""),o:(0<A?"-":"+")+q(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in y?y[a]:a.slice(1,
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var c=e?"getUTC":"get",f=a[c+"Date"](),g=a[c+"Day"](),p=a[c+"Month"](),l=a[c+"FullYear"](),k=a[c+"Hours"](),u=a[c+"Minutes"](),t=a[c+"Seconds"](),c=a[c+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),y={d:f,dd:q(f),ddd:d.i18n.dayNames[g],dddd:d.i18n.dayNames[g+7],m:p+1,mm:q(p+1),mmm:d.i18n.monthNames[p],mmmm:d.i18n.monthNames[p+
+12],yy:String(l).slice(2),yyyy:l,h:k%12||12,hh:q(k%12||12),H:k,HH:q(k),M:u,MM:q(u),s:t,ss:q(t),l:q(c,3),L:q(99<c?Math.round(c/10):c),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(m)||[""]).pop().replace(n,""),o:(0<A?"-":"+")+q(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in y?y[a]:a.slice(1,
a.length-1)})};Graph.prototype.getLayerForCells=function(a){var b=null;if(0<a.length){for(b=a[0];!this.model.isLayer(b);)b=this.model.getParent(b);for(var e=1;e<a.length;e++)if(!this.model.isAncestor(b,a[e])){b=null;break}}return b};
Graph.prototype.createLayersDialog=function(a){var b=document.createElement("div");b.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),m=0;m<d;m++)mxUtils.bind(this,function(d){var n=document.createElement("div");n.style.overflow="hidden";n.style.textOverflow="ellipsis";n.style.padding="2px";n.style.whiteSpace="nowrap";var c=document.createElement("input");c.style.display="inline-block";c.setAttribute("type","checkbox");e.isVisible(d)&&(c.setAttribute("checked","checked"),
c.defaultChecked=!0);n.appendChild(c);var f=this.convertValueToString(d)||mxResources.get("background")||"Background";n.setAttribute("title",f);mxUtils.write(n,f);b.appendChild(n);mxEvent.addListener(c,"click",function(){null!=c.getAttribute("checked")?c.removeAttribute("checked"):c.setAttribute("checked","checked");e.setVisible(d,c.checked);null!=a&&a(d)})})(e.getChildAt(e.root,m));return b};
Graph.prototype.replacePlaceholders=function(a,b,e,d){d=[];if(null!=b){for(var m=0;match=this.placeholderPattern.exec(b);){var n=match[0];if(2<n.length&&"%label%"!=n&&"%tooltip%"!=n){var q=null;if(match.index>m&&"%"==b.charAt(match.index-1))q=n.substring(1);else{var c=n.substring(1,n.length-1);if("id"==c)q=a.id;else if(0>c.indexOf("{"))for(var f=a;null==q&&null!=f;)null!=f.value&&"object"==typeof f.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(q=f.getAttribute(c+"_"+Graph.diagramLanguage)),
null==q&&(q=f.hasAttribute(c)?null!=f.getAttribute(c)?f.getAttribute(c):"":null)),f=this.model.getParent(f);null==q&&(q=this.getGlobalVariable(c));null==q&&null!=e&&(q=e[c])}d.push(b.substring(m,match.index)+(null!=q?q:n));m=match.index+n.length}}d.push(b.substring(m))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],e=0;e<a.length;e++){var d=this.model.getCell(a[e].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(a,b,e,d,m,n,q,c){n=n?n:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var f=this.isCloneConnectSource(a),g=f?a:this.getCompositeParent(a),k=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);b==mxConstants.DIRECTION_NORTH?(k.x+=g.geometry.width/2,k.y-=e):b==
-mxConstants.DIRECTION_SOUTH?(k.x+=g.geometry.width/2,k.y+=g.geometry.height+e):(k.x=b==mxConstants.DIRECTION_WEST?k.x-e:k.x+(g.geometry.width+e),k.y+=g.geometry.height/2);var l=this.view.getState(this.model.getParent(a));e=this.view.scale;var p=this.view.translate,g=p.x*e,p=p.y*e;null!=l&&this.model.isVertex(l.cell)&&(g=l.x,p=l.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(k.x+=a.parent.geometry.x,k.y+=a.parent.geometry.y);n=n?null:(new mxRectangle(g+k.x*e,p+k.y*e)).grow(40*e);n=null!=n?
+Graph.prototype.connectVertex=function(a,b,e,d,m,n,q,c){n=n?n:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var f=this.isCloneConnectSource(a),g=f?a:this.getCompositeParent(a),p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=g.geometry.width/2,p.y-=e):b==
+mxConstants.DIRECTION_SOUTH?(p.x+=g.geometry.width/2,p.y+=g.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(g.geometry.width+e),p.y+=g.geometry.height/2);var l=this.view.getState(this.model.getParent(a));e=this.view.scale;var k=this.view.translate,g=k.x*e,k=k.y*e;null!=l&&this.model.isVertex(l.cell)&&(g=l.x,k=l.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);n=n?null:(new mxRectangle(g+p.x*e,k+p.y*e)).grow(40*e);n=null!=n?
this.getCells(0,0,0,0,null,null,n,null,!0):null;var l=this.view.getState(a),u=null,t=null;if(null!=n){n=n.reverse();for(var A=0;A<n.length;A++)if(!this.isCellLocked(n[A])&&!this.model.isEdge(n[A])&&n[A]!=a)if(!this.model.isAncestor(a,n[A])&&this.isContainer(n[A])&&(null==u||n[A]==this.model.getParent(a)))u=n[A];else if(null==t&&this.isCellConnectable(n[A])&&!this.model.isAncestor(n[A],a)&&!this.isSwimlane(n[A])){var y=this.view.getState(n[A]);null==l||null==y||mxUtils.intersects(l,y)||(t=n[A])}}var I=
-!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||m;I&&("1"!=urlParams.sketch||m)&&(b==mxConstants.DIRECTION_NORTH?k.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?k.y+=a.geometry.height/2:k.x=b==mxConstants.DIRECTION_WEST?k.x-a.geometry.width/2:k.x+a.geometry.width/2);var x=[],F=t,t=u;m=mxUtils.bind(this,function(e){if(null==q||null!=e||null==t&&f){this.model.beginUpdate();try{if(null==F&&I){var g=this.getAbsoluteParent(null!=e?e:a),g=f?a:this.getCompositeParent(g);F=null!=e?e:this.duplicateCells([g],
-!1)[0];null!=e&&this.addCells([F],this.model.getParent(a),null,null,null,!0);var l=this.getCellGeometry(F);null!=l&&(null!=e&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?k.y-=l.height/2:b==mxConstants.DIRECTION_SOUTH?k.y+=l.height/2:k.x=b==mxConstants.DIRECTION_WEST?k.x-l.width/2:k.x+l.width/2),l.x=k.x-l.width/2,l.y=k.y-l.height/2);null!=u?(this.addCells([F],u,null,null,null,!0),t=null):I&&!f&&this.addCells([F],this.getDefaultParent(),null,null,null,!0)}var p=mxEvent.isControlDown(d)&&
-mxEvent.isShiftDown(d)&&I||null==t&&f?null:this.insertEdge(this.model.getParent(a),null,"",a,F,this.createCurrentEdgeStyle());if(null!=p&&this.connectionHandler.insertBeforeSource){var n=null;for(e=a;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&&(n=e.parent.getIndex(e),this.model.add(e.parent,p,n))}null==t&&null!=F&&null!=a.parent&&f&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
-F,n));null!=p&&x.push(p);null==t&&null!=F&&x.push(F);null==F&&null!=p&&p.geometry.setTerminalPoint(k,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=c)c(x);else return x});if(null==q||null!=F||!I||null==t&&f)return m(F);q(g+k.x*e,p+k.y*e,m)};
+!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||m;I&&("1"!=urlParams.sketch||m)&&(b==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2);var x=[],F=t,t=u;m=mxUtils.bind(this,function(e){if(null==q||null!=e||null==t&&f){this.model.beginUpdate();try{if(null==F&&I){var g=this.getAbsoluteParent(null!=e?e:a),g=f?a:this.getCompositeParent(g);F=null!=e?e:this.duplicateCells([g],
+!1)[0];null!=e&&this.addCells([F],this.model.getParent(a),null,null,null,!0);var l=this.getCellGeometry(F);null!=l&&(null!=e&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?p.y-=l.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=l.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-l.width/2:p.x+l.width/2),l.x=p.x-l.width/2,l.y=p.y-l.height/2);null!=u?(this.addCells([F],u,null,null,null,!0),t=null):I&&!f&&this.addCells([F],this.getDefaultParent(),null,null,null,!0)}var k=mxEvent.isControlDown(d)&&
+mxEvent.isShiftDown(d)&&I||null==t&&f?null:this.insertEdge(this.model.getParent(a),null,"",a,F,this.createCurrentEdgeStyle());if(null!=k&&this.connectionHandler.insertBeforeSource){var n=null;for(e=a;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=k.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==k.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,k,n))}null==t&&null!=F&&null!=a.parent&&f&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
+F,n));null!=k&&x.push(k);null==t&&null!=F&&x.push(F);null==F&&null!=k&&k.geometry.setTerminalPoint(p,!1);null!=k&&this.fireEvent(new mxEventObject("cellsInserted","cells",[k]))}finally{this.model.endUpdate()}}if(null!=c)c(x);else return x});if(null==q||null!=F||!I||null==t&&f)return m(F);q(g+p.x*e,k+p.y*e,m)};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var e=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),d=a;null==e&&null!=d;)null!=d.value&&"object"==typeof d.value&&(e=d.hasAttribute(b)?null!=d.getAttribute(b)?d.getAttribute(b):"":null),d=this.model.getParent(d);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=b.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=b.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a,b){return mxEvent.isShiftDown(a)||"1"==mxUtils.getValue(b.style,"moveCells","0")};
-Graph.prototype.foldCells=function(a,b,e,d,m){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var n=0;n<e.length;n++){var q=this.view.getState(e[n]),c=this.getCellGeometry(e[n]);if(null!=q&&null!=c){var f=Math.round(c.width-q.width/this.view.scale),g=Math.round(c.height-q.height/this.view.scale);if(0!=g||0!=f){var k=this.model.getParent(e[n]),l=this.layoutManager.getLayout(k);
-null==l?null!=m&&this.isMoveCellsEvent(m,q)&&this.moveSiblings(q,k,f,g):null!=m&&mxEvent.isAltDown(m)||l.constructor!=mxStackLayout||l.resizeLast||this.resizeParentStacks(k,l,f,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.foldCells=function(a,b,e,d,m){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var n=0;n<e.length;n++){var q=this.view.getState(e[n]),c=this.getCellGeometry(e[n]);if(null!=q&&null!=c){var f=Math.round(c.width-q.width/this.view.scale),g=Math.round(c.height-q.height/this.view.scale);if(0!=g||0!=f){var p=this.model.getParent(e[n]),l=this.layoutManager.getLayout(p);
+null==l?null!=m&&this.isMoveCellsEvent(m,q)&&this.moveSiblings(q,p,f,g):null!=m&&mxEvent.isAltDown(m)||l.constructor!=mxStackLayout||l.resizeLast||this.resizeParentStacks(p,l,f,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var m=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<m.length;b++)if(m[b]!=a.cell){var n=this.view.getState(m[b]),q=this.getCellGeometry(m[b]);null!=n&&null!=q&&(q=q.clone(),q.translate(Math.round(e*Math.max(0,Math.min(1,(n.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(n.y-a.y)/a.height)))),this.model.setGeometry(m[b],q))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var m=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==m&&!b.resizeLast;){var n=this.getCellGeometry(a),q=this.view.getState(a);null!=q&&null!=n&&(n=n.clone(),b.horizontal?n.width+=e+Math.min(0,q.width/this.view.scale-n.width):n.height+=d+Math.min(0,q.height/this.view.scale-n.height),this.model.setGeometry(a,
n));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
@@ -2441,27 +2442,27 @@ Graph.prototype.createTable=function(a,b,e,d,m,n,q,c,f){e=null!=e?e:60;d=null!=d
Graph.prototype.createCrossFunctionalSwimlane=function(a,b,e,d,m,n,q,c,f){e=null!=e?e:120;d=null!=d?d:120;m=null!=m?m:40;q=null!=q?q:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+m+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";c=null!=c?c:"swimlane;connectable=0;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";f=null!=f?f:"swimlane;connectable=0;startSize=0;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";m=this.createVertex(null,
null,"",0,0,b*e,a*d,null!=n?n:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+m+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");n=mxUtils.getValue(this.getCellStyle(m),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);m.geometry.width+=n;m.geometry.height+=n;q=this.createVertex(null,null,"",0,n,b*e+n,d,q);m.insert(this.createParent(q,this.createVertex(null,null,"",n,0,e,d,c),b,e,0));return 1<a?(q.geometry.y=d+n,this.createParent(m,this.createParent(q,
this.createVertex(null,null,"",n,0,e,d,f),b,e,0),a-1,0,d)):m};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
-Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var m=this.getCellGeometry(a);if(null!=m){m=m.clone();m.height+=b;d.setGeometry(a,m);var n=d.getParent(a),q=d.getChildCells(n,!0);if(!e){var c=mxUtils.indexOf(q,a);if(c<q.length-1){var f=q[c+1],g=this.getCellGeometry(f);null!=g&&(g=g.clone(),g.y+=b,g.height-=b,d.setGeometry(f,g))}}var k=this.getCellGeometry(n);null!=k&&(e||(e=a==q[q.length-1]),e&&(k=k.clone(),k.height+=b,d.setGeometry(n,k)));
+Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var m=this.getCellGeometry(a);if(null!=m){m=m.clone();m.height+=b;d.setGeometry(a,m);var n=d.getParent(a),q=d.getChildCells(n,!0);if(!e){var c=mxUtils.indexOf(q,a);if(c<q.length-1){var f=q[c+1],g=this.getCellGeometry(f);null!=g&&(g=g.clone(),g.y+=b,g.height-=b,d.setGeometry(f,g))}}var p=this.getCellGeometry(n);null!=p&&(e||(e=a==q[q.length-1]),e&&(p=p.clone(),p.height+=b,d.setGeometry(n,p)));
null!=this.layoutManager&&this.layoutManager.executeLayout(n,!0)}}finally{d.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),m=d.getParent(a),n=d.getParent(m),q=d.getChildCells(m,!0);a=mxUtils.indexOf(q,a);var c=a==q.length-1;d.beginUpdate();try{for(var f=d.getChildCells(n,!0),g=0;g<f.length;g++){var m=f[g],q=d.getChildCells(m,!0),k=q[a],l=this.getCellGeometry(k);null!=l&&(l=l.clone(),l.width+=b,d.setGeometry(k,l));a<q.length-1&&(k=q[a+1],l=this.getCellGeometry(k),null!=l&&(l=l.clone(),l.x+=b,e||(l.width-=b),d.setGeometry(k,l)))}if(c||
-e){var p=this.getCellGeometry(n);null!=p&&(p=p.clone(),p.width+=b,d.setGeometry(n,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(n,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),m=d.getParent(a),n=d.getParent(m),q=d.getChildCells(m,!0);a=mxUtils.indexOf(q,a);var c=a==q.length-1;d.beginUpdate();try{for(var f=d.getChildCells(n,!0),g=0;g<f.length;g++){var m=f[g],q=d.getChildCells(m,!0),p=q[a],l=this.getCellGeometry(p);null!=l&&(l=l.clone(),l.width+=b,d.setGeometry(p,l));a<q.length-1&&(p=q[a+1],l=this.getCellGeometry(p),null!=l&&(l=l.clone(),l.x+=b,e||(l.width-=b),d.setGeometry(p,l)))}if(c||
+e){var k=this.getCellGeometry(n);null!=k&&(k=k.clone(),k.width+=b,d.setGeometry(n,k))}null!=this.layoutManager&&this.layoutManager.executeLayout(n,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
TableLayout.prototype.getSize=function(a,b){for(var e=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var m=this.graph.getCellGeometry(a[d]);null!=m&&(e+=b?m.width:m.height)}return e};TableLayout.prototype.getRowLayout=function(a,b){for(var e=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0),m=this.getSize(e,!0),n=b-d.x-d.width,q=[],d=d.x,c=0;c<e.length;c++){var f=this.graph.getCellGeometry(e[c]);null!=f&&(d+=f.width*n/m,q.push(Math.round(d)))}return q};
TableLayout.prototype.layoutRow=function(a,b,e,d){var m=this.graph.getModel(),n=m.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var q=a.x,c=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var f=0;f<n.length;f++){var g=this.graph.getCellGeometry(n[f]);null!=g&&(g=g.clone(),g.y=a.y,g.height=e-a.y-a.height,null!=b?(g.x=b[f],g.width=b[f+1]-g.x,f==n.length-1&&f<b.length-2&&(g.width=d-g.x-a.x-a.width)):(g.x=q,q+=g.width,f==n.length-1?g.width=d-a.x-a.width-c:c+=g.width),m.setGeometry(n[f],g))}return c};
-TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),m="1"==mxUtils.getValue(d,"resizeLastRow","0"),n="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),q=this.graph.getModel(),c=0;q.beginUpdate();try{var f=e.height-b.y-b.height,g=e.width-b.x-b.width,k=q.getChildCells(a,!0),l=this.getSize(k,!1);if(0<f&&0<g&&0<k.length&&0<l){if(m){var p=this.graph.getCellGeometry(k[k.length-
-1]);null!=p&&(p=p.clone(),p.height=f-l+p.height,q.setGeometry(k[k.length-1],p))}for(var u=n?null:this.getRowLayout(k[0],g),t=b.y,A=0;A<k.length;A++)p=this.graph.getCellGeometry(k[A]),null!=p&&(p=p.clone(),p.x=b.x,p.width=g,p.y=Math.round(t),t=m||d?t+p.height:t+p.height/l*f,p.height=Math.round(t)-p.y,q.setGeometry(k[A],p)),c=Math.max(c,this.layoutRow(k[A],u,p.height,g));d&&f<l&&(e=e.clone(),e.height=t+b.height,q.setGeometry(a,e));n&&g<c+Graph.minTableColumnWidth&&(e=e.clone(),e.width=c+b.width+b.x+
+TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),m="1"==mxUtils.getValue(d,"resizeLastRow","0"),n="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),q=this.graph.getModel(),c=0;q.beginUpdate();try{var f=e.height-b.y-b.height,g=e.width-b.x-b.width,p=q.getChildCells(a,!0),l=this.getSize(p,!1);if(0<f&&0<g&&0<p.length&&0<l){if(m){var k=this.graph.getCellGeometry(p[p.length-
+1]);null!=k&&(k=k.clone(),k.height=f-l+k.height,q.setGeometry(p[p.length-1],k))}for(var u=n?null:this.getRowLayout(p[0],g),t=b.y,A=0;A<p.length;A++)k=this.graph.getCellGeometry(p[A]),null!=k&&(k=k.clone(),k.x=b.x,k.width=g,k.y=Math.round(t),t=m||d?t+k.height:t+k.height/l*f,k.height=Math.round(t)-k.y,q.setGeometry(p[A],k)),c=Math.max(c,this.layoutRow(p[A],u,k.height,g));d&&f<l&&(e=e.clone(),e.height=t+b.height,q.setGeometry(a,e));n&&g<c+Graph.minTableColumnWidth&&(e=e.clone(),e.width=c+b.width+b.x+
Graph.minTableColumnWidth,q.setGeometry(a,e))}}finally{q.endUpdate()}}};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){c=null!=c?c:!0;var d=this.getState(a);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=b.apply(this,
arguments);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};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 a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return d.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var m=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){m.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var f=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=
-c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var k=c[g+1],n=c[g],m=[],q=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,q.x,q.y,k.x,k.y)<1*this.scale*this.scale;)k=q,g++,q=c[g+2];for(var b=f(0,n.x,n.y)||b,L=0;L<this.validEdges.length;L++){var G=this.validEdges[L],J=G.absolutePoints;if(null!=J&&mxUtils.intersects(a,G)&&"1"!=G.style.noJump)for(G=0;G<J.length-1;G++){for(var D=J[G+1],M=J[G],q=J[G+2];G<J.length-2&&mxUtils.ptSegDistSq(M.x,M.y,q.x,q.y,D.x,D.y)<1*this.scale*this.scale;)D=
-q,G++,q=J[G+2];q=mxUtils.intersection(n.x,n.y,k.x,k.y,M.x,M.y,D.x,D.y);if(null!=q&&(Math.abs(q.x-n.x)>e||Math.abs(q.y-n.y)>e)&&(Math.abs(q.x-k.x)>e||Math.abs(q.y-k.y)>e)&&(Math.abs(q.x-M.x)>e||Math.abs(q.y-M.y)>e)&&(Math.abs(q.x-D.x)>e||Math.abs(q.y-D.y)>e)){D=q.x-n.x;M=q.y-n.y;q={distSq:D*D+M*M,x:q.x,y:q.y};for(D=0;D<m.length;D++)if(m[D].distSq>q.distSq){m.splice(D,0,q);q=null;break}null==q||0!=m.length&&m[m.length-1].x===q.x&&m[m.length-1].y===q.y||m.push(q)}}}for(G=0;G<m.length;G++)b=f(1,m[G].x,
+c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var p=c[g+1],n=c[g],m=[],q=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,q.x,q.y,p.x,p.y)<1*this.scale*this.scale;)p=q,g++,q=c[g+2];for(var b=f(0,n.x,n.y)||b,L=0;L<this.validEdges.length;L++){var G=this.validEdges[L],J=G.absolutePoints;if(null!=J&&mxUtils.intersects(a,G)&&"1"!=G.style.noJump)for(G=0;G<J.length-1;G++){for(var D=J[G+1],M=J[G],q=J[G+2];G<J.length-2&&mxUtils.ptSegDistSq(M.x,M.y,q.x,q.y,D.x,D.y)<1*this.scale*this.scale;)D=
+q,G++,q=J[G+2];q=mxUtils.intersection(n.x,n.y,p.x,p.y,M.x,M.y,D.x,D.y);if(null!=q&&(Math.abs(q.x-n.x)>e||Math.abs(q.y-n.y)>e)&&(Math.abs(q.x-p.x)>e||Math.abs(q.y-p.y)>e)&&(Math.abs(q.x-M.x)>e||Math.abs(q.y-M.y)>e)&&(Math.abs(q.x-D.x)>e||Math.abs(q.y-D.y)>e)){D=q.x-n.x;M=q.y-n.y;q={distSq:D*D+M*M,x:q.x,y:q.y};for(D=0;D<m.length;D++)if(m[D].distSq>q.distSq){m.splice(D,0,q);q=null;break}null==q||0!=m.length&&m[m.length-1].x===q.x&&m[m.length-1].y===q.y||m.push(q)}}}for(G=0;G<m.length;G++)b=f(1,m[G].x,
m[G].y)||b}q=c[c.length-1];b=f(0,q.x,q.y)||b}a.routedPoints=d;return b}return!1};var n=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)n.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,l=null,k=null,p=[],m=null;a.begin();for(var q=0;q<this.state.routedPoints.length;q++){var G=this.state.routedPoints[q],J=new mxPoint(G.x/this.scale,G.y/this.scale);0==q?J=c[0]:q==this.state.routedPoints.length-1&&(J=c[c.length-1]);var D=!1;if(null!=l&&1==G.type){var M=this.state.routedPoints[q+1],G=M.x/this.scale-J.x,M=M.y/this.scale-J.y,G=G*G+M*M;null==m&&(m=new mxPoint(J.x-l.x,J.y-l.y),
-k=Math.sqrt(m.x*m.x+m.y*m.y),0<k?(m.x=m.x*f/k,m.y=m.y*f/k):m=null);G>f*f&&0<k&&(G=l.x-J.x,M=l.y-J.y,G=G*G+M*M,G>f*f&&(D=new mxPoint(J.x-m.x,J.y-m.y),G=new mxPoint(J.x+m.x,J.y+m.y),p.push(D),this.addPoints(a,p,b,d,!1,null,g),p=0>Math.round(m.x)||0==Math.round(m.x)&&0>=Math.round(m.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(D.x-m.y*p,D.y+m.x*p),a.lineTo(G.x-m.y*p,G.y+m.x*p),a.lineTo(G.x,G.y)):"arc"==e?(p*=1.3,a.curveTo(D.x-m.y*p,D.y+m.x*p,G.x-m.y*p,G.y+m.x*p,G.x,G.y)):(a.moveTo(G.x,G.y),g=!0),p=[G],D=!0))}else m=
-null;D||(p.push(J),l=J)}this.addPoints(a,p,b,d,!1,null,g);a.stroke()}};var q=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):q.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,d,f){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)c.apply(this,
-arguments);else{b=this.getTerminalPort(a,b,f);var e=this.getNextPoint(a,d,f),g=this.graph.isOrthogonal(a),l=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=l)var p=Math.cos(-l),n=Math.sin(-l),e=mxUtils.getRotatedPoint(e,p,n,k);p=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);p+=parseFloat(a.style[f?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,
-e,0==l&&g,p);0!=l&&(p=Math.cos(l),n=Math.sin(l),e=mxUtils.getRotatedPoint(e,p,n,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,d,f,e),f)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var l=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||l<d)b=g,d=l}}null!=b&&(f=b)}return f};var f=mxStencil.prototype.evaluateTextAttribute;
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,l=null,p=null,k=[],m=null;a.begin();for(var q=0;q<this.state.routedPoints.length;q++){var G=this.state.routedPoints[q],J=new mxPoint(G.x/this.scale,G.y/this.scale);0==q?J=c[0]:q==this.state.routedPoints.length-1&&(J=c[c.length-1]);var D=!1;if(null!=l&&1==G.type){var M=this.state.routedPoints[q+1],G=M.x/this.scale-J.x,M=M.y/this.scale-J.y,G=G*G+M*M;null==m&&(m=new mxPoint(J.x-l.x,J.y-l.y),
+p=Math.sqrt(m.x*m.x+m.y*m.y),0<p?(m.x=m.x*f/p,m.y=m.y*f/p):m=null);G>f*f&&0<p&&(G=l.x-J.x,M=l.y-J.y,G=G*G+M*M,G>f*f&&(D=new mxPoint(J.x-m.x,J.y-m.y),G=new mxPoint(J.x+m.x,J.y+m.y),k.push(D),this.addPoints(a,k,b,d,!1,null,g),k=0>Math.round(m.x)||0==Math.round(m.x)&&0>=Math.round(m.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(D.x-m.y*k,D.y+m.x*k),a.lineTo(G.x-m.y*k,G.y+m.x*k),a.lineTo(G.x,G.y)):"arc"==e?(k*=1.3,a.curveTo(D.x-m.y*k,D.y+m.x*k,G.x-m.y*k,G.y+m.x*k,G.x,G.y)):(a.moveTo(G.x,G.y),g=!0),k=[G],D=!0))}else m=
+null;D||(k.push(J),l=J)}this.addPoints(a,k,b,d,!1,null,g);a.stroke()}};var q=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):q.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,d,f){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)c.apply(this,
+arguments);else{b=this.getTerminalPort(a,b,f);var e=this.getNextPoint(a,d,f),g=this.graph.isOrthogonal(a),l=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),p=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=l)var k=Math.cos(-l),n=Math.sin(-l),e=mxUtils.getRotatedPoint(e,k,n,p);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[f?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,
+e,0==l&&g,k);0!=l&&(k=Math.cos(l),n=Math.sin(l),e=mxUtils.getRotatedPoint(e,k,n,p));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,d,f,e),f)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var l=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||l<d)b=g,d=l}}null!=b&&(f=b)}return f};var f=mxStencil.prototype.evaluateTextAttribute;
mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=f.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"string"===typeof c&&"stencil("==c.substring(0,8))try{var b=c.substring(8,c.length-
1),d=mxUtils.parseXml(Graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(t){null!=window.console&&console.log("Error in shape: "+t)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var m=b[d];if(!mxStencilRegistry.filesLoaded[m])if(mxStencilRegistry.filesLoaded[m]=!0,".xml"==m.toLowerCase().substring(m.length-4,m.length))mxStencilRegistry.loadStencilSet(m,
@@ -2481,16 +2482,16 @@ b=0;b<c.length;b++)null!=this.currentEdgeStyle[c[b]]&&(a+=c[b]+"="+this.currentE
";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.updateCellStyles=function(a,c,b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)if(this.model.isVertex(b[d])||this.model.isEdge(b[d])){this.setCellStyles(a,null,[b[d]]);var f=this.getCellStyle(b[d])[a];c!=(null==f?mxConstants.NONE:f)&&this.setCellStyles(a,
c,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,c){c=null!=c?c:{};for(var b=0;b<a.length;b++){var d=a[b];c[mxObjectIdentity.get(d)]=
d.getId();for(var f=this.model.getChildCount(d),e=0;e<f;e++)this.createCellLookup([this.model.getChildAt(d,e)],c)}return c};Graph.prototype.createCellMapping=function(a,c,b){b=null!=b?b:{};for(var d in a){var f=c[d];null==b[f]&&(b[f]=a[d].getId()||"")}return b};Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=new mxCodec(a.ownerDocument),e=new mxGraphModel;f.decode(a,e);a=[];var f={},g={},l=e.getChildren(this.cloneCell(e.root,this.isCloneInvalidEdges(),f));if(null!=
-l){var k=this.createCellLookup([e.root]),l=l.slice();this.model.beginUpdate();try{if(1!=l.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<l.length;e++)p=this.model.getChildren(this.moveCells([l[e]],c,b,!1,this.model.getRoot())[0]),null!=p&&(a=a.concat(p));else{var p=e.getChildren(l[0]);null!=p&&(a=this.moveCells(p,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,k,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
-(c=this.snap(c),b=this.snap(b));var v=this.getBoundingBoxFromGeometry(a,!0);null!=v&&this.moveCells(a,c-v.x,b-v.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,l=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(l,b[f]);var k=this.view.getState(a[f]);if(null!=k){var p=this.getCellGeometry(b[f]);null!=p&&p.relative&&!this.model.isEdge(a[f])&&
-null==d.get(this.model.getParent(a[f]))&&(p.offset=null,p.relative=!1,p.x=k.x/k.view.scale-k.view.translate.x,p.y=k.y/k.view.scale-k.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var c=Graph.prototype.isExtendParent;
-Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null!=b){var d=this.getCurrentCellStyle(b);if(null!=d.expand)return"0"!=d.expand}return c.apply(this,arguments)&&(null==b||!this.isTable(b))};var f=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,c,b,d,e,g,l,k){null==k&&(k=this.model.getParent(a),this.isTable(k)||this.isTableRow(k))&&(k=this.getCellAt(g,l,null,!0,!1));b=null;this.model.beginUpdate();try{b=f.apply(this,[a,c,b,d,e,g,l,k]);this.model.setValue(b,
-"");var p=this.getChildCells(b,!0);for(c=0;c<p.length;c++){var v=this.getCellGeometry(p[c]);null!=v&&v.relative&&0<v.x&&this.model.remove(p[c])}var X=this.getChildCells(a,!0);for(c=0;c<X.length;c++)v=this.getCellGeometry(X[c]),null!=v&&v.relative&&0>=v.x&&this.model.remove(X[c]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[b]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+l){var p=this.createCellLookup([e.root]),l=l.slice();this.model.beginUpdate();try{if(1!=l.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<l.length;e++)k=this.model.getChildren(this.moveCells([l[e]],c,b,!1,this.model.getRoot())[0]),null!=k&&(a=a.concat(k));else{var k=e.getChildren(l[0]);null!=k&&(a=this.moveCells(k,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,p,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
+(c=this.snap(c),b=this.snap(b));var v=this.getBoundingBoxFromGeometry(a,!0);null!=v&&this.moveCells(a,c-v.x,b-v.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,l=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(l,b[f]);var p=this.view.getState(a[f]);if(null!=p){var k=this.getCellGeometry(b[f]);null!=k&&k.relative&&!this.model.isEdge(a[f])&&
+null==d.get(this.model.getParent(a[f]))&&(k.offset=null,k.relative=!1,k.x=p.x/p.view.scale-p.view.translate.x,k.y=p.y/p.view.scale-p.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var c=Graph.prototype.isExtendParent;
+Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null!=b){var d=this.getCurrentCellStyle(b);if(null!=d.expand)return"0"!=d.expand}return c.apply(this,arguments)&&(null==b||!this.isTable(b))};var f=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,c,b,d,e,g,l,p){null==p&&(p=this.model.getParent(a),this.isTable(p)||this.isTableRow(p))&&(p=this.getCellAt(g,l,null,!0,!1));b=null;this.model.beginUpdate();try{b=f.apply(this,[a,c,b,d,e,g,l,p]);this.model.setValue(b,
+"");var k=this.getChildCells(b,!0);for(c=0;c<k.length;c++){var v=this.getCellGeometry(k[c]);null!=v&&v.relative&&0<v.x&&this.model.remove(k[c])}var X=this.getChildCells(a,!0);for(c=0;c<X.length;c++)v=this.getCellGeometry(X[c]),null!=v&&v.relative&&0>=v.x&&this.model.remove(X[c]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[b]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
mxConstants.NONE,[a]);var n=this.model.getTerminal(b,!1);if(null!=n){var t=this.getCurrentCellStyle(n);null!=t&&"1"==t.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[b]))}}finally{this.model.endUpdate()}return b};var g=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,b){if(c||b)g.apply(this,arguments);
-else{var d=this.getSelectionCell(),f=null,e=[],l=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(e.push(c),c==d)f=e.length-1;else if(a&&null==d&&0<e.length||null!=f&&a&&e.length>f||!a&&0<f)return;for(var b=0;b<this.model.getChildCount(c);b++)l(this.model.getChildAt(c,b))});l(this.model.root);0<e.length&&(f=null!=f?mxUtils.mod(f+(a?1:-1),e.length):0,this.setSelectionCell(e[f]))}};var k=Graph.prototype.moveCells;Graph.prototype.moveCells=
-function(a,c,b,d,f,e,g){g=null!=g?g:{};if(this.isTable(f)){for(var l=[],p=0;p<a.length;p++)this.isTable(a[p])?l=l.concat(this.model.getChildCells(a[p],!0).reverse()):l.push(a[p]);a=l}this.model.beginUpdate();try{l=[];for(p=0;p<a.length;p++)if(null!=f&&this.isTableRow(a[p])){var v=this.model.getParent(a[p]),n=this.getCellGeometry(a[p]);this.isTable(v)&&l.push(v);if(null!=v&&null!=n&&this.isTable(v)&&this.isTable(f)&&(d||v!=f)){if(!d){var X=this.getCellGeometry(v);null!=X&&(X=X.clone(),X.height-=n.height,
-this.model.setGeometry(v,X))}X=this.getCellGeometry(f);null!=X&&(X=X.clone(),X.height+=n.height,this.model.setGeometry(f,X));var t=this.model.getChildCells(f,!0);if(0<t.length){a[p]=d?this.cloneCell(a[p]):a[p];var m=this.model.getChildCells(a[p],!0),u=this.model.getChildCells(t[0],!0),C=u.length-m.length;if(0<C)for(var B=0;B<C;B++){var y=this.cloneCell(m[m.length-1]);null!=y&&(y.value="",this.model.add(a[p],y))}else if(0>C)for(B=0;B>C;B--)this.model.remove(m[m.length+B-1]);m=this.model.getChildCells(a[p],
-!0);for(B=0;B<u.length;B++){var la=this.getCellGeometry(u[B]),sa=this.getCellGeometry(m[B]);null!=la&&null!=sa&&(sa=sa.clone(),sa.width=la.width,this.model.setGeometry(m[B],sa))}}}}for(var x=k.apply(this,arguments),p=0;p<l.length;p++)!d&&this.model.contains(l[p])&&0==this.model.getChildCount(l[p])&&this.model.remove(l[p]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),x)}finally{this.model.endUpdate()}return x};var l=Graph.prototype.removeCells;Graph.prototype.removeCells=
+else{var d=this.getSelectionCell(),f=null,e=[],l=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(e.push(c),c==d)f=e.length-1;else if(a&&null==d&&0<e.length||null!=f&&a&&e.length>f||!a&&0<f)return;for(var b=0;b<this.model.getChildCount(c);b++)l(this.model.getChildAt(c,b))});l(this.model.root);0<e.length&&(f=null!=f?mxUtils.mod(f+(a?1:-1),e.length):0,this.setSelectionCell(e[f]))}};var p=Graph.prototype.moveCells;Graph.prototype.moveCells=
+function(a,c,b,d,f,e,g){g=null!=g?g:{};if(this.isTable(f)){for(var l=[],k=0;k<a.length;k++)this.isTable(a[k])?l=l.concat(this.model.getChildCells(a[k],!0).reverse()):l.push(a[k]);a=l}this.model.beginUpdate();try{l=[];for(k=0;k<a.length;k++)if(null!=f&&this.isTableRow(a[k])){var v=this.model.getParent(a[k]),n=this.getCellGeometry(a[k]);this.isTable(v)&&l.push(v);if(null!=v&&null!=n&&this.isTable(v)&&this.isTable(f)&&(d||v!=f)){if(!d){var X=this.getCellGeometry(v);null!=X&&(X=X.clone(),X.height-=n.height,
+this.model.setGeometry(v,X))}X=this.getCellGeometry(f);null!=X&&(X=X.clone(),X.height+=n.height,this.model.setGeometry(f,X));var t=this.model.getChildCells(f,!0);if(0<t.length){a[k]=d?this.cloneCell(a[k]):a[k];var m=this.model.getChildCells(a[k],!0),u=this.model.getChildCells(t[0],!0),C=u.length-m.length;if(0<C)for(var B=0;B<C;B++){var y=this.cloneCell(m[m.length-1]);null!=y&&(y.value="",this.model.add(a[k],y))}else if(0>C)for(B=0;B>C;B--)this.model.remove(m[m.length+B-1]);m=this.model.getChildCells(a[k],
+!0);for(B=0;B<u.length;B++){var ma=this.getCellGeometry(u[B]),sa=this.getCellGeometry(m[B]);null!=ma&&null!=sa&&(sa=sa.clone(),sa.width=ma.width,this.model.setGeometry(m[B],sa))}}}}for(var x=p.apply(this,arguments),k=0;k<l.length;k++)!d&&this.model.contains(l[k])&&0==this.model.getChildCount(l[k])&&this.model.remove(l[k]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),x)}finally{this.model.endUpdate()}return x};var l=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,c){var b=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var f=this.model.getParent(a[d]),e=this.model.getParent(f);1==this.model.getChildCount(f)&&1==this.model.getChildCount(e)?0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e)&&b.push(e):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(e=this.model.getParent(a[d]),0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e))){for(var g=this.model.getChildCells(e,!0),k=0,p=0;p<g.length;p++)0<=mxUtils.indexOf(a,
g[p])&&k++;k==g.length&&b.push(e)}b.push(a[d])}b=l.apply(this,[b,c])}finally{this.model.endUpdate()}return b};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
e[1]),2<e.length?"0"!=e[2]:!0,null,3<e.length?e[3]:0,4<e.length?e[4]:0))}}catch(za){}return d}if(null!=a.shape&&null!=a.shape.bounds){e=a.shape.direction;f=a.shape.bounds;b=a.shape.scale;d=f.width/b;f=f.height/b;if(e==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH)e=d,d=f,f=e;b=a.shape.getConstraints(a.style,d,f);if(null!=b)return b;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};
@@ -2499,9 +2500,9 @@ b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,c,b){for(va
arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&
(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a,c){var b=this.getModel(),d=[];b.beginUpdate();try{for(var f=0;f<a.length;f++){var e=a[f];if(b.isEdge(e)){var g=b.getTerminal(e,!0),l=b.getTerminal(e,!1);b.setTerminal(e,l,!0);b.setTerminal(e,g,!1);var k=b.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();var p=k.getTerminalPoint(!0),v=k.getTerminalPoint(!1);k.setTerminalPoint(p,!1);k.setTerminalPoint(v,!0);b.setGeometry(e,
k);var n=this.view.getState(e),t=this.view.getState(g),m=this.view.getState(l);if(null!=n){var X=null!=t?this.getConnectionConstraint(n,t,!0):null,u=null!=m?this.getConnectionConstraint(n,m,!1):null;this.setConnectionConstraint(e,g,!0,u);this.setConnectionConstraint(e,l,!1,X);var C=mxUtils.getValue(n.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(n.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[e]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
-C,[e])}d.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){k=k.clone();k.x+=k.width/2-k.height/2;k.y+=k.height/2-k.width/2;var B=k.width;k.width=k.height;k.height=B;b.setGeometry(e,k)}var y=this.view.getState(e);if(null!=y){var x=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],la=mxUtils.getValue(y.style,mxConstants.STYLE_DIRECTION,
-mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,x[mxUtils.mod(mxUtils.indexOf(x,la)+(c?-1:1),x.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||
-this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
+C,[e])}d.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){k=k.clone();k.x+=k.width/2-k.height/2;k.y+=k.height/2-k.width/2;var B=k.width;k.width=k.height;k.height=B;b.setGeometry(e,k)}var y=this.view.getState(e);if(null!=y){var x=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],ma=mxUtils.getValue(y.style,mxConstants.STYLE_DIRECTION,
+mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,x[mxUtils.mod(mxUtils.indexOf(x,ma)+(c?-1:1),x.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var k=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||
+this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}k.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
function(a){a=this.model.getDescendants(a);if(0<a.length)for(var c=0;c<a.length;c++){var b=this.view.getState(a[c]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(a[c]):this.isReplacePlaceholders(a[c])&&this.view.invalidate(a[c],!1,!1)}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);
b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),d=0;d<b.length;d++)c(b[d])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),l=0;l<g.length;l++)c(g[l]);
d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=Graph.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);
@@ -2532,8 +2533,8 @@ d=f,e=1;e<b.length-1;e++){var p=this.view.getState(this.model.getParent(b[e].cel
a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,l,k,p,v,n,t,m){var u=null;if(null!=m)for(u=new mxDictionary,v=0;v<m.length;v++)u.put(m[v],!0);if(m=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var C="page"==t?this.view.getBackgroundPageBounds():e&&null==u||d||"diagram"==t?this.getGraphBounds():
this.getBoundingBox(this.getSelectionCells());if(null==C)throw Error(mxResources.get("drawingEmpty"));var B=this.view.scale,y=mxUtils.createXmlDocument(),x=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=x.style?x.style.backgroundColor=a:x.setAttribute("style","background-color:"+a));null==y.createElementNS?(x.setAttribute("xmlns",mxConstants.NS_SVG),x.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):x.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xlink",mxConstants.NS_XLINK);a=c/B;var X=Math.max(1,Math.ceil(C.width*a)+2*b)+(p?5:0),K=Math.max(1,Math.ceil(C.height*a)+2*b)+(p?5:0);x.setAttribute("version","1.1");x.setAttribute("width",X+"px");x.setAttribute("height",K+"px");x.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+X+" "+K);y.appendChild(x);var q=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"g"):y.createElement("g");x.appendChild(q);var E=this.createSvgCanvas(q);E.foOffset=f?-.5:0;E.textOffset=f?-.5:0;E.imageOffset=
-f?-.5:0;E.translate(Math.floor((b/c-C.x)/B),Math.floor((b/c-C.y)/B));var A=document.createElement("div"),F=E.getAlternateText;E.getAlternateText=function(a,c,b,d,f,e,g,l,k,p,v,n,z){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(A.innerHTML=e,e=mxUtils.extractTextWithWhitespace(A.childNodes));for(var ra=Math.ceil(2*d/this.state.fontSize),Da=[],oa=0,Qa=0;(0==ra||oa<ra)&&Qa<e.length;){var Ta=e.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<oa)break}else Da.push(e.charAt(Qa)),255>Ta&&
-oa++;Qa++}Da.length<e.length&&1<e.length-Da.length&&(e=mxUtils.trim(Da.join(""))+"...");return e}catch(fb){return F.apply(this,arguments)}else return F.apply(this,arguments)};var D=this.backgroundImage;if(null!=D){c=B/c;var la=this.view.translate,H=new mxRectangle(la.x*c,la.y*c,D.width*c,D.height*c);mxUtils.intersects(C,H)&&E.image(la.x,la.y,D.width,D.height,D.src,!0)}E.scale(a);E.textEnabled=g;l=null!=l?l:this.createSvgImageExport();var Z=l.drawCellState,Q=l.getLinkForCellState;l.getLinkForCellState=
+f?-.5:0;E.translate(Math.floor((b/c-C.x)/B),Math.floor((b/c-C.y)/B));var A=document.createElement("div"),F=E.getAlternateText;E.getAlternateText=function(a,c,b,d,f,e,g,l,k,p,v,n,z){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(A.innerHTML=e,e=mxUtils.extractTextWithWhitespace(A.childNodes));for(var ra=Math.ceil(2*d/this.state.fontSize),Da=[],ha=0,Qa=0;(0==ra||ha<ra)&&Qa<e.length;){var Ta=e.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<ha)break}else Da.push(e.charAt(Qa)),255>Ta&&
+ha++;Qa++}Da.length<e.length&&1<e.length-Da.length&&(e=mxUtils.trim(Da.join(""))+"...");return e}catch(fb){return F.apply(this,arguments)}else return F.apply(this,arguments)};var D=this.backgroundImage;if(null!=D){c=B/c;var ma=this.view.translate,H=new mxRectangle(ma.x*c,ma.y*c,D.width*c,D.height*c);mxUtils.intersects(C,H)&&E.image(ma.x,ma.y,D.width,D.height,D.src,!0)}E.scale(a);E.textEnabled=g;l=null!=l?l:this.createSvgImageExport();var Z=l.drawCellState,Q=l.getLinkForCellState;l.getLinkForCellState=
function(a,c){var b=Q.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};l.getLinkTargetForCellState=function(a,c){return a.view.graph.getLinkTargetForCell(a.cell)};l.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=u?u.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==u||d)&&null!=f;)d=null!=u?u.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==u||d)&&Z.apply(this,arguments)};l.drawState(this.getView().getState(this.model.root),
E);this.updateSvgLinks(x,k,!0);this.addForeignObjectWarning(E,x);return x}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&0<c.getElementsByTagName("foreignObject").length){var b=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=a.createElement("a");f.setAttribute("transform","translate(0,-5)");
null==f.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(f.setAttribute("xlink:href",Graph.foreignObjectWarningLink),f.setAttribute("target","_blank")):(f.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),f.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var e=a.createElement("text");e.setAttribute("text-anchor","middle");e.setAttribute("font-size","10px");e.setAttribute("x","50%");e.setAttribute("y","100%");mxUtils.write(e,Graph.foreignObjectWarningText);
@@ -2619,9 +2620,9 @@ this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.sec
this.secondDiv=null)),c.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var aa=(new Date).getTime(),pa=0,ga=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){ga.apply(this,arguments);b!=this.currentTerminalState?(aa=(new Date).getTime(),pa=0):pa=(new Date).getTime()-aa;this.currentTerminalState=
b};var ea=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<pa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ea.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,
-mxConstants.HANDLE_STROKECOLOR)};var ma=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ma.apply(this,arguments)};var V=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
-if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return V.apply(this,arguments)};var ca=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ca.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var na=mxVertexHandler.prototype.getSelectionBounds;
-mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):na.apply(this,arguments)};var T=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
+mxConstants.HANDLE_STROKECOLOR)};var na=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return na.apply(this,arguments)};var V=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
+if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return V.apply(this,arguments)};var ca=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ca.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var oa=mxVertexHandler.prototype.getSelectionBounds;
+mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):oa.apply(this,arguments)};var T=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&T.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var P=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){P.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var ua=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){ua.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
@@ -2633,40 +2634,40 @@ this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document
var f=document.createElement("img");f.setAttribute("src",Dialog.prototype.clearImage);f.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));f.setAttribute("width","13");f.setAttribute("height","10");f.style.marginLeft="4px";f.style.marginBottom="-1px";f.style.cursor="pointer";this.linkHint.appendChild(f);mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var e=
document.createElement("div");e.style.marginTop=null!=c||0<d?"6px":"0px";e.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(e)}}}catch(ya){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var da=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){da.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});
var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var ia=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ia.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var qa=mxVertexHandler.prototype.redrawHandles;
+this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var ja=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ja.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var qa=mxVertexHandler.prototype.redrawHandles;
mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var a=0;a<this.moveHandles.length;a++)this.moveHandles[a].style.left=this.moveHandles[a].rowState.x+this.moveHandles[a].rowState.width-5+"px",this.moveHandles[a].style.top=this.moveHandles[a].rowState.y+this.moveHandles[a].rowState.height/2-6+"px";if(null!=this.cornerHandles){var a=this.getSelectionBorderInset(),c=this.cornerHandles,b=c[0].bounds.height/2;c[0].bounds.x=this.state.x-c[0].bounds.width/2+a;c[0].bounds.y=
this.state.y-b+a;c[0].redraw();c[1].bounds.x=c[0].bounds.x+this.state.width-2*a;c[1].bounds.y=c[0].bounds.y;c[1].redraw();c[2].bounds.x=c[0].bounds.x;c[2].bounds.y=this.state.y+this.state.height-2*a;c[2].redraw();c[3].bounds.x=c[1].bounds.x;c[3].bounds.y=c[2].bounds.y;c[3].redraw();for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");qa.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null,null==b&&(b=this.state),b=b.y+b.height,null!=c&&(b=Math.max(b,c.y+c.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(b+this.verticalOffset/2+Editor.hintOffset)+"px")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){R.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=
this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].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 ka=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(ka.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
-null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ba=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ba.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
-function(){ja.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 a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function m(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function f(){mxShape.call(this)}function g(){mxShape.call(this)}function k(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function l(){mxActor.call(this)}function p(){mxCylinder.call(this)}
+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 la=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(la.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
+null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ba=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ba.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ka=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
+function(){ka.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 a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function m(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function f(){mxShape.call(this)}function g(){mxShape.call(this)}function p(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function l(){mxActor.call(this)}function k(){mxCylinder.call(this)}
function u(){mxCylinder.call(this)}function t(){mxActor.call(this)}function A(){mxActor.call(this)}function y(){mxActor.call(this)}function I(){mxActor.call(this)}function x(){mxActor.call(this)}function F(){mxActor.call(this)}function H(){mxActor.call(this)}function L(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;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 G(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}
function D(){mxActor.call(this)}function M(){mxActor.call(this)}function O(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function v(){mxCylinder.call(this)}function C(){mxShape.call(this)}function B(){mxShape.call(this)}function E(){mxEllipse.call(this)}function K(){mxShape.call(this)}function Z(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function pa(){mxShape.call(this)}function ga(){mxShape.call(this)}
-function ea(){mxShape.call(this)}function ma(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function na(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function ua(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ia(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function R(){mxActor.call(this)}
-function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function ja(){mxActor.call(this)}function X(){mxActor.call(this)}function la(){mxActor.call(this)}function sa(){mxActor.call(this)}function va(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function S(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
+function ea(){mxShape.call(this)}function na(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function oa(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function ua(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ja(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function R(){mxActor.call(this)}
+function la(){mxActor.call(this)}function ba(){mxActor.call(this)}function ka(){mxActor.call(this)}function X(){mxActor.call(this)}function ma(){mxActor.call(this)}function sa(){mxActor.call(this)}function va(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function S(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function ia(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
function Ea(){mxEllipse.call(this)}function Ca(){mxActor.call(this)}function xa(){mxActor.call(this)}function Ga(){mxActor.call(this)}function Y(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ia(){mxConnector.call(this)}function Ua(a,c,b,d,f,e,g,l,k,p){g+=k;var z=d.clone();d.x-=f*(2*g+k);d.y-=e*(2*g+k);f*=g+k;e*=g+k;return function(){a.ellipse(z.x-
f-g,z.y-e-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var z=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=z,z=e,e=g;a.rotate(-this.getShapeRotation(),z,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var z=this.state.view.graph,e=z.getActualStartSize(this.state.cell),
-g=z.model.getChildCells(this.state.cell,!0);if(0<g.length){var ra="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),oa="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(ra)for(ra=1;ra<g.length;ra++){var l=z.getCellGeometry(g[ra]);null!=l&&(a.begin(),a.moveTo(c+e.x,b+l.y),a.lineTo(c+d-e.width,b+l.y),a.end(),a.stroke())}if(oa)for(d=z.model.getChildCells(g[0],!0),ra=1;ra<d.length;ra++)l=z.getCellGeometry(d[ra]),null!=l&&(a.begin(),a.moveTo(c+l.x+e.x,b+e.y),a.lineTo(c+l.x+e.x,b+f-e.height),
-a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
-a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-z,0);a.lineTo(d,z);a.lineTo(d,f);a.lineTo(z,f);a.lineTo(0,f-z);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-z,0),a.lineTo(d,z),a.lineTo(z,z),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(z,z),a.lineTo(z,f),a.lineTo(0,f-z),
-a.close(),a.fill()),a.begin(),a.moveTo(z,f),a.lineTo(z,z),a.lineTo(0,0),a.moveTo(z,z),a.lineTo(d,z),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Ra=Math.tan(mxUtils.toRadians(30)),Ja=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-z),b+.5*(f-z),z,z);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ra);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ja);
-a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ja)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ra));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ja)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ja)*c),a.lineTo(.5*c,(1-Ja)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ja),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ja)*c),a.lineTo(0,.75*
-c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
+g=z.model.getChildCells(this.state.cell,!0);if(0<g.length){var ra="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),l="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(ra)for(ra=1;ra<g.length;ra++){var ha=z.getCellGeometry(g[ra]);null!=ha&&(a.begin(),a.moveTo(c+e.x,b+ha.y),a.lineTo(c+d-e.width,b+ha.y),a.end(),a.stroke())}if(l)for(d=z.model.getChildCells(g[0],!0),ra=1;ra<d.length;ra++)ha=z.getCellGeometry(d[ra]),null!=ha&&(a.begin(),a.moveTo(c+ha.x+e.x,b+e.y),a.lineTo(c+ha.x+e.x,b+
+f-e.height),a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",
+this.darkOpacity2))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-z,0);a.lineTo(d,z);a.lineTo(d,f);a.lineTo(z,f);a.lineTo(0,f-z);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-z,0),a.lineTo(d,z),a.lineTo(z,z),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(z,z),a.lineTo(z,
+f),a.lineTo(0,f-z),a.close(),a.fill()),a.begin(),a.moveTo(z,f),a.lineTo(z,z),a.lineTo(0,0),a.moveTo(z,z),a.lineTo(d,z),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Ra=Math.tan(mxUtils.toRadians(30)),Ja=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);
+e.prototype.size=6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-z),b+.5*(f-z),z,z);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ra);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*
+c,c*Ja);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ja)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ra));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ja)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ja)*c),a.lineTo(.5*c,(1-Ja)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ja),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ja)*c),a.lineTo(0,
+.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};n.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",n);mxUtils.extend(q,mxCylinder);q.prototype.size=30;q.prototype.darkOpacity=0;q.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-z,0);a.lineTo(d,z);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-z,0),a.lineTo(d-z,z),a.lineTo(d,z),a.close(),a.fill()),a.begin(),a.moveTo(d-z,0),a.lineTo(d-z,z),a.lineTo(d,z),a.end(),a.stroke())};
mxCellRenderer.registerShape("note",q);mxUtils.extend(c,q);mxCellRenderer.registerShape("note2",c);c.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,0)}return null};mxUtils.extend(f,mxShape);f.prototype.isoAngle=15;f.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
Math.PI/200,z=Math.min(d*Math.tan(z),.5*f);a.translate(c,b);a.begin();a.moveTo(.5*d,0);a.lineTo(d,z);a.lineTo(d,f-z);a.lineTo(.5*d,f);a.lineTo(0,f-z);a.lineTo(0,z);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,z);a.lineTo(.5*d,2*z);a.lineTo(d,z);a.moveTo(.5*d,2*z);a.lineTo(.5*d,f);a.stroke()};mxCellRenderer.registerShape("isoCube2",f);mxUtils.extend(g,mxShape);g.prototype.size=15;g.prototype.paintVertexShape=function(a,c,b,d,f){var z=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.translate(c,b);0==z?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,z),a.arcTo(.5*d,z,0,0,1,.5*d,0),a.arcTo(.5*d,z,0,0,1,d,z),a.lineTo(d,f-z),a.arcTo(.5*d,z,0,0,1,.5*d,f),a.arcTo(.5*d,z,0,0,1,0,f-z),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,z),a.arcTo(.5*d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke())};mxCellRenderer.registerShape("cylinder2",g);mxUtils.extend(k,mxCylinder);k.prototype.size=15;k.prototype.paintVertexShape=function(a,
+"size",this.size))));a.translate(c,b);0==z?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,z),a.arcTo(.5*d,z,0,0,1,.5*d,0),a.arcTo(.5*d,z,0,0,1,d,z),a.lineTo(d,f-z),a.arcTo(.5*d,z,0,0,1,.5*d,f),a.arcTo(.5*d,z,0,0,1,0,f-z),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,z),a.arcTo(.5*d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke())};mxCellRenderer.registerShape("cylinder2",g);mxUtils.extend(p,mxCylinder);p.prototype.size=15;p.prototype.paintVertexShape=function(a,
c,b,d,f){var z=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"lid",!0);a.translate(c,b);0==z?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),e?(a.moveTo(0,z),a.arcTo(.5*d,z,0,0,1,.5*d,0),a.arcTo(.5*d,z,0,0,1,d,z)):(a.moveTo(0,0),a.arcTo(.5*d,z,0,0,0,.5*d,z),a.arcTo(.5*d,z,0,0,0,d,0)),a.lineTo(d,f-z),a.arcTo(.5*d,z,0,0,1,.5*d,f),a.arcTo(.5*d,z,0,0,1,0,f-z),a.close(),a.fillAndStroke(),a.setShadow(!1),e&&(a.begin(),a.moveTo(d,z),a.arcTo(.5*
-d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke()))};mxCellRenderer.registerShape("cylinder3",k);mxUtils.extend(l,mxActor);l.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,
+d,z,0,0,1,.5*d,2*z),a.arcTo(.5*d,z,0,0,1,0,z),a.stroke()))};mxCellRenderer.registerShape("cylinder3",p);mxUtils.extend(l,mxActor);l.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(k,mxCylinder);k.prototype.tabWidth=60;k.prototype.tabHeight=20;k.prototype.tabPosition="right";k.prototype.arcSize=.1;k.prototype.paintVertexShape=function(a,
c,b,d,f){a.translate(c,b);c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),e=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(l*=Math.min(d,f));l=Math.min(l,.5*d,.5*(f-b));c=Math.max(c,
l);c=Math.min(d-l,c);e||(l=0);a.begin();"left"==z?(a.moveTo(Math.max(l,0),b),a.lineTo(Math.max(l,0),0),a.lineTo(c,0),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d-Math.max(l,0),0),a.lineTo(d-Math.max(l,0),b));e?(a.moveTo(0,l+b),a.arcTo(l,l,0,0,1,l,b),a.lineTo(d-l,b),a.arcTo(l,l,0,0,1,d,l+b),a.lineTo(d,f-l),a.arcTo(l,l,0,0,1,d-l,f),a.lineTo(l,f),a.arcTo(l,l,0,0,1,0,f-l)):(a.moveTo(0,b),a.lineTo(d,b),a.lineTo(d,f),a.lineTo(0,f));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
-"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",p);p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
+"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",k);k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(z*=Math.min(a.width,a.height));z=Math.min(z,.5*a.width,.5*(a.height-c));d||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(a.width,a.width-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,z,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};
mxUtils.extend(u,mxCylinder);u.prototype.arcSize=.1;u.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);var z=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1);c=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));b=mxUtils.getValue(this.style,"umlStateConnection",null);e||(c*=Math.min(d,f));c=Math.min(c,.5*d,.5*f);z||(c=0);z=0;null!=b&&(z=10);a.begin();a.moveTo(z,c);a.arcTo(c,c,0,0,1,z+c,0);a.lineTo(d-c,0);a.arcTo(c,c,0,0,1,d,
c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(z+c,f);a.arcTo(c,c,0,0,1,z,f-c);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,f-20,10,10,3,3),a.stroke(),a.roundrect(d-20,f-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,f-15),a.lineTo(d-20,f-15),a.stroke());"connPointRefEntry"==b?(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke()):"connPointRefExit"==b&&(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
@@ -2675,7 +2676,7 @@ c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(z+c,f);a.arcTo(c,c,0,0,1,z,
d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-
2*c,d)}return a};mxCellRenderer.registerShape("tape",A);mxUtils.extend(y,mxActor);y.prototype.size=.3;y.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};y.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/
4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",y);var Za=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Za.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
-this.scale,a.height*c),0,0)}return null};k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
+this.scale,a.height*c),0,0)}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(z*=Math.min(a.width,a.height));z=Math.min(z,.5*a.width,.5*(a.height-c));d||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(a.width,a.width-
b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,z,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};u.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};c.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,Math.max(0,c*this.scale))}return null};mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
@@ -2700,8 +2701,8 @@ O.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"f
!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(U,mxRectangleShape);U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",U);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Xa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,
mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=z){var g=this.style["symbol"+e+"Align"],l=this.style["symbol"+e+"VerticalAlign"],k=this.style["symbol"+e+"Width"],p=this.style["symbol"+e+"Height"],v=this.style["symbol"+e+"Spacing"]||0,ra=this.style["symbol"+e+"VSpacing"]||v,oa=this.style["symbol"+e+"ArcSpacing"];null!=oa&&(oa*=this.getArcSize(d+this.strokewidth,
-f+this.strokewidth),v+=oa,ra+=oa);var oa=c,Da=b,oa=g==mxConstants.ALIGN_CENTER?oa+(d-k)/2:g==mxConstants.ALIGN_RIGHT?oa+(d-k-v):oa+v,Da=l==mxConstants.ALIGN_MIDDLE?Da+(f-p)/2:l==mxConstants.ALIGN_BOTTOM?Da+(f-p-ra):Da+ra;a.save();g=new z;g.style=this.style;z.prototype.paintVertexShape.call(g,a,oa,Da,k,p);a.restore()}e++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(v,mxCylinder);v.prototype.redrawPath=function(a,
+0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=z){var g=this.style["symbol"+e+"Align"],l=this.style["symbol"+e+"VerticalAlign"],k=this.style["symbol"+e+"Width"],p=this.style["symbol"+e+"Height"],v=this.style["symbol"+e+"Spacing"]||0,ra=this.style["symbol"+e+"VSpacing"]||v,ha=this.style["symbol"+e+"ArcSpacing"];null!=ha&&(ha*=this.getArcSize(d+this.strokewidth,
+f+this.strokewidth),v+=ha,ra+=ha);var ha=c,Da=b,ha=g==mxConstants.ALIGN_CENTER?ha+(d-k)/2:g==mxConstants.ALIGN_RIGHT?ha+(d-k-v):ha+v,Da=l==mxConstants.ALIGN_MIDDLE?Da+(f-p)/2:l==mxConstants.ALIGN_BOTTOM?Da+(f-p-ra):Da+ra;a.save();g=new z;g.style=this.style;z.prototype.paintVertexShape.call(g,a,ha,Da,k,p);a.restore()}e++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(v,mxCylinder);v.prototype.redrawPath=function(a,
c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",v);mxUtils.extend(C,mxShape);C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();
a.stroke()};mxCellRenderer.registerShape("umlActor",C);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(E,mxEllipse);E.prototype.paintVertexShape=function(a,
c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",E);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",K);mxUtils.extend(Z,mxShape);Z.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
@@ -2725,28 +2726,28 @@ mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.st
Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(z+l,g+f),new mxPoint(z+l,g+k-f),new mxPoint(p,g+k),new mxPoint(z,g+k-f),new mxPoint(z,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),g=[new mxPoint(z+f,g),new mxPoint(z+l-f,g),new mxPoint(z+l,a),new mxPoint(z+l-f,g+k),new mxPoint(z+f,g+k),new mxPoint(z,a),new mxPoint(z+f,g)]);p=new mxPoint(p,a);d&&(b.x<z||b.x>z+l?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",
mxPerimeter.HexagonPerimeter2);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",pa);mxUtils.extend(ga,mxShape);ga.prototype.size=10;ga.prototype.inset=2;ga.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,
"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+g);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-g,e/2);a.quadTo((d-e)/2-g,e+g,d/2,e+g);a.quadTo((d+e)/2+g,e+g,(d+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",ga);mxUtils.extend(ea,mxShape);ea.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);
-a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",ea);mxUtils.extend(ma,mxShape);ma.prototype.inset=2;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ma);mxUtils.extend(V,mxCylinder);V.prototype.jettyWidth=
+a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",ea);mxUtils.extend(na,mxShape);na.prototype.inset=2;na.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",na);mxUtils.extend(V,mxCylinder);V.prototype.jettyWidth=
20;V.prototype.jettyHeight=10;V.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,z=Math.min(c,f-c),l=Math.min(z+2*c,f-c);e?(a.moveTo(b,z),a.lineTo(g,z),a.lineTo(g,z+c),a.lineTo(b,z+c),a.moveTo(b,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(b,l+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,l+c),a.lineTo(0,l+c),a.lineTo(0,
l),a.lineTo(b,l),a.lineTo(b,z+c),a.lineTo(0,z+c),a.lineTo(0,z),a.lineTo(b,z),a.close());a.end()};mxCellRenderer.registerShape("module",V);mxUtils.extend(ca,mxCylinder);ca.prototype.jettyWidth=32;ca.prototype.jettyHeight=12;ca.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,z=.3*f-c/2,l=.7*f-c/2;e?(a.moveTo(b,z),a.lineTo(g,z),a.lineTo(g,
-z+c),a.lineTo(b,z+c),a.moveTo(b,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(b,l+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(b,l),a.lineTo(b,z+c),a.lineTo(0,z+c),a.lineTo(0,z),a.lineTo(b,z),a.close());a.end()};mxCellRenderer.registerShape("component",ca);mxUtils.extend(na,mxRectangleShape);na.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,z,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",na);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
+z+c),a.lineTo(b,z+c),a.moveTo(b,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(b,l+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(b,l),a.lineTo(b,z+c),a.lineTo(0,z+c),a.lineTo(0,z),a.lineTo(b,z),a.close());a.end()};mxCellRenderer.registerShape("component",ca);mxUtils.extend(oa,mxRectangleShape);oa.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,z,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",oa);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(P,T);P.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",P);mxUtils.extend(ua,mxArrowConnector);ua.prototype.defaultWidth=4;ua.prototype.isOpenEnded=function(){return!0};ua.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ua.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
ua);mxUtils.extend(W,mxArrowConnector);W.prototype.defaultWidth=10;W.prototype.defaultArrowWidth=20;W.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};W.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};W.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
-W);mxUtils.extend(da,mxActor);da.prototype.size=30;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",da);mxUtils.extend(ia,mxRectangleShape);ia.prototype.dx=
-20;ia.prototype.dy=20;ia.prototype.isHtmlAllowed=function(){return!1};ia.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
-a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ia);mxUtils.extend(qa,mxActor);qa.prototype.dx=20;qa.prototype.dy=20;qa.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));
+W);mxUtils.extend(da,mxActor);da.prototype.size=30;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",da);mxUtils.extend(ja,mxRectangleShape);ja.prototype.dx=
+20;ja.prototype.dy=20;ja.prototype.isHtmlAllowed=function(){return!1};ja.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
+a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ja);mxUtils.extend(qa,mxActor);qa.prototype.dx=20;qa.prototype.dy=20;qa.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));
var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("corner",qa);mxUtils.extend(R,mxActor);R.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",
-R);mxUtils.extend(ka,mxActor);ka.prototype.dx=20;ka.prototype.dy=20;ka.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+
-c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",ka);mxUtils.extend(ba,mxActor);ba.prototype.arrowWidth=.3;ba.prototype.arrowSize=.2;ba.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=
-b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ba);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth))));c=d*Math.max(0,
-Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ja);mxUtils.extend(X,mxActor);X.prototype.size=
-.1;X.prototype.fixedSize=20;X.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",X);mxUtils.extend(la,mxActor);la.prototype.redrawPath=function(a,
-c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",la);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",sa);mxUtils.extend(va,mxActor);va.prototype.size=20;va.prototype.isRoundable=function(){return!0};va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+R);mxUtils.extend(la,mxActor);la.prototype.dx=20;la.prototype.dy=20;la.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+
+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",la);mxUtils.extend(ba,mxActor);ba.prototype.arrowWidth=.3;ba.prototype.arrowSize=.2;ba.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=
+b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ba);mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth))));c=d*Math.max(0,
+Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ka);mxUtils.extend(X,mxActor);X.prototype.size=
+.1;X.prototype.fixedSize=20;X.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",X);mxUtils.extend(ma,mxActor);ma.prototype.redrawPath=function(a,
+c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ma);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",sa);mxUtils.extend(va,mxActor);va.prototype.size=20;va.prototype.isRoundable=function(){return!0};va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",va);mxUtils.extend(ta,mxActor);ta.prototype.size=.375;ta.prototype.isRoundable=function(){return!0};ta.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",ta);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};
mxCellRenderer.registerShape("tapeData",ya);mxUtils.extend(za,mxEllipse);za.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",za);mxUtils.extend(S,mxEllipse);S.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",S);mxUtils.extend(Aa,mxRhombus);Aa.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",
-Aa);mxUtils.extend(ha,mxEllipse);ha.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ha);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,
+Aa);mxUtils.extend(ia,mxEllipse);ia.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ia);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,
e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(wa,mxEllipse);wa.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=
!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",
wa);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ea);mxUtils.extend(Ca,mxActor);Ca.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);
@@ -2760,9 +2761,9 @@ type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"
mxUtils.getValue(this.style,"rectStyle",this.rectStyle),l=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),k=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),v=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),z=e&&e.dashed?e.dashed:
mxUtils.getValue(this.style,"dashed",!1),n=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),m=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,v)),t=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),u=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),C=e&&e.bottom?e.bottom:mxUtils.getValue(this.style,"bottom",!0),B=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
x=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),K=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),E=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),q=e&&e.fillColor?e.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,
-"strokeWidth","1"),oa=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ra=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),D=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),F=e&&e.opacity?e.opacity:mxUtils.getValue(this.style,"opacity","100"),H=Math.max(0,Math.min(50,k));e=Y.prototype;a.setDashed(z);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);k=Math.min(.5*f,.5*d,k);l||
-(k=H*Math.min(d,f)/100);k=Math.min(k,.5*Math.min(d,f));l||(v=Math.min(m*Math.min(d,f)/100));v=Math.min(v,.5*Math.min(d,f)-k);(t||u||C||B)&&"frame"!=p&&(a.begin(),t?e.moveNW(a,c,b,d,f,g,y,k,B):a.moveTo(0,0),t&&e.paintNW(a,c,b,d,f,g,y,k,B),e.paintTop(a,c,b,d,f,g,x,k,u),u&&e.paintNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),C&&e.paintSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),B&&e.paintSW(a,c,b,d,f,g,E,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(oa),
-z=l=F,"none"==oa&&(l=0),"none"==ra&&(z=0),a.setGradient(oa,ra,0,0,d,f,D,l,z),a.begin(),t?e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B):a.moveTo(v,0),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),B&&C&&e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C),C&&u&&e.paintSEInner(a,c,b,d,f,g,K,k,v),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u),u&&t&&e.paintNEInner(a,c,b,d,f,g,x,k,v),e.paintTopInner(a,c,b,d,f,g,y,k,v,B,t),t&&B&&e.paintNWInner(a,c,b,d,f,g,y,k,v),a.fill(),"none"==q&&(a.begin(),e.paintFolds(a,
+"strokeWidth","1"),ha=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ra=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),D=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),F=e&&e.opacity?e.opacity:mxUtils.getValue(this.style,"opacity","100"),H=Math.max(0,Math.min(50,k));e=Y.prototype;a.setDashed(z);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);k=Math.min(.5*f,.5*d,k);l||
+(k=H*Math.min(d,f)/100);k=Math.min(k,.5*Math.min(d,f));l||(v=Math.min(m*Math.min(d,f)/100));v=Math.min(v,.5*Math.min(d,f)-k);(t||u||C||B)&&"frame"!=p&&(a.begin(),t?e.moveNW(a,c,b,d,f,g,y,k,B):a.moveTo(0,0),t&&e.paintNW(a,c,b,d,f,g,y,k,B),e.paintTop(a,c,b,d,f,g,x,k,u),u&&e.paintNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),C&&e.paintSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),B&&e.paintSW(a,c,b,d,f,g,E,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(ha),
+z=l=F,"none"==ha&&(l=0),"none"==ra&&(z=0),a.setGradient(ha,ra,0,0,d,f,D,l,z),a.begin(),t?e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B):a.moveTo(v,0),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),B&&C&&e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C),C&&u&&e.paintSEInner(a,c,b,d,f,g,K,k,v),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u),u&&t&&e.paintNEInner(a,c,b,d,f,g,x,k,v),e.paintTopInner(a,c,b,d,f,g,y,k,v,B,t),t&&B&&e.paintNWInner(a,c,b,d,f,g,y,k,v),a.fill(),"none"==q&&(a.begin(),e.paintFolds(a,
c,b,d,f,g,y,x,K,E,k,t,u,C,B),a.stroke()));t||u||C||!B?t||u||!C||B?!t&&!u&&C&&B?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),e.paintSW(a,c,b,d,f,g,E,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,K,k,u),e.paintBottom(a,c,b,d,f,g,E,k,B),e.paintSW(a,c,b,d,f,g,E,k,
C),e.paintLeft(a,c,b,d,f,g,y,k,t),e.lineNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),e.paintSWInner(a,c,b,d,f,g,E,k,v,C),e.paintBottomInner(a,c,b,d,f,g,K,k,v,u,C),a.close(),a.fillAndStroke()):t||!u||C||B?!t&&u&&!C&&B?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),"double"==
p&&(e.moveSEInner(a,c,b,d,f,g,K,k,v,C),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,k,C),e.paintLeft(a,c,b,d,f,g,y,k,t),e.lineNWInner(a,c,b,d,f,g,y,k,v,t,B),e.paintLeftInner(a,c,b,d,f,g,E,k,v,C,B),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,x,k,t),e.paintRight(a,c,b,d,f,g,K,k,C),e.lineSEInner(a,c,b,d,f,g,K,k,v,C),e.paintRightInner(a,c,b,d,f,g,x,k,v,t,u),a.close(),a.fillAndStroke()):!t&&u&&C&&!B?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,x,
@@ -2836,14 +2837,14 @@ c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3))
"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=b},!1)]},callout:function(a){var c=[fa(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-
c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),fa(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
(c.x-a.x)/a.width)))/100},!1),fa(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,b*a.width+d),a.y+a.height-c)},function(a,c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));
-this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Fa(a));return c},internalStorage:function(a){var c=[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
+this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Fa(a));return c},internalStorage:function(a){var c=[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Fa(a));return c},module:function(a){return[fa(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",V.prototype.jettyWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",V.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+
2*b)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",qa.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",qa.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
-Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ka.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ka.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=
-Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(a){return[fa(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+
-c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-
+Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",la.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",la.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=
+Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(a){return[fa(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+
+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-
c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[fa(a,["isoAngle"],function(a){var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
-"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(c),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Va(g.prototype.size),cylinder3:Va(k.prototype.size),offPageConnector:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=
+"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(c),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Va(g.prototype.size),cylinder3:Va(p.prototype.size),offPageConnector:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=
Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,
"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(M.prototype.size,!0,null,!0,M.prototype.fixedSize),hexagon:Ma(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Ma(F.prototype.size,!1),display:Ma(Ga.prototype.size,!1),cube:Sa(1,b.prototype.size,!1),card:Sa(.5,t.prototype.size,!0),loopLimit:Sa(.5,va.prototype.size,!0),trapezoid:Wa(.5,
x.prototype.size,x.prototype.fixedSize),parallelogram:Wa(1,I.prototype.size,I.prototype.fixedSize)};Graph.createHandle=fa;Graph.handleFactory=Na;var cb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=cb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
@@ -2863,13 +2864,13 @@ null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.
0),!1));return a};t.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};k.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};p.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};k.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
.5*(c+d),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ia.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxEllipse.prototype.constraints;Ea.prototype.constraints=
+0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ja.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;za.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxEllipse.prototype.constraints;Ea.prototype.constraints=
mxEllipse.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;Ca.prototype.constraints=mxRectangleShape.prototype.constraints;Ga.prototype.getConstraints=function(a,c,b){a=[];var d=Math.min(c,b/2),f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
.5*(f+c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};V.prototype.getConstraints=function(a,c,b){c=parseFloat(mxUtils.getValue(a,"jettyWidth",V.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,
"jettyHeight",V.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),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(1,0),!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(0,1),!1,null,c),
@@ -2886,32 +2887,32 @@ a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return d};va
[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)];I.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;y.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;ka.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+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;la.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(c+d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};qa.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return a};R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ba.prototype.getConstraints=
function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};ja.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};ka.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ba.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ba.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};xa.prototype.getConstraints=
function(a,c,b){a=[];var d=Math.min(b,c),f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(b-f)/2,e=d+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
-.9),!1)];sa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+.9),!1)];sa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,m=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("smartFit",function(){d.popupMenuHandler.hideMenu();var a=
d.view.scale,f=d.view.translate.x,e=d.view.translate.y;b.actions.get("resetView").funct();1E-5>Math.abs(a-d.view.scale)&&f==d.view.translate.x&&e==d.view.translate.y&&b.actions.get(d.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?b.actions.get("smartFit").funct():d.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));
-window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(k){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+k.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=m;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=m;this.addAction("saveAs...",function(){b.saveFile(!0)},null,
+window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+p.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=m;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=m;this.addAction("saveAs...",function(){b.saveFile(!0)},null,
null,Editor.ctrlKey+"+Shift+S").isEnabled=m;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=m;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print",
Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=b.copyXml(),null!=a&&d.removeCells(a)}catch(f){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{b.copyXml()}catch(c){}try{mxClipboard.copy(d)}catch(c){b.handleError(c)}},
null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),a=!0)}catch(f){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){function c(a){if(null!=a){for(var c=!0,b=0;b<
-a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var k=d.getCellGeometry(a[0]);null!=k&&(f=k.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function e(){d.getModel().beginUpdate();try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=
-!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else e()}),a=!0)}catch(k){}a||e()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&
+a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var p=d.getCellGeometry(a[0]);null!=p&&(f=p.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function e(){d.getModel().beginUpdate();try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=
+!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else e()}),a=!0)}catch(p){}a||e()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&
null!=b.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getResizableCells(d.getSelectionCells()),f=0;f<a.length;f++)if(d.getModel().isVertex(a[f])){var e=d.getCellGeometry(a[f]);null!=e&&(e=e.clone(),e.width=b.copiedSize.width,e.height=b.copiedSize.height,d.getModel().setGeometry(a[f],e))}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=d.getSelectionCell()||d.getModel().getRoot();d.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||
-(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var f=e.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==f||isNaN(f.nodeType)||b.setAttribute("placeholders",f.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));e.setValue(c,b)}var e=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){e.beginUpdate();try{var k=d.getEditableCells(d.getSelectionCells());
-if(0==k.length)c(e.getRoot(),b.copiedValue);else for(var l=0;l<k.length;l++)c(k[l],b.copiedValue)}finally{e.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(c){a(null!=c&&mxEvent.isControlDown(c))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),b=0;b<a.length;b++)d.cellLabelChanged(a[b],"")}finally{d.getModel().endUpdate()}}},
+(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var f=e.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==f||isNaN(f.nodeType)||b.setAttribute("placeholders",f.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));e.setValue(c,b)}var e=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){e.beginUpdate();try{var p=d.getEditableCells(d.getSelectionCells());
+if(0==p.length)c(e.getRoot(),b.copiedValue);else for(var l=0;l<p.length;l++)c(p[l],b.copiedValue)}finally{e.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(c){a(null!=c&&mxEvent.isControlDown(c))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),b=0;b<a.length;b++)d.cellLabelChanged(a[b],"")}finally{d.getModel().endUpdate()}}},
null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{d.setSelectionCells(d.duplicateCells()),d.scrollCellToVisible(d.getSelectionCell())}catch(c){b.handleError(c)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(a){d.turnShapes(d.getResizableCells(d.getSelectionCells()),null!=a?mxEvent.isShiftDown(a):!1)},null,null,Editor.ctrlKey+"+R"));this.put("selectConnections",new Action(mxResources.get("selectEdges"),
function(a){a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.addSelectionCells(d.getEdges(a))}));this.addAction("selectVertices",function(){d.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",
function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),b=d.getCurrentCellStyle(d.getSelectionCell()),e=1==mxUtils.getValue(b,mxConstants.STYLE_EDITABLE,1)?0:1;d.setCellStyles(mxConstants.STYLE_MOVABLE,e,a);d.setCellStyles(mxConstants.STYLE_RESIZABLE,e,a);d.setCellStyles(mxConstants.STYLE_ROTATABLE,e,a);d.setCellStyles(mxConstants.STYLE_DELETABLE,e,a);d.setCellStyles(mxConstants.STYLE_EDITABLE,e,a);d.setCellStyles("connectable",e,a)}finally{d.getModel().endUpdate()}}},
@@ -2923,10 +2924,10 @@ d.getSelectionCells();if(null!=a){for(var b=[],e=0;e<a.length;e++)d.isTableRow(a
null!=a&&d.openLink(a)});this.addAction("editLink...",function(){var a=d.getSelectionCell();if(d.isEnabled()&&null!=a&&d.isCellEditable(a)){var f=d.getLinkForCell(a)||"";b.showLinkDialog(f,mxResources.get("apply"),function(c,b,f){c=mxUtils.trim(c);d.setLinkForCell(a,0<c.length?c:null);d.setAttributeForCell(a,"linkTarget",f)},!0,d.getLinkTargetForCell(a))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
(d.clearSelection(),b.actions.get("image").funct())})).isEnabled=m;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,b,e){a=mxUtils.trim(a);if(0<a.length){var c=null,f=d.getLinkTitle(a);null!=b&&0<b.length&&(c=b[0].iconUrl,f=b[0].name||b[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));b=new mxCell(f,new mxGeometry(0,0,100,
40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));b.vertex=!0;c=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([b],!0));b.geometry.x=c.x;b.geometry.y=c.y;d.setAttributeForCell(b,"linkTarget",e);d.setLinkForCell(b,a);d.cellSizeUpdated(b,!0);d.getModel().beginUpdate();try{b=d.addCell(b),d.fireEvent(new mxEventObject("cellsInserted","cells",[b]))}finally{d.getModel().endUpdate()}d.setSelectionCell(b);
-d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=m;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),f=d.getParentByName(a,"A",d.cellEditor.textarea),e="";if(null==f&&null!=a&&null!=a.getElementsByTagName)for(var k=a.getElementsByTagName("a"),l=0;l<k.length&&null==f;l++)k[l].textContent==a.textContent&&(f=k[l]);null!=f&&"A"==f.nodeName&&(e=f.getAttribute("href")||"",d.selectNode(f));var p=d.cellEditor.saveSelection();
-b.showLinkDialog(e,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(p);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=m;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var e=a[b];0<d.getModel().getChildCount(e)?d.updateGroupBounds([e],20):d.updateCellSize(e)}}finally{d.getModel().endUpdate()}}},null,
-null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var f=d.getEditableCells(d.getSelectionCells()),e=0;e<f.length;e++)if(state=d.getView().getState(f[e]),null!=state){var k=mxUtils.getValue(state.style,"html","0");if("1"==k&&null==a){var l=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,
-"").replace(/<br\s*.?>/g,"\n"));var p=document.createElement("div");p.innerHTML=d.sanitizeHtml(l);l=mxUtils.extractTextWithWhitespace(p.childNodes);d.cellLabelChanged(state.cell,l);d.setCellStyles("html",a,[f[e]])}else"0"==k&&"1"==a&&(l=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(l)),d.setCellStyles("html",a,[f[e]]))}b.fireEvent(new mxEventObject("styleChanged",
+d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=m;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),f=d.getParentByName(a,"A",d.cellEditor.textarea),e="";if(null==f&&null!=a&&null!=a.getElementsByTagName)for(var p=a.getElementsByTagName("a"),l=0;l<p.length&&null==f;l++)p[l].textContent==a.textContent&&(f=p[l]);null!=f&&"A"==f.nodeName&&(e=f.getAttribute("href")||"",d.selectNode(f));var k=d.cellEditor.saveSelection();
+b.showLinkDialog(e,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(k);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=m;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var e=a[b];0<d.getModel().getChildCount(e)?d.updateGroupBounds([e],20):d.updateCellSize(e)}}finally{d.getModel().endUpdate()}}},null,
+null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var f=d.getEditableCells(d.getSelectionCells()),e=0;e<f.length;e++)if(state=d.getView().getState(f[e]),null!=state){var p=mxUtils.getValue(state.style,"html","0");if("1"==p&&null==a){var l=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,
+"").replace(/<br\s*.?>/g,"\n"));var k=document.createElement("div");k.innerHTML=d.sanitizeHtml(l);l=mxUtils.extractTextWithWhitespace(k.childNodes);d.cellLabelChanged(state.cell,l);d.setCellStyles("html",a,[f[e]])}else"0"==p&&"1"==a&&(l=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(l=l.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(l)),d.setCellStyles("html",a,[f[e]]))}b.fireEvent(new mxEventObject("styleChanged",
"keys",["html"],"values",[null!=a?a:"0"],"cells",f))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",f=d.getView().getState(d.getSelectionCell());null!=f&&(a=f.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),
function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(a){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,b.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(a){d.isFastZoomEnabled()?
d.lazyZoom(!1,!0,b.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var a=d.isSelectionEmpty()?d.getGraphBounds():d.getBoundingBox(d.getSelectionCells()),f=d.view.translate,e=d.view.scale;a.x=a.x/e-f.x;a.y=a.y/e-f.y;a.width/=e;a.height/=e;null!=d.backgroundImage&&a.add(new mxRectangle(0,0,d.backgroundImage.width,d.backgroundImage.height));0==a.width||0==a.height?(d.zoomTo(1),b.resetScrollbars()):(f=Editor.fitWindowBorders,
@@ -2939,9 +2940,9 @@ n.setEnabled(!1);n=this.addAction("guides",function(){d.graphHandler.guidesEnabl
n=this.addAction("collapseExpand",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.foldingEnabled});n.isEnabled=m;n=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.scrollbars});n=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));
n.setToggleAction(!0);n.setSelectedCallback(function(){return d.pageVisible});n=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");n.setToggleAction(!0);n.setSelectedCallback(function(){return d.connectionArrowsEnabled});n=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},
null,null,"Alt+Shift+P");n.setToggleAction(!0);n.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});n=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});n.isEnabled=m;n=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});n.setToggleAction(!0);
-n.setSelectedCallback(function(){return b.editor.autosave});n.isEnabled=m;n.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var q=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){q||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){q=!1}),q=!0)}));n=mxUtils.bind(this,function(a,b,e,k){return this.addAction(a,function(){if(null!=
+n.setSelectedCallback(function(){return b.editor.autosave});n.isEnabled=m;n.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var q=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){q||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){q=!1}),q=!0)}));n=mxUtils.bind(this,function(a,b,e,p){return this.addAction(a,function(){if(null!=
e&&d.cellEditor.isContentEditing())e();else{d.stopEditing(!1);d.getModel().beginUpdate();try{var a=d.getEditableCells(d.getSelectionCells());d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,b,a);(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(a,function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(a,function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==
-mxConstants.FONT_UNDERLINE&&d.updateLabelElements(a,function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var c=0;c<a.length;c++)0==d.model.getChildCount(a[c])&&d.autoSizeCell(a[c],!1)}finally{d.getModel().endUpdate()}}},null,null,k)});n("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");n("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");n("underline",mxConstants.FONT_UNDERLINE,
+mxConstants.FONT_UNDERLINE&&d.updateLabelElements(a,function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var c=0;c<a.length;c++)0==d.model.getChildCount(a[c])&&d.autoSizeCell(a[c],!1)}finally{d.getModel().endUpdate()}}},null,null,p)});n("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");n("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");n("underline",mxConstants.FONT_UNDERLINE,
function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",
function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",
@@ -2951,12 +2952,12 @@ d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dott
"values",[e,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),
f="1";null!=a&&null!=d.getFoldingImage(a)&&(f="0");d.setCellStyles("collapsible",f);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[f],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getEditableCells(d.getSelectionCells());if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),a)},null,null,
400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);
-if(b instanceof mxEdgeHandler){for(var g=d.view.translate,k=d.view.scale,l=g.x,g=g.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=p;)l+=p.x,g+=p.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);l=Math.round(d.snap(d.popupMenuHandler.triggerX/k-l));k=Math.round(d.snap(d.popupMenuHandler.triggerY/k-g));b.addPointAt(b.state,l,k)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,
+if(b instanceof mxEdgeHandler){for(var g=d.view.translate,p=d.view.scale,l=g.x,g=g.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=k;)l+=k.x,g+=k.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);l=Math.round(d.snap(d.popupMenuHandler.triggerX/p-l));p=Math.round(d.snap(d.popupMenuHandler.triggerY/p-g));b.addPointAt(b.state,l,p)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,
a.index)});this.addAction("clearWaypoints",function(a){var c=d.getSelectionCells();if(null!=c){c=d.getEditableCells(d.addAllEdges(c));d.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var e=c[b];if(d.getModel().isEdge(e)){var l=d.getCellGeometry(e);mxEvent.isShiftDown(a)?(d.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),d.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=l&&(l=
l.clone(),l.points=null,l.x=0,l.y=0,l.offset=null,d.getModel().setGeometry(e,l))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");n=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");n=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
-function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",f=d.getView().getState(d.getSelectionCell()),e="";null!=f&&(e=f.style[mxConstants.STYLE_IMAGE]||e);var k=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(k),d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var e=null;d.getModel().beginUpdate();
-try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],g=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=g.x;f[0].geometry.y=g.y;e=f;d.fireEvent(new mxEventObject("cellsInserted","cells",e))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,f);var l=d.getCurrentCellStyle(f[0]);"image"!=l[mxConstants.STYLE_SHAPE]&&"label"!=l[mxConstants.STYLE_SHAPE]?
-d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var p=f[0],n=d.getModel().getGeometry(p);null!=n&&(n=n.clone(),n.width=c,n.height=b,d.getModel().setGeometry(p,n))}}finally{d.getModel().endUpdate()}null!=e&&(d.setSelectionCells(e),d.scrollCellToVisible(e[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=m;n=this.addAction("layers",mxUtils.bind(this,function(){null==
+function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",f=d.getView().getState(d.getSelectionCell()),e="";null!=f&&(e=f.style[mxConstants.STYLE_IMAGE]||e);var p=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(p),d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var e=null;d.getModel().beginUpdate();
+try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],g=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=g.x;f[0].geometry.y=g.y;e=f;d.fireEvent(new mxEventObject("cellsInserted","cells",e))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,f);var k=d.getCurrentCellStyle(f[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?
+d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var l=f[0],n=d.getModel().getGeometry(l);null!=n&&(n=n.clone(),n.width=c,n.height=b,d.getModel().setGeometry(l,n))}}finally{d.getModel().endUpdate()}null!=e&&(d.setSelectionCells(e),d.scrollCellToVisible(e[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=m;n=this.addAction("layers",mxUtils.bind(this,function(){null==
this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+
"+Shift+L");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));n=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));n=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-
260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return null!=
@@ -2968,22 +2969,22 @@ DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile
DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(a,b){this.savingFile?null!=b&&b({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(a,b):this.updateFile(a,b)};
DrawioFile.prototype.updateFile=function(a,b,e,d){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():this.getLatestVersion(mxUtils.bind(this,function(m){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():null!=m?this.mergeFile(m,a,b,d):this.reloadFile(a,b))}catch(n){null!=b&&b(n)}}),b))};
DrawioFile.prototype.mergeFile=function(a,b,e,d){var m=!0;try{this.stats.fileMerged++;var n=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),q=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=q&&0<q.length){this.shadowPages=q;this.backupPatch=this.isModified()?this.ui.diffPages(n,this.ui.pages):null;var c=[this.ui.diffPages(null!=d?d:n,this.shadowPages)];if(!this.ignorePatches(c)){var f=this.ui.patchPages(n,
-c[0]);d={};var g=this.ui.getHashValueForPages(f,d),n={},k=this.ui.getHashValueForPages(this.shadowPages,n);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",c,"checksum",k==g,g);if(null!=g&&g!=k){var l=this.compressReportData(this.getAnonymizedXmlForPages(q)),p=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(a.getCurrentEtag()),t=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,c,"Shadow Details: "+JSON.stringify(d)+
-"\nChecksum: "+g+"\nCurrent: "+k+"\nCurrent Details: "+JSON.stringify(n)+"\nFrom: "+u+"\nTo: "+t+"\n\nFile Data:\n"+l+"\nPatched Shadow:\n"+p,null,"mergeFile");return}this.patch(c,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw m=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(I){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+c[0]);d={};var g=this.ui.getHashValueForPages(f,d),n={},p=this.ui.getHashValueForPages(this.shadowPages,n);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",c,"checksum",p==g,g);if(null!=g&&g!=p){var l=this.compressReportData(this.getAnonymizedXmlForPages(q)),k=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(a.getCurrentEtag()),t=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,c,"Shadow Details: "+JSON.stringify(d)+
+"\nChecksum: "+g+"\nCurrent: "+p+"\nCurrent Details: "+JSON.stringify(n)+"\nFrom: "+u+"\nTo: "+t+"\n\nFile Data:\n"+l+"\nPatched Shadow:\n"+k,null,"mergeFile");return}this.patch(c,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw m=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(I){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
null!=e&&e(I);try{if(m)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,I);else{var A=this.getCurrentUser(),y=null!=A?A.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),y,I)}}catch(x){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var b=new mxCodec(mxUtils.createXmlDocument()),e=b.document.createElement("mxfile");if(null!=a)for(var d=0;d<a.length;d++){var m=b.encode(new mxGraphModel(a[d].root));"1"!=urlParams.dev&&(m=this.ui.anonymizeNode(m,!0));m.setAttribute("id",a[d].getId());a[d].viewState&&this.ui.editor.graph.saveViewState(a[d].viewState,m,!0);e.appendChild(m)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(a,b,e){b=null!=b?b:1E4;null!=e&&null!=a&&a.length>e?a=a.substring(0,e)+"[...]":null!=a&&a.length>b&&(a=Graph.compress(a)+"\n");return a};
DrawioFile.prototype.checksumError=function(a,b,e,d,m){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=b)for(a=0;a<b.length;a++)this.ui.anonymizePatch(b[a]);var n=mxUtils.bind(this,function(a){var c=this.compressReportData(JSON.stringify(b,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
25E3):"n/a";this.sendErrorReport("Checksum Error in "+m+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+c+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==d?n(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==d?n(a):n(null)}),function(){})}else{var q=this.getCurrentUser(),c=null!=q?q.id:"unknown";EditorUi.logError("Checksum Error in "+m+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+c+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:m,label:"user_"+c+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(f){}}}catch(f){}};
-DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var m=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),n=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),q=this.getCurrentUser(),c=null!=q?this.ui.hashValue(q.id):"unknown",f=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),k=g.lastIndexOf("."),q="xml";0<k&&(q=g.substring(k));var l=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
+DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var m=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),n=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),q=this.getCurrentUser(),c=null!=q?this.ui.hashValue(q.id):"unknown",f=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),p=g.lastIndexOf("."),q="xml";0<p&&(q=g.substring(p));var l=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+q+")\nUser="+c+f+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=b?"\n\n"+b:
-"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+l+"\n\nShadow:\n"+m+"\n\nData:\n"+n,d)}catch(p){}};
+"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+l+"\n\nShadow:\n"+m+"\n\nData:\n"+n,d)}catch(k){}};
DrawioFile.prototype.reloadFile=function(a,b){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var b=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),n=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(n,b,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var d=this.ui.getCurrentFile();null!=d&&(d.stats=this.stats);null!=a&&
a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(d){null!=b&&b(d)}};DrawioFile.prototype.copyFile=function(a,b){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(a){for(var b=!0,e=0;e<a.length&&b;e++)b=b&&0==Object.keys(a[e]).length;return b};
-DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,m=d.history.slice(),n=d.indexOfNextAdd,q=this.ui.editor.graph;q.container.style.visibility="hidden";var c=this.changeListenerEnabled;this.changeListenerEnabled=e;var f=q.foldingEnabled,g=q.mathEnabled,k=q.cellRenderer.redraw;q.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());k.apply(this,arguments)};q.model.beginUpdate();try{for(var l=
-0;l<a.length;l++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[l],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{q.container.style.visibility="";q.model.endUpdate();q.cellRenderer.redraw=k;this.changeListenerEnabled=c;e||(d.history=m,d.indexOfNextAdd=n,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=
+DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,m=d.history.slice(),n=d.indexOfNextAdd,q=this.ui.editor.graph;q.container.style.visibility="hidden";var c=this.changeListenerEnabled;this.changeListenerEnabled=e;var f=q.foldingEnabled,g=q.mathEnabled,p=q.cellRenderer.redraw;q.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());p.apply(this,arguments)};q.model.beginUpdate();try{for(var l=
+0;l<a.length;l++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[l],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{q.container.style.visibility="";q.model.endUpdate();q.cellRenderer.redraw=p;this.changeListenerEnabled=c;e||(d.history=m,d.indexOfNextAdd=n,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=
q.mathEnabled?(this.ui.editor.updateGraphComponents(),q.refresh()):(f!=q.foldingEnabled?q.view.revalidate():q.view.validate(),q.sizeDidChange());this.ui.updateTabContainer()}};
DrawioFile.prototype.save=function(a,b,e,d,m,n){try{if(this.isEditable())if(!m&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=b&&b();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(q){if(null!=e)e(q);else throw q;}};
DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var a=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=a?"false"!=a:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(a,b,e){};DrawioFile.prototype.saveFile=function(a,b,e,d){};
@@ -2999,7 +3000,7 @@ DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(thi
this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("tooltipsEnabledChanged",
this.changeListener),this.ui.addListener("pageViewChanged",this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))};
DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var a={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(a));EditorUi.debug("draft saved",this.draftId,a)}catch(b){console.error(b),this.removeDraft()}};
+DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var a={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(a));EditorUi.debug("draft saved",this.draftId,a)}catch(b){this.removeDraft()}};
DrawioFile.prototype.removeDraft=function(){try{null!=this.draftId&&(this.ui.removeDatabaseItem(".draft_"+this.draftId),EditorUi.debug("draft deleted",".draft_"+this.draftId))}catch(a){}};
DrawioFile.prototype.addUnsavedStatus=function(a){if(!this.inConflictState&&null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this)if(a instanceof Error&&null!=a.message&&""!=a.message){var b=mxUtils.htmlEntities(mxResources.get("unsavedChanges"));this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlert" style="overflow:hidden;">'+b+" ("+mxUtils.htmlEntities(a.message)+")</div>")}else{b=this.getErrorMessage(a);if(null==b&&null!=this.lastSaved){var e=this.ui.timeSince(new Date(this.lastSaved));
null!=e&&(b=mxResources.get("lastSaved",[e]))}null!=b&&60<b.length&&(b=b.substring(0,60)+"...");b=mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+(null!=b&&""!=b?" ("+mxUtils.htmlEntities(b)+")":"");this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlertOrange" style="cursor:pointer;overflow:hidden;">'+b+' <img src="'+Editor.saveImage+'" align="top" style="width:16px;margin-top:'+(mxClient.IS_FF?-3:-2)+'px"/></div>');b=this.ui.statusContainer.getElementsByTagName("div");
@@ -3034,9 +3035,10 @@ DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.proto
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(a){this.desc=a};
LocalFile.prototype.getLatestVersion=function(a,b){null==this.fileHandle?a(null):this.ui.loadFileSystemEntry(this.fileHandle,a,b)};
LocalFile.prototype.saveFile=function(a,b,e,d,m){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;m||this.updateFileData();var n=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var q=this.getData(),c=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),f=mxUtils.bind(this,function(b){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var f=mxUtils.bind(this,
-function(a){this.savingFile=!1;null!=d&&d({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(n?this.ui.base64ToBlob(b,"image/png"):b).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var b=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(q,
-b,c,f)}),f)}),f)}),f):(this.inConflictState=!0,f())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;f(a)}))}),f)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,n?"image/png":"text/xml",n);else if(b.length<MAX_REQUEST_SIZE){var e=a.lastIndexOf("."),e=0<e?a.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+(n?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
-mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));c()}});n?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){f(a)}),d,this.ui.getCurrentFile()!=this?q:null,b.scale,b.border)):f(q)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
+function(a){this.savingFile=!1;null!=d&&d({error:a})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(n?this.ui.base64ToBlob(b,"image/png"):b).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){try{var b=this.desc;this.savingFile=!1;this.desc=
+a;this.fileSaved(q,b,c,f);this.removeDraft()}catch(y){f(y)}}),f)}),f)}),f):(this.inConflictState=!0,f())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;f(a)}))}),f)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,n?"image/png":"text/xml",n);else if(b.length<MAX_REQUEST_SIZE){var e=a.lastIndexOf("."),e=0<e?a.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+(n?"&binary=1":""))).simulate(document,
+"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));c()}});n?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){f(a)}),d,this.ui.getCurrentFile()!=this?q:null,b.scale,b.border)):f(q)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};
+LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
graph:{background:"#DAD2D8",gridColor:"#ABA4A9"}},{commonStyle:{fontColor:"#FEFAE0",strokeColor:"#DDA15E",fillColor:"#BC6C25"},graph:{background:"#283618",gridColor:"#48632C"}},{commonStyle:{fontColor:"#E4FDE1",strokeColor:"#028090",fillColor:"#F45B69"},graph:{background:"#114B5F",gridColor:"#0B3240"}},{},{vertexStyle:{strokeColor:"#D0CEE2",fillColor:"#FAD9D5"},edgeStyle:{strokeColor:"#09555B"},commonStyle:{fontColor:"#1A1A1A"}},{vertexStyle:{strokeColor:"#BAC8D3",fillColor:"#09555B",fontColor:"#EEEEEE"},
@@ -3145,14 +3147,14 @@ if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFont
c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,l,p,t,n,u,m,y,x,q,A){try{e=null!=e?e:!0;g=null!=g?g:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var v=l?null:n.background;v==mxConstants.NONE&&(v=null);null==v&&(v=d);null==v&&0==l&&(v=x?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,m,null,g,null,null,null,p,null,x,q,A),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){m.drawImage(d,
0,0);a(l,b)},0):(m.drawImage(d,0,0),a(l,b))},l=document.createElement("canvas"),p=parseInt(b.getAttribute("width")),t=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*t),c/p)):c/p);k=this.getMaxCanvasScale(p,t,k);p=Math.ceil(k*p);t=Math.ceil(k*t);l.setAttribute("width",p);l.setAttribute("height",t);var m=l.getContext("2d");null!=v&&(m.beginPath(),m.rect(0,0,p,t),m.fillStyle=v,m.fill());1!=k&&m.scale(k,k);if(y){var x=n.view,B=x.scale;x.scale=1;var C=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));
x.scale=B;var C="data:image/svg+xml;base64,"+C,q=n.gridSize*x.gridSteps*k,A=n.getGraphBounds(),E=x.translate.x*B,D=x.translate.y*B,F=E+(A.x-E)/B-u,H=D+(A.y-D)/B-u,K=new Image;K.onload=function(){try{for(var a=-Math.round(q-mxUtils.mod((E-F)*k,q)),c=-Math.round(q-mxUtils.mod((D-H)*k,q));a<p;a+=q)for(var b=c;b<t;b+=q)m.drawImage(K,a/k,b/k);g()}catch(xa){null!=f&&f(xa)}};K.onerror=function(a){null!=f&&f(a)};K.src=C}else g()}catch(wa){null!=f&&f(wa)}});d.onerror=function(a){null!=f&&f(a)};p&&this.graph.addSvgShadow(b);
-this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=f&&f(R)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(ka){null!=f&&f(ka)}}))}catch(R){null!=f&&f(R)}}),b,t)}catch(da){null!=f&&f(da)}};Editor.crcTable=[];for(var m=0;256>m;m++)for(var n=m,q=0;8>q;q++)n=1==(n&1)?3988292384^n>>>
+this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=f&&f(R)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(la){null!=f&&f(la)}}))}catch(R){null!=f&&f(R)}}),b,t)}catch(da){null!=f&&f(da)}};Editor.crcTable=[];for(var m=0;256>m;m++)for(var n=m,q=0;8>q;q++)n=1==(n&1)?3988292384^n>>>
1:n>>>1,Editor.crcTable[m]=n;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=l;l+=c;return a.substring(b,l)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>
24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var l=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,l);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,l-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,
c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(l-8,a.length);break}f+=a.substring(l-8,l-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var c=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};
var f=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
-this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?k.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var l=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
+this.update)};var p=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?p.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var l=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=
function(a){a=l.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});
-Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);
+Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var k=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=k.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);
c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=
function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=
@@ -3277,45 +3279,45 @@ null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=th
this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var U=document.createElement("canvas"),N=new Image;N.onload=function(){try{U.getContext("2d").drawImage(N,0,0);var a=U.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(C){}};N.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(v){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.9.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.9.2";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&&"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(a,b,d,e,l,p,n){p=null!=p?p:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
-"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";l=null!=l?l:Error(a);(new Image).src=c+"/log?severity="+p+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+
-encodeURIComponent(e):"")+(null!=l&&null!=l.stack?"&stack="+encodeURIComponent(l.stack):"")}}catch(A){}try{n||null==window.console||console.error(p,a,b,d,e,l)}catch(A){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=
+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(a,b,d,e,l,k,n){k=null!=k?k:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";l=null!=l?l:Error(a);(new Image).src=c+"/log?severity="+k+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+
+encodeURIComponent(e):"")+(null!=l&&null!=l.stack?"&stack="+encodeURIComponent(l.stack):"")}}catch(A){}try{n||null==window.console||console.error(k,a,b,d,e,l)}catch(A){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=
function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);
console.log.apply(console,a)}}catch(g){}};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.removeChildNodes=
function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
-!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(l){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(p){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(l){}try{b=
+!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(l){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(k){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(l){}try{b=
document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(l){}})();EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(a){return this.isOfflineApp()||!navigator.onLine||!a&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};
EditorUi.prototype.createSpinner=function(a,b,d){var c=null==a||null==b;d=null!=d?d:24;var f=new Spinner({lines:12,length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=f.spin;f.spin=function(d,g){var k=!1;this.active||(e.call(this,d),this.active=!0,null!=g&&(c&&(b=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,a=document.body.clientWidth/2-2),k=document.createElement("div"),
k.style.position="absolute",k.style.whiteSpace="nowrap",k.style.background="#4B4243",k.style.color="white",k.style.fontFamily="Helvetica, Arial",k.style.fontSize="9pt",k.style.padding="6px",k.style.paddingLeft="10px",k.style.paddingRight="10px",k.style.zIndex=2E9,k.style.left=Math.max(0,a)+"px",k.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(k.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(k.style,
"boxShadow","2px 2px 3px 0px #ddd"),"..."!=g.substring(g.length-3,g.length)&&"!"!=g.charAt(g.length-1)&&(g+="..."),k.innerHTML=g,d.appendChild(k),f.status=k),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,g)}));this.stop();return a}),k=!0);return k};var g=f.stop;f.stop=function(){g.call(this);this.active=!1;null!=f.status&&null!=f.status.parentNode&&f.status.parentNode.removeChild(f.status);f.status=null};f.pause=function(){return function(){}};
-return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
+return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(p){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
3==a.charCodeAt(2)&&4==a.charCodeAt(3)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&3==a.charCodeAt(2)&&6==a.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||60==a.charCodeAt(0)&&63==a.charCodeAt(1)&&120==a.charCodeAt(2)&&109==a.charCodeAt(3)&&108==a.charCodeAt(3))};EditorUi.prototype.isPngData=
function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};var a=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var b=a.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=b.getFunction,e=this.editor.graph,l=this;b.getFunction=function(a){if(e.isSelectionEmpty()&&null!=l.pages&&0<l.pages.length){var c=
l.getSelectedPageIndex();if(mxEvent.isShiftDown(a)){if(37==a.keyCode)return function(){0<c&&l.movePage(c,c-1)};if(38==a.keyCode)return function(){0<c&&l.movePage(c,0)};if(39==a.keyCode)return function(){c<l.pages.length-1&&l.movePage(c,c+1)};if(40==a.keyCode)return function(){c<l.pages.length-1&&l.movePage(c,l.pages.length-1)}}else if(mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)){if(37==a.keyCode)return function(){0<c&&l.selectNextPage(!1)};if(38==a.keyCode)return function(){0<
c&&l.selectPage(l.pages[0])};if(39==a.keyCode)return function(){c<l.pages.length-1&&l.selectNextPage(!0)};if(40==a.keyCode)return function(){c<l.pages.length-1&&l.selectPage(l.pages[l.pages.length-1])}}}return d.apply(this,arguments)}}return b};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("&lt;mxfile ");if(0<=d){var e=a.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=a.substring(d,e+
-15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var l=mxUtils.parseXml(a),p=this.editor.extractGraphModel(l.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=p?mxUtils.getXml(p):""}catch(u){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var l=mxUtils.parseXml(a),k=this.editor.extractGraphModel(l.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=k?mxUtils.getXml(k):""}catch(u){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-
-1;0<=e;e--){var p=this.updatePageRoot(new DiagramPage(d[e]));null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,p,0==e?p:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,l,p,n,t,m,y,q){b=null!=b?b:this.editor.graph;l=null!=l?l:!1;m=null!=m?m:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(q){var k=
-a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());k.appendChild(a)}else{k=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(k);if(Graph.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());mxUtils.setTextContent(k,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}y?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
+1;0<=e;e--){var k=this.updatePageRoot(new DiagramPage(d[e]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,k,0==e?k:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
+this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,l,k,n,t,m,y,q){b=null!=b?b:this.editor.graph;l=null!=l?l:!1;m=null!=m?m:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(q){var p=
+a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());p.appendChild(a)}else{p=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(p);if(Graph.decompress(g)!=p)return p;p=a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(p)}y?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("pages"),g.removeAttribute("type"),mxClient.IS_CHROMEAPP?g.setAttribute("host","Chrome"):EditorUi.isElectronApp?g.setAttribute("host","Electron"):g.setAttribute("host",window.location.hostname),g.setAttribute("modified",(new Date).toISOString()),g.setAttribute("agent",navigator.appVersion),g.setAttribute("version",
-EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));q=q?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!p&&!l&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))q=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(p||!l&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
+EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));q=q?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!k&&!l&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))q=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(k||!l&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
App.MODE_BROWSER||(e=null),q=this.getEmbeddedSvg(q,b,e,null,t,m,f);return q};EditorUi.prototype.getXmlFileData=function(a,b,d){a=null!=a?a:!0;b=null!=b?b:!1;d=null!=d?d:!Editor.compressXml;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&d?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
null==b||d?a=a.cloneNode(!0):(a=a.cloneNode(!1),mxUtils.setTextContent(a,Graph.compressNode(b)));c.appendChild(a)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(c)),c=this.fileNode.cloneNode(!1),b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var f=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,
f);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(f));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return c};EditorUi.prototype.anonymizeString=function(a,b){for(var c=[],d=0;d<a.length;d++){var f=a.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(f)?c.push(f):isNaN(parseInt(f))?f.toLowerCase()!=f?c.push(String.fromCharCode(65+Math.round(25*Math.random()))):f.toUpperCase()!=f?c.push(String.fromCharCode(97+Math.round(25*Math.random()))):
-/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(p){a[EditorUi.DIFF_INSERT][c].data=
-p.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
+/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(k){a[EditorUi.DIFF_INSERT][c].data=
+k.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
delete e.cells[a]}}),c(EditorUi.DIFF_INSERT),c(EditorUi.DIFF_UPDATE),0==Object.keys(e.cells).length&&delete e.cells);0==Object.keys(e).length&&delete a[EditorUi.DIFF_UPDATE][d]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};EditorUi.prototype.anonymizeAttributes=function(a,b){if(null!=a.attributes)for(var c=0;c<a.attributes.length;c++)"as"!=a.attributes[c].name&&a.setAttribute(a.attributes[c].name,this.anonymizeString(a.attributes[c].value,b));if(null!=a.childNodes)for(c=
0;c<a.childNodes.length;c++)this.anonymizeAttributes(a.childNodes[c],b)};EditorUi.prototype.anonymizeNode=function(a,b){for(var c=a.getElementsByTagName("mxCell"),d=0;d<c.length;d++)null!=c[d].getAttribute("value")&&c[d].setAttribute("value","["+c[d].getAttribute("value").length+"]"),null!=c[d].getAttribute("xmlValue")&&c[d].setAttribute("xmlValue","["+c[d].getAttribute("xmlValue").length+"]"),null!=c[d].getAttribute("style")&&c[d].setAttribute("style","["+c[d].getAttribute("style").length+"]"),null!=
c[d].parentNode&&"root"!=c[d].parentNode.nodeName&&null!=c[d].parentNode.parentNode&&(c[d].setAttribute("id",c[d].parentNode.getAttribute("id")),c[d].parentNode.parentNode.replaceChild(c[d],c[d].parentNode));return a};EditorUi.prototype.synchronizeCurrentFile=function(a){var c=this.getCurrentFile();null!=c&&(c.savingFile?this.handleError({message:mxResources.get("busy")}):!a&&c.invalidChecksum?c.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(c.clearAutosave(),
-this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,l,p,n,t,m,y){l=null!=l?l:!0;p=null!=p?p:!1;var c=this.editor.graph;if(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))if(y=
-!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}n=null!=n?n:this.getXmlFileData(l,p,y);m=null!=m?m:this.getCurrentFile();a=this.createFileData(n,c,m,window.location.href,a,b,d,e,l,t,y);c!=this.editor.graph&&
-c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,l,p){p=null!=p?p:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=p?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;p=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==l&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",p);a.setAttribute("y0",
+this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,l,k,n,t,m,y){l=null!=l?l:!0;k=null!=k?k:!1;var c=this.editor.graph;if(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))if(y=
+!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}n=null!=n?n:this.getXmlFileData(l,k,y);m=null!=m?m:this.getCurrentFile();a=this.createFileData(n,c,m,window.location.href,a,b,d,e,l,t,y);c!=this.editor.graph&&
+c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,l,k){k=null!=k?k:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=k?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;k=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==l&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",k);a.setAttribute("y0",
g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=l&&(l=l.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";e=Graph.compress(a);Graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==l?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
(null!=l?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==l?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=l?'<meta http-equiv="refresh" content="0;URL=\''+l+"'\"/>\n":"")+"</head>\n<body"+(null==l&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==l?'<script type="text/javascript" src="'+
f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,l){b=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=l&&(l=l.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};
@@ -3323,21 +3325,21 @@ null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,thi
mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==l?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
null;var c=Editor.extractParserError(a,mxResources.get("invalidOrMissingFile"));if(c)throw Error(mxResources.get("notADiagramFile")+" ("+c+")");c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a&&"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name"))){var b=null;this.fileNode=a;this.pages=[];for(var d=0;d<c.length;d++)null==c[d].getAttribute("id")&&c[d].setAttribute("id",d),a=new DiagramPage(c[d]),
null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages.push(a),null!=urlParams["page-id"]&&a.getId()==urlParams["page-id"]&&(b=a);this.currentPage=null!=b?b:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var p=this.editor.graph.getModel(),n=p.getChildren(p.root),d=0;d<n.length;d++){var t=n[d];p.setVisible(t,a[t.id]||!1)}}catch(A){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,l,p,n,t,m,y,q){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!l),
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var k=this.editor.graph.getModel(),n=k.getChildren(k.root),d=0;d<n.length;d++){var t=n[d];k.setVisible(t,a[t.id]||!1)}}catch(A){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,l,k,n,t,m,y,q){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!l),
f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,e,l,null,null,null,b);this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=this.editor.graph.pageVisible;
-null!=p&&(this.editor.graph.pageVisible=p);var f=this.createDownloadRequest(c,a,e,b,n,l,t,m,y,q);this.editor.graph.pageVisible=d;return f}catch(v){this.handleError(v)}}));else{var k=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var A=this.editor.graph.background;if(n||A==mxConstants.NONE)A=
-null;var D=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(D);this.editor.convertImages(D,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),e)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
-function(a,b,d,e,l,p,n,t,m,y){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==p?!1:"xmlpng"!=b);var g="",k="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};y=y?"1":"0";"pdf"==b&&0==p&&(k="&allPages=1");if("xmlpng"==b&&(y="1",b="png",null!=this.pages&&null!=this.currentPage))for(p=0;p<this.pages.length;p++)if(this.pages[p]==this.currentPage){g="&from="+p;break}p=c.background;"png"!=b&&"pdf"!=b||!l?l||
-null!=p&&p!=mxConstants.NONE||(p="#ffffff"):p=mxConstants.NONE;l={globalVars:c.getExportVariables()};m&&(l.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(l.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+k+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+e+"&embedXml="+y+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(l))+(null!=n?"&scale="+
+null!=k&&(this.editor.graph.pageVisible=k);var f=this.createDownloadRequest(c,a,e,b,n,l,t,m,y,q);this.editor.graph.pageVisible=d;return f}catch(v){this.handleError(v)}}));else{var p=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var A=this.editor.graph.background;if(n||A==mxConstants.NONE)A=
+null;var D=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(D);this.editor.convertImages(D,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),e)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
+function(a,b,d,e,l,k,n,t,m,y){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==k?!1:"xmlpng"!=b);var g="",p="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};y=y?"1":"0";"pdf"==b&&0==k&&(p="&allPages=1");if("xmlpng"==b&&(y="1",b="png",null!=this.pages&&null!=this.currentPage))for(k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){g="&from="+k;break}k=c.background;"png"!=b&&"pdf"!=b||!l?l||
+null!=k&&k!=mxConstants.NONE||(k="#ffffff"):k=mxConstants.NONE;l={globalVars:c.getExportVariables()};m&&(l.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(l.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+p+"&bg="+(null!=k?k:mxConstants.NONE)+"&base64="+e+"&embedXml="+y+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(l))+(null!=n?"&scale="+
n:"")+(null!=t?"&border="+t:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,
mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),l()):this.handleError({message:mxResources.get("error")+
" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||e.warningImage,
-a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,p=e.getModel();p.beginUpdate();var n=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var t=p.getCell(a.getAttribute("id"));if(null!=t){try{var m=a.getAttribute("value");if(null!=m){var y=mxUtils.parseXml(m).documentElement;
-if(null!=y)if("1"==y.getAttribute("replace-value"))p.setValue(t,y);else for(var q=y.attributes,x=0;x<q.length;x++)e.setAttributeForCell(t,q[x].nodeName,0<q[x].nodeValue.length?q[x].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+t.id+": "+O)}try{var F=a.getAttribute("style");null!=F&&e.model.setStyle(t,F)}catch(O){null!=window.console&&console.log("Error in style for "+t.id+": "+O)}try{var H=a.getAttribute("icon");if(null!=H){var L=0<H.length?JSON.parse(H):null;null!=
+a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,k=e.getModel();k.beginUpdate();var n=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var t=k.getCell(a.getAttribute("id"));if(null!=t){try{var m=a.getAttribute("value");if(null!=m){var y=mxUtils.parseXml(m).documentElement;
+if(null!=y)if("1"==y.getAttribute("replace-value"))k.setValue(t,y);else for(var q=y.attributes,x=0;x<q.length;x++)e.setAttributeForCell(t,q[x].nodeName,0<q[x].nodeValue.length?q[x].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+t.id+": "+O)}try{var F=a.getAttribute("style");null!=F&&e.model.setStyle(t,F)}catch(O){null!=window.console&&console.log("Error in style for "+t.id+": "+O)}try{var H=a.getAttribute("icon");if(null!=H){var L=0<H.length?JSON.parse(H):null;null!=
L&&L.append||e.removeCellOverlays(t);null!=L&&e.addCellOverlay(t,c(L))}}catch(O){null!=window.console&&console.log("Error in icon for "+t.id+": "+O)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),J=e.getCellGeometry(t);if(null!=J){J=J.clone();for(key in G){var D=parseFloat(G[key]);"dx"==key?J.x+=D:"dy"==key?J.y+=D:"dw"==key?J.width+=D:"dh"==key?J.height+=D:J[key]=parseFloat(G[key])}e.model.setGeometry(t,J)}}}catch(O){null!=window.console&&console.log("Error in icon for "+t.id+
-": "+O)}}}else if("model"==a.nodeName){for(var M=a.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(a.firstChild)).decode(M,p)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(n=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
-1);a=a.nextSibling}}finally{p.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),n=e.getMonth()+1,t=e.getDate(),m=e.getHours(),y=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+n+"-"+t+"-"+m+"-"+y+"-"+e));return c=mxResources.get("copyOf",[c])+d};
+": "+O)}}}else if("model"==a.nodeName){for(var M=a.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(a.firstChild)).decode(M,k)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(n=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
+1);a=a.nextSibling}}finally{k.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),n=e.getMonth()+1,t=e.getDate(),m=e.getHours(),y=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+n+"-"+t+"-"+m+"-"+y+"-"+e));return c=mxResources.get("copyOf",[c])+d};
EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=c&&(EditorUi.debug("File.closed",[c]),c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var f=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!b&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();b||this.showSplash()});if(null!=a)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);
a.addListener("contentChanged",this.descriptorChangedListener);a.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();a.isEditable()?a.isModified()?(a.addUnsavedStatus(),null!=a.backupPatch&&a.patch([a.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
@@ -3347,25 +3349,25 @@ label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opene
0,b.eltCount=0,b.nodeCount=0);for(var e=0;e<a.length;e++){this.updatePageRoot(a[e]);var n=a[e].node.cloneNode(!1);n.removeAttribute("name");d.root=a[e].root;var t=f.encode(d);this.editor.graph.saveViewState(a[e].viewState,t,!0);t.removeAttribute("pageWidth");t.removeAttribute("pageHeight");n.appendChild(t);null!=b&&(b.eltCount+=n.getElementsByTagName("*").length,b.nodeCount+=n.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(n,function(a,c,b,d){return!d||"mxGeometry"!=a.nodeName&&
"mxPoint"!=a.nodeName||"x"!=c&&"y"!=c&&"width"!=c&&"height"!=c?d&&"mxCell"==a.nodeName&&"previous"==c?null:b:Math.round(b)},b)<<0}return c};EditorUi.prototype.hashValue=function(a,b,d){var c=0;if(null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute){null!=a.nodeName&&(c^=this.hashValue(a.nodeName,b,d));if(null!=a.attributes){null!=d&&(d.attrCount+=a.attributes.length);for(var f=0;f<a.attributes.length;f++){var e=a.attributes[f].name,
g=null!=b?b(a,e,a.attributes[f].value,!0):a.attributes[f].value;null!=g&&(c^=this.hashValue(e,b,d)+this.hashValue(g,b,d))}}if(null!=a.childNodes)for(f=0;f<a.childNodes.length;f++)c=(c<<5)-c+this.hashValue(a.childNodes[f],b,d)<<0}else if(null!=a&&"function"!==typeof a){a=String(a);b=0;null!=d&&(d.byteCount+=a.length);for(f=0;f<a.length;f++)b=(b<<5)-b+a.charCodeAt(f)<<0;c^=b}return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=
-function(a,b,d,e,l,p,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
+function(a,b,d,e,l,k,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};
EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a,b){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var d=JSON.parse(mxUtils.getTextContent(c.documentElement));
this.libraryLoaded(a,d,c.documentElement.getAttribute("title"),b)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d,e){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=
-null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var n=k.parentNode.previousSibling;e=n.getAttribute("title");
+null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var p=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var n=p.parentNode.previousSibling;e=n.getAttribute("title");
null!=e&&0<e.length&&".scratchpad"!=a.title&&n.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+e);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";m.style.backgroundColor="inherit";n.style.position="relative";var q=document.createElement("img");q.setAttribute("src",Dialog.prototype.closeImage);q.setAttribute("title",mxResources.get("close"));q.setAttribute("valign","absmiddle");q.setAttribute("border","0");q.style.cursor=
"pointer";q.style.margin="0 3px";var x=null;if(".scratchpad"!=a.title||this.closableScratchpad)m.appendChild(q),mxEvent.addListener(q,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=x?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var F=this.editor.graph,H=null,L=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
-k,b,a,a.getMode());mxEvent.consume(c)}),G=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=H&&null!=H.parentNode&&H.parentNode.removeChild(H),H=q.cloneNode(!1),H.setAttribute("src",Editor.spinImage),H.setAttribute("title",mxResources.get("saving")),H.style.cursor="default",H.style.marginRight="2px",H.style.marginTop="-2px",m.insertBefore(H,m.firstChild),n.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=H&&null!=
+p,b,a,a.getMode());mxEvent.consume(c)}),G=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=H&&null!=H.parentNode&&H.parentNode.removeChild(H),H=q.cloneNode(!1),H.setAttribute("src",Editor.spinImage),H.setAttribute("title",mxResources.get("saving")),H.style.cursor="default",H.style.marginRight="2px",H.style.marginTop="-2px",m.insertBefore(H,m.firstChild),n.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=H&&null!=
H.parentNode&&(H.parentNode.removeChild(H),n.style.paddingRight=18*m.childNodes.length+"px")})):null==x&&(x=q.cloneNode(!1),x.setAttribute("src",IMAGE_PATH+"/download.png"),x.setAttribute("title",mxResources.get("save")),m.insertBefore(x,m.firstChild),mxEvent.addListener(x,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==x||a.isModified()||(n.style.paddingRight=18*m.childNodes.length+"px",x.parentNode.removeChild(x),
-x=null)});mxEvent.consume(c)})),n.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=F.cloneCells(mxUtils.sortCells(F.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var l=F.getCellGeometry(a[g]);null!=l&&l.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);G(d);null!=
-f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),D=mxUtils.bind(this,function(a){if(F.isSelectionEmpty())F.getRubberband().isActive()?(F.getRubberband().execute(a),F.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=F.getSelectionCells(),b=F.view.getBounds(c),d=F.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=F.view.translate.x;b.y-=F.view.translate.y;J(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
-function(){},mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler.first&&(F.graphHandler.suspend(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",F.panningManager.stop(),F.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,
-F.panningManager.stop(),F.graphHandler.reset(),F.isMouseDown=!1,F.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.graphHandler.first&&(F.graphHandler.resume(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",F.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
-"copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.cursor="";k.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,l,p,n,t,m,u){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
-new mxGeometry(0,0,p,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,p,n),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,y=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var l=JSON.parse(mxUtils.getTextContent(e.documentElement));
-g(l,k);b=b.concat(l);G(a);this.spinner.stop();x=!0}catch(T){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),l=0;l<p.length;l++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[l])),t=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,t.width,t.height),a)}x=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+x=null)});mxEvent.consume(c)})),n.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=F.cloneCells(mxUtils.sortCells(F.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=F.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}p.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);G(d);null!=
+f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),D=mxUtils.bind(this,function(a){if(F.isSelectionEmpty())F.getRubberband().isActive()?(F.getRubberband().execute(a),F.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=F.getSelectionCells(),b=F.view.getBounds(c),d=F.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=F.view.translate.x;b.y-=F.view.translate.y;J(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(p,
+function(){},mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler.first&&(F.graphHandler.suspend(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="hidden"),p.style.backgroundColor="#f1f3f4",p.style.cursor="copy",F.panningManager.stop(),F.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.panningManager&&null!=F.graphHandler&&(p.style.backgroundColor="",p.style.cursor="default",this.sidebar.showTooltips=!0,
+F.panningManager.stop(),F.graphHandler.reset(),F.isMouseDown=!1,F.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(p,"mouseleave",mxUtils.bind(this,function(a){F.isMouseDown&&null!=F.graphHandler.first&&(F.graphHandler.resume(),null!=F.graphHandler.hint&&(F.graphHandler.hint.style.visibility="visible"),p.style.backgroundColor="",p.style.cursor="",F.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(p,"dragover",mxUtils.bind(this,function(a){p.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
+"copy";p.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(p,"drop",mxUtils.bind(this,function(a){p.style.cursor="";p.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,k,l,n,t,m,u){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
+new mxGeometry(0,0,l,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,l,n),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,y=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));
+g(k,p);b=b.concat(k);G(a);this.spinner.stop();x=!0}catch(T){}else if("mxfile"==e.documentElement.nodeName)try{for(var l=e.documentElement.getElementsByTagName("diagram"),k=0;k<l.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(l[k])),t=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,t.width,t.height),a)}x=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(u,function(a){y(a,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=u?this.parseFile(u,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?y(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):y(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){k.style.cursor="";k.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));q=q.cloneNode(!1);q.setAttribute("src",Editor.editImage);q.setAttribute("title",mxResources.get("edit"));m.insertBefore(q,m.firstChild);mxEvent.addListener(q,"click",L);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==
-k&&L(a)});e=q.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));m.insertBefore(e,m.firstChild);mxEvent.addListener(e,"click",D);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):y(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(p,"dragleave",function(a){p.style.cursor="";p.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));q=q.cloneNode(!1);q.setAttribute("src",Editor.editImage);q.setAttribute("title",mxResources.get("edit"));m.insertBefore(q,m.firstChild);mxEvent.addListener(q,"click",L);mxEvent.addListener(p,"dblclick",function(a){mxEvent.getSource(a)==
+p&&L(a)});e=q.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));m.insertBefore(e,m.firstChild);mxEvent.addListener(e,"click",D);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(a)})),m.insertBefore(e,m.firstChild))}n.appendChild(m);n.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
@@ -3375,95 +3377,95 @@ endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",targetPer
!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,l){a=new ImageDialog(this,a,b,d,e,l);this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=
!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,l){a=new LibraryDialog(this,a,b,d,e,l);this.showDialog(a.container,640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",
mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,
-mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,l,p,n){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
-null!=a.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(H){}if(null!=f||null!=b){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){n=403==
-f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var m=null!=l?null:null!=p?p:window.location.hash;if(null!=m&&("#G"==m.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==m.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
-"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){m="#U"==m.substring(0,2)?m.substring(45,m.lastIndexOf("%26ex")):m.substring(2);this.showError(b,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+m);this.handleError(a,b,d,e,l)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=
+mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,l,k,n){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&
+null!=a.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(H){}if(null!=f||null!=b){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var g=mxResources.get("ok"),p=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),p=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){n=403==
+f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var m=null!=l?null:null!=k?k:window.location.hash;if(null!=m&&("#G"==m.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==m.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&
+"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){m="#U"==m.substring(0,2)?m.substring(45,m.lastIndexOf("%26ex")):m.substring(2);this.showError(b,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+m);this.handleError(a,b,d,e,l)}),p,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=
0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop=
"6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),
!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?n=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?n=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?n=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?n=mxUtils.htmlEntities(mxResources.get("busy")):
-"string"===typeof f&&0<f.length&&(n=mxUtils.htmlEntities(f)))}var u=p=null;null!=f&&null!=f.helpLink&&(p=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,n,g,d,k,null,null,p,u,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,l,p){var c=null!=
-this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,l,null,null,null,null,f);this.showDialog(a.container,340,46+f,!0,p);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");
+"string"===typeof f&&0<f.length&&(n=mxUtils.htmlEntities(f)))}var u=k=null;null!=f&&null!=f.helpLink&&(k=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,n,g,d,p,null,null,k,u,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,l,k){var c=null!=
+this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,l,null,null,null,null,f);this.showDialog(a.container,340,46+f,!0,k);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");
f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+
"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,
-b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight="6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom=
+b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight="6px";if(!e){b.appendChild(g);var p=document.createElement("label");p.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(p,mxResources.get("doNotShowAgain"));b.appendChild(p);f.style.paddingBottom=
"30px";f.appendChild(b)}var n=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){mxEvent.consume(a);n()}));var m=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,
-function(){n()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),n(),mxEvent.consume(a)):m()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(m,3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
+function(){n()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=p?(null!=d&&d(),n(),mxEvent.consume(a)):m()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(m,3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=
function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs","dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,l){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,l);this.saveData(e,
c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height=
-"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,l,p){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=p?p:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),
-null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");p=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
-p=65==(f?parseInt(f[2],10):!1)?!1:p}if(p||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));p?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),c.parentNode.removeChild(c)}catch(A){}}else this.createEchoRequest(a,b,d,e,l).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,l,p){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
-a+(null!=d?"&mime="+d:"")+(null!=l?"&format="+l:"")+(null!=p?"&base64="+p:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var m=1024*n,q=Math.min(m+1024,d),y=Array(q-m),I=0;m<q;++I,++m)y[I]=c[m].charCodeAt(0);e[n]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,l,p,n,m){p=null!=p?p:!1;n=null!=n?
-n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(p);isLocalStorage&&l++;var c=4>=l?2:6<l?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,
-!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,m):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(L){this.handleError(L)}}))}catch(H){this.handleError(H)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,p,n,null,1<l,c,a,d,e);p=this.isServices(l)?l>c?390:270:160;this.showDialog(b.container,400,p,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
+"380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,l,k){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+"."+(null!=k?k:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),
+null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");k=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
+k=65==(f?parseInt(f[2],10):!1)?!1:k}if(k||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));k?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),c.parentNode.removeChild(c)}catch(A){}}else this.createEchoRequest(a,b,d,e,l).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,l,k){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,
+a+(null!=d?"&mime="+d:"")+(null!=l?"&format="+l:"")+(null!=k?"&base64="+k:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var m=1024*n,q=Math.min(m+1024,d),y=Array(q-m),I=0;m<q;++I,++m)y[I]=c[m].charCodeAt(0);e[n]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,l,k,n,m){k=null!=k?k:!1;n=null!=n?
+n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(k);isLocalStorage&&l++;var c=4>=l?2:6<l?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,
+!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,m):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(L){this.handleError(L)}}))}catch(H){this.handleError(H)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<l,c,a,d,e);k=this.isServices(l)?l>c?390:270:160;this.showDialog(b.container,400,k,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=
function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()&&this.isChromelessImageExportEnabled()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,d,e,l){this.isLocalFileSave()?this.saveLocalFile(d,a,e,l,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,l,b,c)}),d,l,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,l,p,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
-c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){p=null!=p?p:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,p,!0,c,d)}catch(H){this.handleError(H)}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(),
-a,p,!0,c,d)}catch(H){this.handleError(H)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,f,e,p,l);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,d,e,l,p){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,l,p,n,m,q,y,I,x){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=I?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,n,m,null,d,null,null,"blank"==
-y?"_blank":"self"==y?"_top":null,null,!0,I,x);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();l&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,q,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(D){this.handleError(D)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,l,p,n){return this.addCheckbox(a,d,e,l,p,n,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,d,e,l,p,n,m){p=null!=p?p:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();c.id=n;null!=m&&c.setAttribute("name",m);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");p&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",n),a.appendChild(d),l||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
-function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));f.appendChild(d);d=document.createElement("option");
-d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");f.appendChild(d);a.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===f.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
-Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();n.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,l,p,n){n=null!=n?n:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=a&&n.push("target="+a),null!=b&&b!=mxConstants.NONE&&n.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),p&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(a,b,d,e,l,p,n,m,q,y){q=this.createUrlParameters(a,
-b,d,e,l,p,q);a=this.getCurrentFile();b=!0;null!=n?d="#U"+encodeURIComponent(n):(a=this.getCurrentFile(),m||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(q.push("open="+d.substring(1)),d="");return(e&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,l,p,n,m,q,y,I){this.getBasenames();var c={};""!=l&&l!=mxConstants.NONE&&(c.highlight=l);"auto"!==e&&(c.target=e);q||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),
-c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(q&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
+arguments)};EditorUi.prototype.saveData=function(a,b,d,e,l){this.isLocalFileSave()?this.saveLocalFile(d,a,e,l,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,l,b,c)}),d,l,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,l,k,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
+c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){k=null!=k?k:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,k,!0,c,d)}catch(H){this.handleError(H)}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(),
+a,k,!0,c,d)}catch(H){this.handleError(H)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,f,e,k,l);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
+EditorUi.prototype.exportFile=function(a,b,d,e,l,k){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,l,k,n,m,q,y,I,x){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=I?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,n,m,null,d,null,null,"blank"==
+y?"_blank":"self"==y?"_top":null,null,!0,I,x);e&&this.editor.graph.addSvgShadow(g);var p=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();l&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,q,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",c,"image/svg+xml"):
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);k?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(D){this.handleError(D)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,l,k,n){return this.addCheckbox(a,d,e,l,k,n,!0,b)};EditorUi.prototype.addCheckbox=function(a,
+b,d,e,l,k,n,m){k=null!=k?k:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();c.id=n;null!=m&&c.setAttribute("name",m);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");k&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",n),a.appendChild(d),l||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
+function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");
+d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
+b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=f&&f!=mxConstants.NONE?"border:1px solid black;background-color:"+f:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
+Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");
+e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var f="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();n.style.padding=
+mxClient.IS_FF?"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,l,k,n){n=null!=n?n:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
+"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=a&&n.push("target="+a),null!=b&&b!=mxConstants.NONE&&n.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),k&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(a,b,d,e,l,k,n,m,q,y){q=this.createUrlParameters(a,
+b,d,e,l,k,q);a=this.getCurrentFile();b=!0;null!=n?d="#U"+encodeURIComponent(n):(a=this.getCurrentFile(),m||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(q.push("open="+d.substring(1)),d="");return(e&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,l,k,n,m,q,y,I){this.getBasenames();var c={};""!=l&&l!=mxConstants.NONE&&(c.highlight=l);"auto"!==e&&(c.target=e);q||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),
+c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(q&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(k?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
encodeURIComponent(a):"";I(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"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(a,b,d,e){var c=document.createElement("div");c.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";c.appendChild(f);var g=document.createElement("div");g.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");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),g.appendChild(n),
-mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var q=this.addLinkSection(c),x=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var F=document.createElement("input");F.setAttribute("type","text");F.style.marginRight="16px";F.style.width="60px";F.style.marginLeft="4px";F.style.marginRight="12px";F.value=
+mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";p.setAttribute("value","url");p.setAttribute("type","radio");p.setAttribute("name","type-embedhtmldialog");f=p.cloneNode(!0);f.setAttribute("value",
+"copy");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(p);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),g.appendChild(n),
+mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&p.setAttribute("disabled","disabled");c.appendChild(g);var q=this.addLinkSection(c),x=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var F=document.createElement("input");F.setAttribute("type","text");F.style.marginRight="16px";F.style.width="60px";F.style.marginLeft="4px";F.style.marginRight="12px";F.value=
"100%";c.appendChild(F);var H=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(c,mxResources.get("allPages"),g,!g),G=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),D=this.addEditButton(c,J),M=D.getEditInput();M.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&J.checked?D.getEditSelect().removeAttribute("disabled"):
-D.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,x.checked,F.value,q.getTarget(),q.getColor(),H.checked,L.checked,G.checked,J.checked,D.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,l,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var n=document.createElement("div");
-n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));k.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));n.style.marginTop="12px";n.className="geBtn";k.appendChild(n);c.appendChild(k);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));k.appendChild(n);mxEvent.addListener(n,"click",
+D.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(p.checked?d:null,x.checked,F.value,q.getTarget(),q.getColor(),H.checked,L.checked,G.checked,J.checked,D.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,l,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
+"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var n=document.createElement("div");
+n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));p.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));n.style.marginTop="12px";n.className="geBtn";p.appendChild(n);c.appendChild(p);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));p.appendChild(n);mxEvent.addListener(n,"click",
mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"),m.setAttribute("type","text"),
-m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var H=this.addLinkSection(c,p);d=null!=this.pages&&1<this.pages.length;var L=null;if(null==g||g.constructor!=window.DriveFile||
-b)L=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var G=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!p),J=this.addEditButton(c,G),D=J.getEditInput();p&&(D.style.marginLeft=G.style.marginLeft,G.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=D.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(G,"change",function(){G.checked?(M.removeAttribute("disabled"),D.removeAttribute("disabled")):
+m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var H=this.addLinkSection(c,k);d=null!=this.pages&&1<this.pages.length;var L=null;if(null==g||g.constructor!=window.DriveFile||
+b)L=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var G=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!k),J=this.addEditButton(c,G),D=J.getEditInput();k&&(D.style.marginLeft=G.style.marginLeft,G.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=D.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(G,"change",function(){G.checked?(M.removeAttribute("disabled"),D.removeAttribute("disabled")):
(M.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&G.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){l(H.getTarget(),H.getColor(),null==L?!0:L.checked,G.checked,J.getLink(),M.checked,null!=m?m.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)):H.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,l){var c=document.createElement("div");c.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:"+(l?"10":"4")+"px";c.appendChild(f);if(l){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var n=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-m=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,x=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=x&&(x.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!n.checked,null!=m?m.checked:!1,null!=x?x.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(l?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,d,e,l,p,n,m,q){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==m?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
+"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c)}var n=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
+m=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,x=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=x&&(x.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(p.value)||0;d(!n.checked,null!=m?m.checked:!1,null!=x?x.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(l?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+function(a,b,d,e,l,k,n,m,q){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==m?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(p);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,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";c.appendChild(u);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),J=document.createElement("input");J.style.marginTop="16px";J.style.marginRight="8px";J.style.marginLeft=
-"24px";J.setAttribute("disabled","disabled");J.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[k]));M.setAttribute("value",a[k]);D.appendChild(M)}q?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(D),mxUtils.br(c),g+=26,mxEvent.addListener(D,
-"change",function(){"selectionOnly"==D.value&&(A.checked=!0)})):p&&(c.appendChild(J),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?q&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(D.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(A,
+"24px";J.setAttribute("disabled","disabled");J.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(p=0;p<a.length;p++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[p]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[p]));M.setAttribute("value",a[p]);D.appendChild(M)}q?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(D),mxUtils.br(c),g+=26,mxEvent.addListener(D,
+"change",function(){"selectionOnly"==D.value&&(A.checked=!0)})):k&&(c.appendChild(J),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?q&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(D.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(A,
"change",function(){D.value=A.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=m),U=null;Editor.isDarkMode()&&(U=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var N=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||v.setAttribute("disabled","disabled");
b&&(c.appendChild(v),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==m||"jpeg"==m)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var B=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=m);B.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");
b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==m&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=t.value;l(t.value,O.checked,!A.checked,N.checked,B.checked,v.checked,u.value,J.checked,!1,E.value,null!=C?C.checked:null,null!=U?U.checked:null,D.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,l){var c=document.createElement("div");
-c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),x=this.addCheckbox(c,mxResources.get("lightbox"),!0),q=this.addEditButton(c,x),H=q.getEditInput(),L=1<f.model.getChildCount(f.model.getRoot()),
+c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var p=this.addCheckbox(c,mxResources.get("fit"),!0),n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),x=this.addCheckbox(c,mxResources.get("lightbox"),!0),q=this.addEditButton(c,x),H=q.getEditInput(),L=1<f.model.getChildCount(f.model.getRoot()),
G=this.addCheckbox(c,mxResources.get("layers"),L,!L);G.style.marginLeft=H.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(x,"change",function(){x.checked?(L&&G.removeAttribute("disabled"),H.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&x.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
-function(){a(k.checked,n.checked,m.checked,x.checked,q.getLink(),G.checked)}),null,mxResources.get("embed"),l);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,l,p,n,m){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var m="";d&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+m+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
-299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,l,p,n){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
-c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var m=" ",u="";e&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(p?"&layers=1":
+function(){a(p.checked,n.checked,m.checked,x.checked,q.getLink(),G.checked)}),null,mxResources.get("embed"),l);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,l,k,n,m){function c(c){var b=" ",p="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(l?"&edit=_blank":"")+(k?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");a&&(p+="max-width:100%;");var m="";d&&(m=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+m+(""!=p?' style="'+p+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
+this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";d&&(p="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+p+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
+299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,l,k,n){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var p=f[g].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
+c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var m=" ",u="";e&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(k?"&layers=1":
"")+"');}})(this);\"",u+="cursor:pointer;");a&&(u+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=u?' style="'+u+'"':"")+m+"/>")}))}else u="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+l),u+="max-width:100%;max-height:"+l+"px;",c.removeAttribute("height")),""!=u&&c.setAttribute("style",u),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
+EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(l?"&edit=_blank":"")+(k?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+l),u+="max-width:100%;max-height:"+l+"px;",c.removeAttribute("height")),""!=u&&c.setAttribute("style",u),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
-a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(p){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
+a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(k){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(b=d))}return{scale:c,border:b}};EditorUi.prototype.getEmbeddedPng=function(a,b,d,e,l){try{var c=this.editor.graph,f=null!=c.themes&&"darkTheme"==c.defaultThemeName,g=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
-!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),k=c.getGlobalVariable,n=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?n.getName():"pagenumber"==a?1:k.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(n.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
-"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(F){null!=b&&b(F)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,l)}catch(I){null!=b&&b(I)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,l,p,n,m,q,y,I,x,F){m=null!=m?m:!0;n=null!=q?q:b.background;n==mxConstants.NONE&&(n=null);p=b.getSvg(n,y,I,null,null,p,null,null,null,b.shadowVisible||
-x,null,F);(b.shadowVisible||x)&&b.addSvgShadow(p);null!=a&&p.setAttribute("content",a);null!=d&&p.setAttribute("resource",d);if(null!=l)this.embedFonts(p,mxUtils.bind(this,function(a){m?this.editor.convertImages(a,mxUtils.bind(this,function(a){l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(p)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(k){b(a)}}))}catch(g){b(a)}}))};
-EditorUi.prototype.exportImage=function(a,b,d,e,l,p,n,m,q,y,I,x,F){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,l?this.getFileData(!0,null,null,null,d,m):null,q,null==this.pages||0==this.pages.length,I)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,p,n,y,x,F)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,l,p,n){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var k=this.editor.extractGraphModel(g.documentElement,
-null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length&&!p){if(k=Editor.parseDiagramNode(m[0]),null!=this.currentPage&&(a[m[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var u=m[0].getAttribute("name");null!=u&&""!=u&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,u))}}else if(0<
-m.length){p=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[m[0].getAttribute("id")]=this.pages[0].getId(),k=Editor.parseDiagramNode(m[0]),e=!1,q=1);for(;q<m.length;q++){var L=m[q].getAttribute("id");m[q].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(m[q]));a[L]=m[q].getAttribute("id");var J=this.pages.length;null==G.getName()&&G.setName(mxResources.get("pageWithNumber",[J+1]));f.model.execute(new ChangePage(this,G,G,J,!0));p.push(G)}this.updatePageLinks(a,
-p)}}if(null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q]);n&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(D){if(l)throw D;this.handleError(D)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
+!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),p=c.getGlobalVariable,n=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?n.getName():"pagenumber"==a?1:p.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(n.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
+"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(F){null!=b&&b(F)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,l)}catch(I){null!=b&&b(I)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,l,k,n,m,q,y,I,x,F){m=null!=m?m:!0;n=null!=q?q:b.background;n==mxConstants.NONE&&(n=null);k=b.getSvg(n,y,I,null,null,k,null,null,null,b.shadowVisible||
+x,null,F);(b.shadowVisible||x)&&b.addSvgShadow(k);null!=a&&k.setAttribute("content",a);null!=d&&k.setAttribute("resource",d);if(null!=l)this.embedFonts(k,mxUtils.bind(this,function(a){m?this.editor.convertImages(a,mxUtils.bind(this,function(a){l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):l((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(k)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(p){b(a)}}))}catch(g){b(a)}}))};
+EditorUi.prototype.exportImage=function(a,b,d,e,l,k,n,m,q,y,I,x,F){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,l?this.getFileData(!0,null,null,null,d,m):null,q,null==this.pages||0==this.pages.length,I)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,k,n,y,x,F)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,l,k,n){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var p=this.editor.extractGraphModel(g.documentElement,
+null!=this.pages);if(null!=p&&"mxfile"==p.nodeName&&null!=this.pages){var m=p.getElementsByTagName("diagram");if(1==m.length&&!k){if(p=Editor.parseDiagramNode(m[0]),null!=this.currentPage&&(a[m[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var u=m[0].getAttribute("name");null!=u&&""!=u&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,u))}}else if(0<
+m.length){k=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[m[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(m[0]),e=!1,q=1);for(;q<m.length;q++){var L=m[q].getAttribute("id");m[q].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(m[q]));a[L]=m[q].getAttribute("id");var J=this.pages.length;null==G.getName()&&G.setName(mxResources.get("pageWithNumber",[J+1]));f.model.execute(new ChangePage(this,G,G,J,!0));k.push(G)}this.updatePageLinks(a,
+k)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(c=f.importGraphModel(p,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q]);n&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(D){if(l)throw D;this.handleError(D)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),n=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",this.updatePageLink(a,e)),n=!0);n&&d.labelChanged(b,c.innerHTML)}for(m=0;m<d.model.getChildCount(b);m++)this.updatePageLinksForCell(a,d.model.getChildAt(b,m))};EditorUi.prototype.updatePageLink=
function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];if(null!=f.open&&"data:page/id,"==f.open.substring(0,13)){var n=f.open.substring(f.open.indexOf(",")+1),c=a[n];null!=c?f.open="data:page/id,"+c:null==this.getPageById(n)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(t){}return b};
EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e,l){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(e);try{var f="UNKNOWN-VISIO",g=e.lastIndexOf(".");if(0<=g&&g<e.length)f=e.substring(g+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=
@@ -3478,42 +3480,42 @@ a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(
"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(a,b,d,e){function c(a,c,b){c1=a>>2;c2=(a&3)<<4|c>>4;c3=(c&15)<<2|b>>6;c4=b&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+
a);a-=26;return 0==a?"-":1==a?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+c(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+c(a.charCodeAt(i),0,0):r+c(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(a))),!0);"txt"!=b&&(g.responseType="blob");g.onload=function(a){if(200<=this.status&&300>this.status)if("txt"==
b)d(this.response);else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=c.result,k=g.indexOf(","),l=decodeURIComponent(escape(atob(g.substring(k+1)))),p=mxUtils.parseXml(l).getElementsByTagName("svg");0<p.length&&(a=parseFloat(p[0].getAttribute("width")),f=parseFloat(p[0].getAttribute("height")))}d(c.result,a,f)}catch(D){e(D)}};b.src=c.result};c.onerror=function(a){e(a)}}else e(a)};g.onerror=
-function(a){e(a)};g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,l,p,n,m){p=null!=p?p:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,p,!0,m)}if("data:image/png;base64,"==
-a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,p,!0,m);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,p,!0,m);if(0<g.length)return g}catch(F){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
+function(a){e(a)};g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,l,k,n,m){k=null!=k?k:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
+" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,k,!0,m)}if("data:image/png;base64,"==
+a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,k,!0,m);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,k,!0,m);if(0<g.length)return g}catch(F){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),
g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,
-b,d,p,null,m);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,p,null,m))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;l=null;c.getModel().beginUpdate();try{l=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==a.charAt(0)&&a.indexOf(">")==
-a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");l.value=a;c.updateCellSize(l);if(0<this.maxTextWidth&&l.geometry.width>this.maxTextWidth){var k=c.getPreferredSizeForCell(l,this.maxTextWidth);l.geometry.width=k.width;l.geometry.height=k.height}Graph.isLink(l.value)&&c.setLinkForCell(l,l.value);l.geometry.width+=c.gridSize;l.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=
+b,d,k,null,m);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,k,null,m))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;l=null;c.getModel().beginUpdate();try{l=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==a.charAt(0)&&a.indexOf(">")==
+a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");l.value=a;c.updateCellSize(l);if(0<this.maxTextWidth&&l.geometry.width>this.maxTextWidth){var p=c.getPreferredSizeForCell(l,this.maxTextWidth);l.geometry.width=p.width;l.geometry.height=p.height}Graph.isLink(l.value)&&c.setLinkForCell(l,l.value);l.geometry.width+=c.gridSize;l.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=
function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&('{"state":"{\\"Properties\\":'==
a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=c}this.importFileInputElt.click()}else{window.openNew=
!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(a,c){StorageFile.listFiles(this,"F",a,c)});window.openBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.getFileContent(this,a,c,b)});window.deleteBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.deleteFile(this,a,c,b)});if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,
function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,
function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,d){var c=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==Object.keys(e.files).length)d();else{var f=0,g,k=!1;e.forEach(function(a,c){var e=c.name.toLowerCase();"diagram/diagram.xml"==e?(k=!0,c.async("string").then(function(a){0==a.indexOf("<mxfile ")?
b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=c))});0<f?g.async("string").then(function(e){!c.isOffline()&&(new XMLHttpRequest).upload&&c.isRemoteFileFormat(e,a.name)?c.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):d())}),a.name):d()}):k||d()}},function(a){d(a)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,l,p,n,m,q,y,I,x){y=null!=y?y:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,y,null,null!=x?mxEvent.isControlDown(x):null);null!=m&&m(c)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=I?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,y,
-null,null!=x?mxEvent.isControlDown(x):null),q=!0)),q||(b=this.editor.graph,I=a.indexOf(";"),0<I&&(a=a.substring(0,I)+a.substring(a.indexOf(",",I+1))),y&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,l,p,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=q&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?
+!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,l,k,n,m,q,y,I,x){y=null!=y?y:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,y,null,null!=x?mxEvent.isControlDown(x):null);null!=m&&m(c)});"image"==b.substring(0,5)?(q=!1,"image/png"==b.substring(0,9)&&(b=I?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,y,
+null,null!=x?mxEvent.isControlDown(x):null),q=!0)),q||(b=this.editor.graph,I=a.indexOf(";"),0<I&&(a=a.substring(0,I)+a.substring(a.indexOf(",",I+1))),y&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,l,k,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=q&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?
(c=!0,this.importVisio(q,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=q?q:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=m&&m(null))}),n)):0==a.indexOf("PK")&&null!=q?(c=!0,this.importZipFile(q,g,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y);m(f)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||
-(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y,null,null!=x?mxEvent.isControlDown(x):null));c||null==m||m(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,l,p,n,m,q,y,I,x,F){e=null!=e?e:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=I||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>k){g=!0;break}var u=mxUtils.bind(this,
-function(){var g=this.editor.graph,k=g.gridSize;l=null!=l?l:mxUtils.bind(this,function(a,b,d,e,f,g,k,l,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,l,p,c,x,F)}catch(ca){return this.handleError(ca),null}});p=null!=p?p:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=a.length,q=t,u=[],D=mxUtils.bind(this,function(a,
-c){u[a]=c;if(0==--q){this.spinner.stop();if(null!=m)m(u);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}p(b)}}),H=0;H<t;H++)mxUtils.bind(this,function(c){var p=a[c];if(null!=p){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(p))if("image/"==p.type.substring(0,6))if("image/svg"==p.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),t=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(t+
+(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y,null,null!=x?mxEvent.isControlDown(x):null));c||null==m||m(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,l,k,n,m,q,y,I,x,F){e=null!=e?e:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var p=I||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>p){g=!0;break}var u=mxUtils.bind(this,
+function(){var g=this.editor.graph,p=g.gridSize;l=null!=l?l:mxUtils.bind(this,function(a,b,d,e,f,g,k,l,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,l,p,c,x,F)}catch(ca){return this.handleError(ca),null}});k=null!=k?k:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=a.length,q=t,u=[],D=mxUtils.bind(this,function(a,
+c){u[a]=c;if(0==--q){this.spinner.stop();if(null!=m)m(u);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}k(b)}}),H=0;H<t;H++)mxUtils.bind(this,function(c){var k=a[c];if(null!=k){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),t=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(t+
1)))),v=mxUtils.parseXml(q),q=v.getElementsByTagName("svg");if(0<q.length){var q=q[0],u=x?null:q.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?D(c,mxUtils.bind(this,function(){try{if(m.substring(0,t+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=f.getAttribute("width"),
-q=f.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox","0 0 "+n+" "+q);else if(isNaN(n)||isNaN(q)){var x=u.split(" ");3<x.length&&(n=parseFloat(x[2]),q=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(f));var y=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,q)),D=l(m,p.type,b+c*k,d+c*k,Math.max(1,Math.round(n*y)),Math.max(1,Math.round(q*
-y)),p.name);if(isNaN(n)||isNaN(q)){var N=new Image;N.onload=mxUtils.bind(this,function(){n=Math.max(1,N.width);q=Math.max(1,N.height);D[0].geometry.width=n;D[0].geometry.height=q;f.setAttribute("viewBox","0 0 "+n+" "+q);m=Editor.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return D}}}catch(ba){}return null})):D(c,mxUtils.bind(this,function(){return l(u,
-"text/xml",b+c*k,d+c*k,0,0,p.name)}))}else D(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==p.type){var N=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;D(c,mxUtils.bind(this,function(){return l(N,"text/xml",b+c*k,d+c*k,B.width,B.height,p.name)}));q=!0}}q||(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(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,n){D(c,mxUtils.bind(this,function(){if(null!=a&&a.length<y){var m=f&&this.isResampleImageSize(p.size,I)?Math.min(1,Math.min(e/g,e/n)):1;return l(a,p.type,b+c*k,d+c*k,Math.round(g*m),Math.round(n*m),p.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),f,e,I,p.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,l(m,p.type,b+c*k,d+c*k,240,160,p.name,function(a){D(c,function(){return a})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?l(null,p.type,b+c*k,d+c*k,240,160,p.name,function(a){D(c,function(){return a})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?m.readAsDataURL(p):m.readAsText(p)}})(H)});if(g){g=
+q=f.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox","0 0 "+n+" "+q);else if(isNaN(n)||isNaN(q)){var x=u.split(" ");3<x.length&&(n=parseFloat(x[2]),q=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(f));var y=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,q)),D=l(m,k.type,b+c*p,d+c*p,Math.max(1,Math.round(n*y)),Math.max(1,Math.round(q*
+y)),k.name);if(isNaN(n)||isNaN(q)){var N=new Image;N.onload=mxUtils.bind(this,function(){n=Math.max(1,N.width);q=Math.max(1,N.height);D[0].geometry.width=n;D[0].geometry.height=q;f.setAttribute("viewBox","0 0 "+n+" "+q);m=Editor.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return D}}}catch(ba){}return null})):D(c,mxUtils.bind(this,function(){return l(u,
+"text/xml",b+c*p,d+c*p,0,0,k.name)}))}else D(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==k.type){var N=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;D(c,mxUtils.bind(this,function(){return l(N,"text/xml",b+c*p,d+c*p,B.width,B.height,k.name)}));q=!0}}q||(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(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,n){D(c,mxUtils.bind(this,function(){if(null!=a&&a.length<y){var m=f&&this.isResampleImageSize(k.size,I)?Math.min(1,Math.min(e/g,e/n)):1;return l(a,k.type,b+c*p,d+c*p,Math.round(g*m),Math.round(n*m),k.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),f,e,I,k.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,l(m,k.type,b+c*p,d+c*p,240,160,k.name,function(a){D(c,function(){return a})},k)});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?l(null,k.type,b+c*p,d+c*p,240,160,k.name,function(a){D(c,function(){return a})},k):"image"==k.type.substring(0,5)||"application/pdf"==k.type?m.readAsDataURL(k):m.readAsText(k)}})(H)});if(g){g=
[];for(t=0;t<a.length;t++)g.push(a[t]);a=g;this.confirmImageResize(function(a){f=a;u()},q)}else u()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(a){e(a,!0)},function(a){e(a,!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,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",
-OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(p){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,l,p,n){l=null!=l?l:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=n?n:b.length,p))try{var g=Math.max(c/l,f/l);if(1<g){var k=Math.round(c/g),m=Math.round(f/
-g),q=document.createElement("canvas");q.width=k;q.height=m;q.getContext("2d").drawImage(a,0,0,k,m);var u=q.toDataURL();if(u.length<b.length){var L=document.createElement("canvas");L.width=k;L.height=m;var G=L.toDataURL();u!==G&&(b=u,c=k,f=m)}}}catch(J){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
+OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(k){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,l,k,n){l=null!=l?l:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=n?n:b.length,k))try{var g=Math.max(c/l,f/l);if(1<g){var p=Math.round(c/g),m=Math.round(f/
+g),q=document.createElement("canvas");q.width=p;q.height=m;q.getContext("2d").drawImage(a,0,0,p,m);var u=q.toDataURL();if(u.length<b.length){var L=document.createElement("canvas");L.width=p;L.height=m;var G=L.toDataURL();u!==G&&(b=u,c=p,f=m)}}}catch(J){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(l){if(null!=d)d(l);else throw l;}};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=g,l.height=k,b.cellsResized([c],[l],!1))}b.setAttributeForCell(c,"plantUmlData",
JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
e,[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=Math.max(l.width,g),l.height=Math.max(l.height,k),b.cellsResized([c],[l],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(D){a.handleError(D)}};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(G){a.handleError(G)}return c};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.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 l=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return l.apply(this,arguments)};
-var p=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};p.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var n=Menus.prototype.addPopupMenuEditItems;
+var k=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};k.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var n=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(b,c,d){a.editor.graph.isSelectionEmpty()?n.apply(this,arguments):a.menus.addMenuItems(b,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var t=b.getExportVariables;b.getExportVariables=function(){var b=t.apply(this,arguments),c=a.getCurrentFile();null!=
c&&(b.filename=c.getTitle());b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return b};var q=b.getGlobalVariable;b.getGlobalVariable=function(b){var c=a.getCurrentFile();return"filename"==b&&null!=c?c.getTitle():"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
"pagecount"==b?null!=a.pages?a.pages.length:1:q.apply(this,arguments)};var y=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))y.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?
@@ -3527,11 +3529,11 @@ document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.edito
"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var x=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:x.apply(this,arguments)}}I=document.getElementById("geInfo");null!=I&&I.parentNode.removeChild(I);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),
F=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=F&&(F.parentNode.removeChild(F),F=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,
-null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(l);var p=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(p=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
-(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(l=mxUtils.getTextContent(c[0]))));var n=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,f,g,!0,p,null,n,mxEvent.isControlDown(a)))});p&&null!=l&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;m()},mxEvent.isControlDown(a)):m()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
+null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(l);var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(n=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
+(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(l=mxUtils.getTextContent(c[0]))));var p=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,f,g,!0,n,null,p,mxEvent.isControlDown(a)))});n&&null!=l&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){p=a;m()},mxEvent.isControlDown(a)):m()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();
-a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var n=
-f[index];if("file"===n.kind){if(a.isEditing())this.importFiles([n.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var m=this.editor.graph.getInsertPoint();this.importFiles([n.getAsFile()],m.x,m.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(A){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
+a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c))try{for(var b=c.clipboardData||c.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var n=
+f[index];if("file"===n.kind){if(a.isEditing())this.importFiles([n.getAsFile()],0,0,this.maxImageSize,function(c,b,d,e,f,g){a.insertImage(c,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var m=this.editor.graph.getInsertPoint();this.importFiles([n.getAsFile()],m.x,m.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(A){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
"&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow=
"hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var e=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||224!=a.keyCode&&(mxClient.IS_MAC||17!=a.keyCode)&&(!mxClient.IS_MAC||91!=a.keyCode&&93!=a.keyCode)||e||(d.style.left=b.container.scrollLeft+10+"px",d.style.top=b.container.scrollTop+10+"px",b.container.appendChild(d),e=!0,d.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!e||224!=c&&17!=
@@ -3543,20 +3545,20 @@ EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof windo
mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){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(a,b){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(a,b,d){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(a,
-c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(A){this.handleError(A)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(k){this.handleError(k)}};
+c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(A){this.handleError(A)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(p){this.handleError(p)}};
EditorUi.prototype.writeImageToClipboard=function(a,b,d,e){var c=this.base64ToBlob(a.substring(a.indexOf(",")+1),"image/png");a=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="'+a+'" width="'+b+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](e)};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));
mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var a=null;if(Editor.enableNativeCipboard){var b=this.editor.graph;b.isSelectionEmpty()||(a=mxUtils.sortCells(b.getExportableCells(b.model.getTopmostCells(b.getSelectionCells()))),b=mxUtils.getXml(b.encodeCells(a)),navigator.clipboard.writeText(b))}return a};EditorUi.prototype.pasteXml=
function(a,b,d,e){var c=this.editor.graph,f=null;c.lastPasteXml==a?c.pasteCounter++:(c.lastPasteXml=a,c.pasteCounter=0);var g=c.pasteCounter*c.gridSize;if(d||this.isCompatibleString(a))f=this.importXml(a,g,g),c.setSelectionCells(f);else if(b&&1==c.getSelectionCount()){g=c.getStartEditingCell(c.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a)&&"image"==c.getCurrentCellStyle(g)[mxConstants.STYLE_SHAPE])c.setCellStyles(mxConstants.STYLE_IMAGE,a,[g]);else{c.model.beginUpdate();try{c.labelChanged(g,
a),Graph.isLink(a)&&c.setLinkForCell(g,a)}finally{c.model.endUpdate()}}c.setSelectionCell(g)}else f=c.getInsertPoint(),c.isMouseInsertPoint()&&(g=0,c.lastPasteXml==a&&0<c.pasteCounter&&c.pasteCounter--),f=this.insertTextAt(a,f.x+g,f.y+g,!0),c.setSelectionCells(f);c.isSelectionEmpty()||(c.scrollCellToVisible(c.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(a,b,d,e){if(!mxEvent.isConsumed(a)){var c=
-b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),k=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var n=decodeURIComponent(g);this.isCompatibleString(n)&&(k=!0,g=n)}k=k?null:a.clipboardData.getData("text/html");null!=k&&0<k.length?(c=this.parseHtmlData(k),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,k))}g=c.getElementsByTagName("span");if(null!=
+b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),n=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var p=decodeURIComponent(g);this.isCompatibleString(p)&&(n=!0,g=p)}n=n?null:a.clipboardData.getData("text/html");null!=n&&0<n.length?(c=this.parseHtmlData(n),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,n))}g=c.getElementsByTagName("span");if(null!=
g&&0<g.length&&"application/vnd.lucid.chart.objects"===g[0].getAttribute("data-lucid-type"))d=g[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){var b=this.editor.graph;b.lastPasteXml==a?b.pasteCounter++:(b.lastPasteXml=a,b.pasteCounter=0);var c=b.pasteCounter*b.gridSize;b.setSelectionCells(this.importXml(a,c,c));b.scrollCellToVisible(b.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{f=
-f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);k=!1;try{var m=f.lastIndexOf("%3E");0<=m&&m<f.length-3&&(f=f.substring(0,m+3))}catch(x){}try{g=c.getElementsByTagName("span"),n=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(n)&&(k=!0,f=n)}catch(x){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,k,a);try{mxEvent.consume(a)}catch(x){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
+f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);n=!1;try{var m=f.lastIndexOf("%3E");0<=m&&m<f.length-3&&(f=f.substring(0,m+3))}catch(x){}try{g=c.getElementsByTagName("span"),p=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(p)&&(n=!0,f=p)}catch(x){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,n,a);try{mxEvent.consume(a)}catch(x){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
0}}catch(x){this.handleError(x)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=
this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);
if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=this.editor.graph.sanitizeHtml(c),d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,
"text/plain")&&(c=d.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(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.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)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var n=document.documentElement;d=(e.clientWidth||n.clientWidth)-3;e=Math.max(e.clientHeight||0,n.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;n=document.createElement("div");
-n.style.zIndex=mxPopupMenu.prototype.zIndex+2;n.style.border="3px dotted rgb(254, 137, 12)";n.style.pointerEvents="none";n.style.position="absolute";n.style.top=b+"px";n.style.left=c+"px";n.style.width=Math.max(0,d-3)+"px";n.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(n):document.body.appendChild(n);return n};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var k=document.documentElement;d=(e.clientWidth||k.clientWidth)-3;e=Math.max(e.clientHeight||0,k.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.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=b+"px";k.style.left=c+"px";k.style.width=Math.max(0,d-3)+"px";k.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,l){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(d,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?c(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
@@ -3569,52 +3571,52 @@ null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.open
(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=
a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=a?"":"hidden",this.ruler.vRuler.container.style.visibility=a?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=a?"":"hidden");a||(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(a,b,d,e){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);if(null==a||0==
-a.length)a=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);if(e)try{var c=this.editor.graph;c.setGridEnabled(!1);c.pageVisible=!1;var f=c.model.cells,g;for(g in f){var k=f[g];null!=k&&null!=k.style&&(k.style+=";sketch=1;"+(-1==k.style.indexOf("fontFamily=")||-1<k.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(A){console.log(A)}this.editor.isChromelessView()?
+a.length)a=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);if(e)try{var c=this.editor.graph;c.setGridEnabled(!1);c.pageVisible=!1;var f=c.model.cells,g;for(g in f){var n=f[g];null!=n&&null!=n.style&&(n.style+=";sketch=1;"+(-1==n.style.indexOf("fontFamily=")||-1<n.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(A){console.log(A)}this.editor.isChromelessView()?
this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=d?d:!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(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,n=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?
-null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,n);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==
+EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,k=mxUtils.bind(this,function(a,b){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 g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==
a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(ua){}return a});if("json"==urlParams.proto){var l=!1;try{g=JSON.parse(g)}catch(P){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):
-g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var n=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?m.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):m.postMessage(JSON.stringify({event:"prompt-cancel",message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(n.container,
-300,80,!0,!1);n.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();n=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):
-null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(P){m.postMessage(JSON.stringify({event:"draft",error:P.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();var t=1==g.enableRecent,q=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&
-!g.templatesOnly&&null!=g.callback){var D=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,b,c){a=a||this.emptyDiagramXml;m.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:b,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=D?D.id:null,t?mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getRecentDiagrams",[c],null,a,b)}):null,
-q?mxUtils.bind(this,function(a,b,c,d){this.remoteInvoke("searchDiagrams",[a,d],null,b,c)}):null,mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getFileContent",[a.url],null,b,c)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(A.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}n=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=
-b||this.emptyDiagramXml;null!=g.callback?m.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml,g.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",[null],null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",
-[a,null],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){m.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==g.withoutType);this.showDialog(n.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==g.action){var O=
-this.getDiagramTextContent();m.postMessage(JSON.stringify({event:"textContent",data:O,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var U=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,U):
-this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,C=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=N;m.postMessage(JSON.stringify(b),
+g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,
+300,80,!0,!1);m.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):
+null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(P){n.postMessage(JSON.stringify({event:"draft",error:P.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();var t=1==g.enableRecent,q=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&
+!g.templatesOnly&&null!=g.callback){var D=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,b,c){a=a||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:b,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=D?D.id:null,t?mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getRecentDiagrams",[c],null,a,b)}):null,
+q?mxUtils.bind(this,function(a,b,c,d){this.remoteInvoke("searchDiagrams",[a,d],null,b,c)}):null,mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getFileContent",[a.url],null,b,c)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(A.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}m=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=
+b||this.emptyDiagramXml;null!=g.callback?n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml,g.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",[null],null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",
+[a,null],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){n.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==g.withoutType);this.showDialog(m.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();a&&this.actions.get("exit").funct()}));m.init();return}if("textContent"==g.action){var O=
+this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:O,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var U=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,U):
+this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,C=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=N;n.postMessage(JSON.stringify(b),
"*")}),B=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(N)));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);C(a)}),E=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(N),c=!1);if(null!=this.pages&&this.currentPage.getId()!=E){for(var K=v.getGlobalVariable,
-v=this.createTemporaryGraph(v.getStylesheet()),Z,Q=0;Q<this.pages.length;Q++)if(this.pages[Q].getId()==E){Z=this.updatePageRoot(this.pages[Q]);break}null==Z&&(Z=this.currentPage);v.getGlobalVariable=function(a){return"page"==a?Z.getName():"pagenumber"==a?1:K.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(Z.root)}if(null!=g.layerIds){for(var aa=v.model,pa=aa.getChildCells(aa.getRoot()),n={},Q=0;Q<g.layerIds.length;Q++)n[g.layerIds[Q]]=!0;for(Q=0;Q<pa.length;Q++)aa.setVisible(pa[Q],
-n[pa[Q].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){B(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){B(null)}),null,null,g.scale,g.transparent,g.shadow,null,v,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=E?"&pageId="+E:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):"")+(null!=g.scale?"&scale="+g.scale:
+v=this.createTemporaryGraph(v.getStylesheet()),Z,Q=0;Q<this.pages.length;Q++)if(this.pages[Q].getId()==E){Z=this.updatePageRoot(this.pages[Q]);break}null==Z&&(Z=this.currentPage);v.getGlobalVariable=function(a){return"page"==a?Z.getName():"pagenumber"==a?1:K.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(Z.root)}if(null!=g.layerIds){for(var aa=v.model,pa=aa.getChildCells(aa.getRoot()),m={},Q=0;Q<g.layerIds.length;Q++)m[g.layerIds[Q]]=!0;for(Q=0;Q<pa.length;Q++)aa.setVisible(pa[Q],
+m[pa[Q].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){B(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){B(null)}),null,null,g.scale,g.transparent,g.shadow,null,v,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=E?"&pageId="+E:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):"")+(null!=g.scale?"&scale="+g.scale:
"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?C("data:image/png;base64,"+a.getText()):B(null)}),mxUtils.bind(this,function(){B(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);U=this.createLoadMessage("export");U.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();U.xml=mxUtils.getXml(ga);U.data=this.getFileData(null,
-null,!0,null,null,null,ga);U.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),U.data=this.getHtml(N,this.editor.graph),U.xml=mxUtils.getXml(N),U.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);U.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);U.format="svg";var ma=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();U.data=
-Editor.createSvgDataUri(a);m.postMessage(JSON.stringify(U),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(U.xml,this.editor.graph,null,!0,ma,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);var V=this.editor.graph.getSvg(ea,
-g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){ma(mxUtils.getXml(a))})):ma(mxUtils.getXml(a))}))}return}m.postMessage(JSON.stringify(U),"*")}return}if("load"==g.action){l=g.toSketch;d=1==g.autosave;this.hideDialog();null!=
+null,!0,null,null,null,ga);U.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),U.data=this.getHtml(N,this.editor.graph),U.xml=mxUtils.getXml(N),U.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);U.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);U.format="svg";var na=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();U.data=
+Editor.createSvgDataUri(a);n.postMessage(JSON.stringify(U),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(U.xml,this.editor.graph,null,!0,na,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);var V=this.editor.graph.getSvg(ea,
+g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){na(mxUtils.getXml(a))})):na(mxUtils.getXml(a))}))}return}n.postMessage(JSON.stringify(U),"*")}return}if("load"==g.action){l=g.toSketch;d=1==g.autosave;this.hideDialog();null!=
g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
"6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(P){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==
-g.action){var ca=this.getCurrentFile();null!=ca&&(p=k(g.xml),null!=p&&""!=p&&ca.mergeFile(new LocalFile(this,p),function(){m.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){m.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(m):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):m.postMessage(JSON.stringify({error:"unknownMessage",
-data:JSON.stringify(g)}),"*");return}}catch(P){this.handleError(P)}}var na=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g,null,l)}catch(da){this.handleError(da)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=na();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=na();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=
+g.action){var ca=this.getCurrentFile();null!=ca&&(p=k(g.xml),null!=p&&""!=p&&ca.mergeFile(new LocalFile(this,p),function(){n.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){n.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):n.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(g)}),"*");return}}catch(P){this.handleError(P)}}var oa=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g,null,l)}catch(da){this.handleError(da)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=oa();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=oa();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=
d;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
-b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;m.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){T(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),
+b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;n.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){T(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),
k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&T(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){T(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):
-null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),T(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){T(na(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var m=window.opener||window.parent,n="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";m.postMessage(n,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(a,b,c){t.apply(this,arguments);
-m.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?
+null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),T(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){T(oa(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");if("json"==urlParams.proto){var m=this.editor.graph.openLink;this.editor.graph.openLink=function(a,b,c){m.apply(this,arguments);
+n.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?
mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,e);b.setAttribute("title",e);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),
mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,d),b.setAttribute("title",d),b.className="geBigButton geBigStandardButton",
b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.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(a){this.importCsv(a)}),
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(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var n in a[e].config)f[n]=a[e].config[n];this.executeLayout(function(){f.execute(c.getDefaultParent(),
-0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var n={},m=null,q=null,y=null,I=null,x=null,F=null,H=null,L=null,G=null,J="",D="auto",M="auto",O=null,U=null,N=40,v=40,C=100,B=0,E=this.editor.graph;E.getGraphBounds();for(var K=function(){null!=b?b(ta):(E.setSelectionCells(ta),E.scrollCellToVisible(E.getSelectionCell()))},Z=E.getFreeInsertPoint(),Q=Z.x,aa=Z.y,Z=aa,pa=null,ga="auto",G=null,ea=[],ma=null,V=null,ca=
-0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var T=mxUtils.trim(a.substring(1,na)),P=mxUtils.trim(a.substring(na+1));"label"==T?pa=E.sanitizeHtml(P):"labelname"==T&&0<P.length&&"-"!=P?x=P:"labels"==T&&0<P.length&&"-"!=P?F=JSON.parse(P):"style"==T?q=P:"parentstyle"==T?H=P:"stylename"==T&&0<P.length&&"-"!=P?I=P:
-"styles"==T&&0<P.length&&"-"!=P?y=JSON.parse(P):"vars"==T&&0<P.length&&"-"!=P?m=JSON.parse(P):"identity"==T&&0<P.length&&"-"!=P?L=P:"parent"==T&&0<P.length&&"-"!=P?G=P:"namespace"==T&&0<P.length&&"-"!=P?J=P:"width"==T?D=P:"height"==T?M=P:"left"==T&&0<P.length?O=P:"top"==T&&0<P.length?U=P:"ignore"==T?V=P.split(","):"connect"==T?ea.push(JSON.parse(P)):"link"==T?ma=P:"padding"==T?B=parseFloat(P):"edgespacing"==T?N=parseFloat(P):"nodespacing"==T?v=parseFloat(P):"levelspacing"==T?C=parseFloat(P):"layout"==
-T&&(ga=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ua=this.editor.csvToArray(c[ca]),T=na=null,P=[],W=0;W<ua.length;W++)L==ua[W]&&(na=W),G==ua[W]&&(T=W),P.push(mxUtils.trim(ua[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+P[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==n[ea[da].to]&&(n[ea[da].to]={});L=[];for(W=ca+1;W<c.length;W++){var ia=this.editor.csvToArray(c[W]);if(null==ia){var qa=40<c[W].length?c[W].substring(0,
-40)+"...":c[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ia.length&&L.push(ia)}E.model.beginUpdate();try{for(W=0;W<L.length;W++){var ia=L[W],R=null,ka=null!=na?J+ia[na]:null;null!=ka&&(R=E.model.getCell(ka));var c=null!=R,ba=new mxCell(pa,new mxGeometry(Q,Z,0,0),q||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=ka;for(var ja=0;ja<ia.length;ja++)E.setAttributeForCell(ba,P[ja],ia[ja]);if(null!=x&&null!=F){var X=F[ba.getAttribute(x)];null!=X&&E.labelChanged(ba,X)}if(null!=
-I&&null!=y){var la=y[ba.getAttribute(I)];null!=la&&(ba.style=la)}E.setAttributeForCell(ba,"placeholders","1");ba.style=E.replacePlaceholders(ba,ba.style,m);c&&(E.model.setGeometry(R,ba.geometry),E.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)n[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=ma&&"link"!=ma&&(E.setLinkForCell(R,R.getAttribute(ma)),E.setAttributeForCell(R,ma,null));E.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var sa=
+0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var n={},m=null,q=null,y=null,I=null,x=null,F=null,H=null,L=null,G=null,J="",D="auto",M="auto",O=null,U=null,N=40,v=40,C=100,B=0,E=this.editor.graph;E.getGraphBounds();for(var K=function(){null!=b?b(ta):(E.setSelectionCells(ta),E.scrollCellToVisible(E.getSelectionCell()))},Z=E.getFreeInsertPoint(),Q=Z.x,aa=Z.y,Z=aa,pa=null,ga="auto",G=null,ea=[],na=null,V=null,ca=
+0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var oa=a.indexOf(":");if(0<oa){var T=mxUtils.trim(a.substring(1,oa)),P=mxUtils.trim(a.substring(oa+1));"label"==T?pa=E.sanitizeHtml(P):"labelname"==T&&0<P.length&&"-"!=P?x=P:"labels"==T&&0<P.length&&"-"!=P?F=JSON.parse(P):"style"==T?q=P:"parentstyle"==T?H=P:"stylename"==T&&0<P.length&&"-"!=P?I=P:
+"styles"==T&&0<P.length&&"-"!=P?y=JSON.parse(P):"vars"==T&&0<P.length&&"-"!=P?m=JSON.parse(P):"identity"==T&&0<P.length&&"-"!=P?L=P:"parent"==T&&0<P.length&&"-"!=P?G=P:"namespace"==T&&0<P.length&&"-"!=P?J=P:"width"==T?D=P:"height"==T?M=P:"left"==T&&0<P.length?O=P:"top"==T&&0<P.length?U=P:"ignore"==T?V=P.split(","):"connect"==T?ea.push(JSON.parse(P)):"link"==T?na=P:"padding"==T?B=parseFloat(P):"edgespacing"==T?N=parseFloat(P):"nodespacing"==T?v=parseFloat(P):"levelspacing"==T?C=parseFloat(P):"layout"==
+T&&(ga=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ua=this.editor.csvToArray(c[ca]),T=oa=null,P=[],W=0;W<ua.length;W++)L==ua[W]&&(oa=W),G==ua[W]&&(T=W),P.push(mxUtils.trim(ua[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+P[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==n[ea[da].to]&&(n[ea[da].to]={});L=[];for(W=ca+1;W<c.length;W++){var ja=this.editor.csvToArray(c[W]);if(null==ja){var qa=40<c[W].length?c[W].substring(0,
+40)+"...":c[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&L.push(ja)}E.model.beginUpdate();try{for(W=0;W<L.length;W++){var ja=L[W],R=null,la=null!=oa?J+ja[oa]:null;null!=la&&(R=E.model.getCell(la));var c=null!=R,ba=new mxCell(pa,new mxGeometry(Q,Z,0,0),q||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=la;for(var ka=0;ka<ja.length;ka++)E.setAttributeForCell(ba,P[ka],ja[ka]);if(null!=x&&null!=F){var X=F[ba.getAttribute(x)];null!=X&&E.labelChanged(ba,X)}if(null!=
+I&&null!=y){var ma=y[ba.getAttribute(I)];null!=ma&&(ba.style=ma)}E.setAttributeForCell(ba,"placeholders","1");ba.style=E.replacePlaceholders(ba,ba.style,m);c&&(E.model.setGeometry(R,ba.geometry),E.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)n[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=na&&"link"!=na&&(E.setLinkForCell(R,R.getAttribute(na)),E.setAttributeForCell(R,na,null));E.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var sa=
this.editor.graph.getPreferredSizeForCell(R);R.vertex&&(null!=O&&null!=R.getAttribute(O)&&(R.geometry.x=Q+parseFloat(R.getAttribute(O))),null!=U&&null!=R.getAttribute(U)&&(R.geometry.y=aa+parseFloat(R.getAttribute(U))),"@"==D.charAt(0)&&null!=R.getAttribute(D.substring(1))?R.geometry.width=parseFloat(R.getAttribute(D.substring(1))):R.geometry.width="auto"==D?sa.width+B:parseFloat(D),"@"==M.charAt(0)&&null!=R.getAttribute(M.substring(1))?R.geometry.height=parseFloat(R.getAttribute(M.substring(1))):
-R.geometry.height="auto"==M?sa.height+B:parseFloat(M),Z+=R.geometry.height+v);c?(null==f[ka]&&(f[ka]=[]),f[ka].push(R)):(G=null!=T?E.model.getCell(J+ia[T]):null,d.push(R),null!=G?(G.style=E.replacePlaceholders(G,H,m),E.addCell(R,G)):e.push(E.addCell(R)))}for(var va=e.slice(),ta=e.slice(),da=0;da<ea.length;da++)for(var ya=ea[da],W=0;W<d.length;W++){var R=d[W],za=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
+R.geometry.height="auto"==M?sa.height+B:parseFloat(M),Z+=R.geometry.height+v);c?(null==f[la]&&(f[la]=[]),f[la].push(R)):(G=null!=T?E.model.getCell(J+ja[T]):null,d.push(R),null!=G?(G.style=E.replacePlaceholders(G,H,m),E.addCell(R,G)):e.push(E.addCell(R)))}for(var va=e.slice(),ta=e.slice(),da=0;da<ea.length;da++)for(var ya=ea[da],W=0;W<d.length;W++){var R=d[W],za=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
e=0;e<d.length;e++){var f=n[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=E.replacePlaceholders(b,c.sourcelabel,m)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+E.replacePlaceholders(f,c.targetlabel,m));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?E.replacePlaceholders(k,c.style,m):E.createCurrentEdgeStyle(),g=E.insertEdge(null,null,g||"",c.invert?
f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var l=c.labels[k],p=new mxCell(l.label||k,new mxGeometry(null!=l.x?l.x:0,null!=l.y?l.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=l.placeholders&&(p.value=E.replacePlaceholders("target"==l.placeholders==!c.invert?f:a,p.value,m));if(null!=l.dx||null!=l.dy)p.geometry.offset=new mxPoint(null!=l.dx?l.dx:0,null!=l.dy?l.dy:0);g.insert(p)}ta.push(g);mxUtils.remove(c.invert?a:f,va)}}});za(R,R,
-ya);if(null!=f[R.id])for(ja=0;ja<f[R.id].length;ja++)za(R,f[R.id][ja],ya)}if(null!=V)for(W=0;W<d.length;W++)for(R=d[W],ja=0;ja<V.length;ja++)E.setAttributeForCell(R,mxUtils.trim(V[ja]),null);if(0<e.length){var S=new mxParallelEdgeLayout(E);S.spacing=N;S.checkOverlap=!0;var Aa=function(){0<S.spacing&&S.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==D&&(b.width=Math.round(E.snap(b.width)));"auto"==
-M&&(b.height=Math.round(E.snap(b.height)))}};if("["==ga.charAt(0)){var ha=K;E.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ha()});K=null}else if("circle"==ga){var Ba=new mxCircleLayout(E);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(E.getDefaultParent());Aa()},!0,K);K=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==
+ya);if(null!=f[R.id])for(ka=0;ka<f[R.id].length;ka++)za(R,f[R.id][ka],ya)}if(null!=V)for(W=0;W<d.length;W++)for(R=d[W],ka=0;ka<V.length;ka++)E.setAttributeForCell(R,mxUtils.trim(V[ka]),null);if(0<e.length){var S=new mxParallelEdgeLayout(E);S.spacing=N;S.checkOverlap=!0;var Aa=function(){0<S.spacing&&S.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==D&&(b.width=Math.round(E.snap(b.width)));"auto"==
+M&&(b.height=Math.round(E.snap(b.height)))}};if("["==ga.charAt(0)){var ia=K;E.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ia()});K=null}else if("circle"==ga){var Ba=new mxCircleLayout(E);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(E.getDefaultParent());Aa()},!0,K);K=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==
ga&&ta.length==2*e.length-1&&1==va.length){E.view.validate();var Ea=new mxCompactTreeLayout(E,"horizontaltree"==ga);Ea.levelDistance=v;Ea.edgeRouting=!1;Ea.resetEdges=!1;this.executeLayout(function(){Ea.execute(E.getDefaultParent(),0<va.length?va[0]:null)},!0,K);K=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==va.length){E.view.validate();var Ca=new mxHierarchicalLayout(E,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);Ca.intraCellSpacing=v;Ca.parallelEdgeSpacing=
N;Ca.interRankCellSpacing=C;Ca.disableEdgeStyle=!1;this.executeLayout(function(){Ca.execute(E.getDefaultParent(),ta);E.moveCells(ta,Q,aa)},!0,K);K=null}else if("organic"==ga||"auto"==ga&&ta.length>e.length){E.view.validate();var xa=new mxFastOrganicLayout(E);xa.forceConstant=3*v;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ga=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ga.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(E.getDefaultParent());Aa()},
!0,K);K=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=K&&K()}}catch(Y){this.handleError(Y)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
@@ -3627,17 +3629,17 @@ null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMen
e.length||a.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(d);this.actions.get("connectionArrows").setEnabled(d);this.actions.get("connectionPoints").setEnabled(d);this.actions.get("copyStyle").setEnabled(d&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(d&&0<e.length);this.actions.get("editGeometry").setEnabled(0<e.length&&a.getModel().isVertex(e[0]));this.actions.get("createShape").setEnabled(d);this.actions.get("createRevision").setEnabled(d);this.actions.get("moveToFolder").setEnabled(null!=
b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled(d&&(null==b||!b.isRestricted()));this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=
b&&b.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=b);this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());b=this.actions.get("findReplace");b.setEnabled("hidden"!=this.diagramContainer.style.visibility);b.label=mxResources.get("find")+(a.isEnabled()?"/"+mxResources.get("replace"):"")+"...";a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(d&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var q=EditorUi.prototype.destroy;
-EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,l,n,m,q){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,
-l,n)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*l/c.view.scale),p=Math.floor(g.height*l/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&k*p<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};q&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+
-(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<m?"&dpi="+m:"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(l,null==e||"none"==e,!0,!1,!1,n,!0,!1,null,q,m):a.exportImage(l,!1,!0,!1,!1,n,!0,!1,"jpeg",q);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,l,k,n,m){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,
+l,k)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),p=Math.floor(g.width*l/c.view.scale),q=Math.floor(g.height*l/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&p*q<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};m&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+
+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+p+"&h="+q+"&border="+k+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(l,null==e||"none"==e,!0,!1,!1,k,!0,!1,null,m,n):a.exportImage(l,!1,!0,!1,!1,k,!0,!1,"jpeg",m);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=
this.pages)for(var d=0;d<this.pages.length;d++){var e=a;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(a.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,
-mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var n={};try{var m=mxSettings.getCustomLibraries();for(a=0;a<m.length;a++){var q=m[a];if("R"==q.substring(0,1)){var A=JSON.parse(decodeURIComponent(q.substring(1)));n[A[0]]=
-{id:A[0],title:A[1],downloadUrl:A[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];n[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,n[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
-function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==n[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
-null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(H){this.handleError(H,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in n)b[c]||this.closeLibrary(new RemoteLibrary(this,null,n[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
+mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var n=mxSettings.getCustomLibraries();for(a=0;a<n.length;a++){var m=n[a];if("R"==m.substring(0,1)){var q=JSON.parse(decodeURIComponent(m.substring(1)));k[q[0]]=
+{id:q[0],title:q[1],downloadUrl:q[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];k[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,k[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
+function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==k[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
+null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(H){this.handleError(H,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in k)b[c]||this.closeLibrary(new RemoteLibrary(this,null,k[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
340,375,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(a){this.remoteWin=a;for(var b=0;b<this.remoteInvokeQueue.length;b++)a.postMessage(this.remoteInvokeQueue[b],
"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,d,e,l){var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;l({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
-this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),k=mxUtils.bind(this,function(){window.clearTimeout(f);c&&l.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:k});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
+this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),n=mxUtils.bind(this,function(){window.clearTimeout(f);c&&l.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:n});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,n=0;n<e.allowedDomains.length;n++)if(b=="https://"+e.allowedDomains[n]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var m=a.functionArgs;Array.isArray(m)||
(m=[]);if(e.isAsync)m.push(function(){c(Array.prototype.slice.apply(arguments))}),m.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,m);else{var q=this[d].apply(this,m);c([q])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(y){c(null,"Invalid Call: An error occured, "+y.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
@@ -3647,40 +3649,40 @@ size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,
(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,l()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?n(f.resp[0]):k())}}catch(M){console.log(M)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(l){null!=b&&b(l)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,e,l){this.openDatabase(mxUtils.bind(this,function(c){try{l=l||"objects";Array.isArray(l)||(l=
[l],a=[a],b=[b]);var f=c.transaction(l,"readwrite");f.oncomplete=d;f.onerror=e;for(c=0;c<l.length;c++)f.objectStore(l[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(t){null!=e&&e(t)}}),e)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){e=e||"objects";Array.isArray(e)||(e=[e],a=[a]);c=c.transaction(e,"readwrite");c.oncomplete=b;c.onerror=d;for(var f=0;f<e.length;f++)c.objectStore(e[f])["delete"](a[f])}),d)};EditorUi.prototype.getDatabaseItem=
function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){try{e=e||"objects";var f=c.transaction([e],"readonly").objectStore(e).get(a);f.onsuccess=function(){b(f.result)};f.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
-b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(p){null!=b&&b(p)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
+b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(k){null!=b&&b(k)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var a=this.getCurrentFile();return null!=a?a.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(a,b){var c=this.getCurrentFile();null!=c?c.getComments(a,b):a([])};EditorUi.prototype.addComment=function(a,b,d){var c=this.getCurrentFile();null!=c?c.addComment(a,b,d):b(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var a=this.getCurrentFile();return null!=a?
a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=
-c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,l,n,m,q){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
-return this.editor.loadUrl(a,b,d,e,l,n,m,q)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
-return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,l,n,m,q,A,y,I,x,F,H,L,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,l,n,m,q,A,y,I,x,F,H,L,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,l,k,n,m){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(a,b,d,e,l,k,n,m)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,l,k,n,m,q,y,I,x,F,H,L,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,l,k,n,m,q,y,I,x,F,H,L,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(a,b,d,e)};EditorUi.prototype.convertImageToDataUri=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(a,b)};EditorUi.prototype.base64Encode=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(a)};EditorUi.prototype.updateCRC=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(a,b,d,e)};EditorUi.prototype.crc32=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,l){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,d,e,l)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var d=localStorage.key(b),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var l=
"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(l||e)&&a.push(d)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(a,b,e,d,m,n){function q(){for(var a=x.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==x&&b++;F.style.display=0==b?"block":"none"}function c(a,b,c,d){function e(){b.removeChild(k);b.removeChild(l);g.style.display="block";f.style.display="block"}A={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var l=document.createElement("div");l.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),q()):e();A=null});n.className="geCommentEditBtn";l.appendChild(n);var m=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(m.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));m.focus();m.className="geCommentEditBtn gePrimaryBtn";l.appendChild(m);b.insertBefore(l,f);g.style.display="none";f.style.display="none";k.focus()}function f(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
-[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function g(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function k(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function l(a){a.style.border="";a.removeChild(a.busyImg)}function p(b,d,e,n,m){function v(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});L.appendChild(e);d&&(e.style.display="none")}function D(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=N;a(b);return{pdiv:d,replies:c}}function y(d,e,f,m,q){function t(){g(N);b.addReply(u,function(a){u.id=a;b.replies.push(u);l(N);f&&f()},function(b){v();k(N);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,q)}function v(){c(u,N,function(a){t()},!0)}var x=D().pdiv,u=a.newComment(d,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var N=p(u,b.replies,x,n+1);e?v():t()}if(m||!b.isResolved){F.style.display="none";var N=document.createElement("div");N.className="geCommentContainer";N.setAttribute("data-commentId",b.id);N.style.marginLeft=20*n+5+"px";b.isResolved&&!Editor.isDarkMode()&&(N.style.backgroundColor="ghostWhite");
+[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function g(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function p(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function l(a){a.style.border="";a.removeChild(a.busyImg)}function k(b,d,e,n,m){function v(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});L.appendChild(e);d&&(e.style.display="none")}function D(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=N;a(b);return{pdiv:d,replies:c}}function y(d,e,f,m,q){function t(){g(N);b.addReply(u,function(a){u.id=a;b.replies.push(u);l(N);f&&f()},function(b){v();p(N);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,q)}function v(){c(u,N,function(a){t()},!0)}var x=D().pdiv,u=a.newComment(d,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var N=k(u,b.replies,x,n+1);e?v():t()}if(m||!b.isResolved){F.style.display="none";var N=document.createElement("div");N.className="geCommentContainer";N.setAttribute("data-commentId",b.id);N.style.marginLeft=20*n+5+"px";b.isResolved&&!Editor.isDarkMode()&&(N.style.backgroundColor="ghostWhite");
var C=document.createElement("div");C.className="geCommentHeader";var O=document.createElement("img");O.className="geCommentUserImg";O.src=b.user.pictureUrl||Editor.userImage;C.appendChild(O);O=document.createElement("div");O.className="geCommentHeaderTxt";C.appendChild(O);var H=document.createElement("div");H.className="geCommentUsername";mxUtils.write(H,b.user.displayName||"");O.appendChild(H);H=document.createElement("div");H.className="geCommentDate";H.setAttribute("data-commentId",b.id);f(b,
H);O.appendChild(H);N.appendChild(C);C=document.createElement("div");C.className="geCommentTxt";mxUtils.write(C,b.content||"");N.appendChild(C);b.isLocked&&(N.style.opacity="0.5");C=document.createElement("div");C.className="geCommentActions";var L=document.createElement("ul");L.className="geCommentActionsList";C.appendChild(L);u||b.isLocked||0!=n&&!t||v(mxResources.get("reply"),function(){y("",!0)},b.isResolved);O=a.getCurrentUser();null==O||O.id!=b.user.id||u||b.isLocked||(v(mxResources.get("edit"),
-function(){function d(){c(b,N,function(){g(N);b.editComment(b.content,function(){l(N)},function(b){k(N);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),v(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){g(N);b.deleteComment(function(a){if(!0===a){a=N.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=N.querySelectorAll(".geCommentAction");for(a=
-0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);l(N);N.style.opacity="0.5"}else{c=D(b).replies;for(a=0;a<c.length;a++)x.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}F.style.display=0==x.getElementsByTagName("div").length?"block":"none"}},function(b){k(N);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=n||v(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
+function(){function d(){c(b,N,function(){g(N);b.editComment(b.content,function(){l(N)},function(b){p(N);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),v(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){g(N);b.deleteComment(function(a){if(!0===a){a=N.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=N.querySelectorAll(".geCommentAction");for(a=
+0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);l(N);N.style.opacity="0.5"}else{c=D(b).replies;for(a=0;a<c.length;a++)x.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}F.style.display=0==x.getElementsByTagName("div").length?"block":"none"}},function(b){p(N);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=n||v(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=D(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),l=0;l<k.length;l++)k[l]!=c.parentNode&&(k[l].style.display=d);G||(e[g].style.display="none")}q()}b.isResolved?y(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):y(mxResources.get("markedAsResolved"),!1,c,!0)});N.appendChild(C);null!=e?x.insertBefore(N,e.nextSibling):x.appendChild(N);for(e=0;null!=b.replies&&e<b.replies.length;e++)C=b.replies[e],C.isResolved=b.isResolved,p(C,b.replies,null,n+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,N,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return N}}
+c,!1,!0):y(mxResources.get("markedAsResolved"),!1,c,!0)});N.appendChild(C);null!=e?x.insertBefore(N,e.nextSibling):x.appendChild(N);for(e=0;null!=b.replies&&e<b.replies.length;e++)C=b.replies[e],C.isResolved=b.isResolved,k(C,b.replies,null,n+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,N,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return N}}
var u=!a.canComment(),t=a.canReplyToReplies(),A=null,y=document.createElement("div");y.className="geCommentsWin";y.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var I=EditorUi.compactUi?"26px":"30px",x=document.createElement("div");x.className="geCommentsList";x.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";x.style.bottom=parseInt(I)+7+"px";y.appendChild(x);var F=document.createElement("span");F.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(F,mxResources.get("noCommentsFound"));var H=document.createElement("div");H.className="geToolbarContainer geCommentsToolbar";H.style.height=I;H.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";I=document.createElement("a");I.className="geButton";if(!u){var L=I.cloneNode();L.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';L.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(L,"click",function(b){function d(){c(e,f,function(b){g(f);a.addComment(b,function(a){b.id=a;J.push(b);l(f)},function(b){k(f);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=a.newComment("",a.getCurrentUser()),f=p(e,J,null,0);d();b.preventDefault();mxEvent.consume(b)});H.appendChild(L)}L=I.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
+"...");mxEvent.addListener(L,"click",function(b){function d(){c(e,f,function(b){g(f);a.addComment(b,function(a){b.id=a;J.push(b);l(f)},function(b){p(f);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=a.newComment("",a.getCurrentUser()),f=k(e,J,null,0);d();b.preventDefault();mxEvent.consume(b)});H.appendChild(L)}L=I.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
var G=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(a){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";D();a.preventDefault();mxEvent.consume(a)});H.appendChild(L);a.commentsRefreshNeeded()&&(L=I.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(a){D();
a.preventDefault();mxEvent.consume(a)}),H.appendChild(L));a.commentsSaveNeeded()&&(I=I.cloneNode(),I.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',I.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(I.style.filter="invert(100%)"),mxEvent.addListener(I,"click",function(a){n();a.preventDefault();mxEvent.consume(a)}),H.appendChild(I));y.appendChild(H);var J=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
var b=A.div.querySelector(".geCommentEditTxtArea"),d=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);d.parentNode.removeChild(d)}catch(N){a.handleError(N)}x.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";t=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});x.innerHTML="";x.appendChild(F);F.style.display="block";J=a;for(a=0;a<J.length;a++)b(J[a].replies),p(J[a],J,null,0,G);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){x.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
+new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});x.innerHTML="";x.appendChild(F);F.style.display="block";J=a;for(a=0;a<J.length;a++)b(J[a].replies),k(J[a],J,null,0,G);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(x.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){x.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
": "+a.message:""));this.hasError=!0})):x.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;H=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(f(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=x.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var e=b[d];c[e.getAttribute("data-commentId")]=e}for(d=0;d<J.length;d++)a(J[d])}});setInterval(H,6E4);this.refreshCommentsTime=H;this.window=
new mxWindow(mxResources.get("comments"),y,b,e,d,m,!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(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var M=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",M);this.destroy=function(){mxEvent.removeListener(window,"resize",M);this.window.destroy()}},ConfirmDialog=function(a,b,e,
-d,m,n,q,c,f,g,k){var l=document.createElement("div");l.style.textAlign="center";k=null!=k?k:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=k+"px";p.style.lineHeight="1.2em";mxUtils.write(p,b);l.appendChild(p);null!=g&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",g),p.appendChild(b),l.appendChild(p));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
+d,m,n,q,c,f,g,p){var l=document.createElement("div");l.style.textAlign="center";p=null!=p?p:44;var k=document.createElement("div");k.style.padding="6px";k.style.overflow="auto";k.style.maxHeight=p+"px";k.style.lineHeight="1.2em";mxUtils.write(k,b);l.appendChild(k);null!=g&&(k=document.createElement("div"),k.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",g),k.appendChild(b),l.appendChild(k));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
"nowrap";var u=document.createElement("input");u.setAttribute("type","checkbox");n=mxUtils.button(n||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(u.checked)});n.className="geBtn";null!=c&&(n.innerHTML=c+"<br>"+n.innerHTML,n.style.paddingBottom="8px",n.style.paddingTop="8px",n.style.height="auto",n.style.width="40%");a.editor.cancelFirst&&g.appendChild(n);var t=mxUtils.button(m||mxResources.get("ok"),function(){a.hideDialog();null!=e&&e(u.checked)});g.appendChild(t);null!=q?(t.innerHTML=
-q+"<br>"+t.innerHTML+"<br>",t.style.paddingBottom="8px",t.style.paddingTop="8px",t.style.height="auto",t.className="geBtn",t.style.width="40%"):t.className="geBtn gePrimaryBtn";a.editor.cancelFirst||g.appendChild(n);l.appendChild(g);f?(g.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(u),m=document.createElement("span"),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),p.appendChild(m),l.appendChild(p),mxEvent.addListener(m,
+q+"<br>"+t.innerHTML+"<br>",t.style.paddingBottom="8px",t.style.paddingTop="8px",t.style.height="auto",t.className="geBtn",t.style.width="40%"):t.className="geBtn gePrimaryBtn";a.editor.cancelFirst||g.appendChild(n);l.appendChild(g);f?(g.style.marginTop="10px",k=document.createElement("p"),k.style.marginTop="20px",k.style.marginBottom="0px",k.appendChild(u),m=document.createElement("span"),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),k.appendChild(m),l.appendChild(k),mxEvent.addListener(m,
"click",function(a){u.checked=!u.checked;mxEvent.consume(a)})):g.style.marginTop="12px";this.init=function(){t.focus()};this.container=l};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
@@ -3739,7 +3741,7 @@ this.hideCurrentMenu();if(!mxEvent.isTouchEvent(n)||!d){var q=new mxPopupMenu(th
EditorUi.prototype.getLinkForPage=function(a,b,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=this.getCurrentFile();if(null!=d&&d.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var m=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),m=m+((0==m.length?"?":"&")+"page-id="+a.getId());null!=b&&(m+="&"+b.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
EditorUi.drawHost:"https://"+window.location.host)+"/"+m+"#"+d.getHash()}}return null};
EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){var m=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);null!=this.getLinkForPage(a)&&(e.addSeparator(d),e.addItem(mxResources.get("link"),
-null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,c,e,g,k){b=this.createUrlParameters(b,d,c,e,g,k);c||b.push("hide-pages=1");m.isSelectionEmpty()||(c=m.getBoundingBox(m.getSelectionCells()),d=m.view.translate,g=m.view.scale,c.width/=g,c.height/=g,c.x=c.x/g-d.x,c.y=c.y/g-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(c.x),y:Math.round(c.y),width:Math.round(c.width),height:Math.round(c.height),border:100}))));
+null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,c,e,g,p){b=this.createUrlParameters(b,d,c,e,g,p);c||b.push("hide-pages=1");m.isSelectionEmpty()||(c=m.getBoundingBox(m.getSelectionCells()),d=m.view.translate,g=m.view.scale,c.width/=g,c.height/=g,c.x=c.x/g-d.x,c.y=c.y/g-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(c.x),y:Math.round(c.y),width:Math.round(c.width),height:Math.round(c.height),border:100}))));
e=new EmbedDialog(this,this.getLinkForPage(a,b,e));this.showDialog(e.container,440,240,!0,!0);e.init()}))})));e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(d),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
!0,!0))}),d))})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
@@ -3754,11 +3756,11 @@ null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.ge
a.geometry.height+10:-f[1].geometry.height-10)*n;var p=t.getOutgoingTreeEdges(t.model.getTerminal(e[0],!0));if(null!=p){for(var q=g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH,x=k=e=0;x<p.length;x++){var v=t.model.getTerminal(p[x],!1);if(g==c(v)){var u=t.view.getState(v);v!=a&&null!=u&&(q&&b!=u.getCenterX()<l.getCenterX()||!q&&b!=u.getCenterY()<l.getCenterY())&&mxUtils.intersects(m,u)&&(e=10+Math.max(e,(Math.min(m.x+m.width,u.x+u.width)-Math.max(m.x,u.x))/n),k=10+Math.max(k,(Math.min(m.y+
m.height,u.y+u.height)-Math.max(m.y,u.y))/n))}}q?k=0:e=0;for(x=0;x<p.length;x++)if(v=t.model.getTerminal(p[x],!1),g==c(v)&&(u=t.view.getState(v),v!=a&&null!=u&&(q&&b!=u.getCenterX()<l.getCenterX()||!q&&b!=u.getCenterY()<l.getCenterY()))){var D=[];t.traverse(u.cell,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&D.push(b);(null==b||c)&&D.push(a);return null==b||c});t.moveCells(D,(b?1:-1)*e,(b?1:-1)*k)}}}return t.addCells(f,d)}finally{t.model.endUpdate()}}function g(a){t.model.beginUpdate();try{var b=
c(a),d=t.getIncomingTreeEdges(a),e=t.cloneCells([d[0],a]);t.model.setTerminal(d[0],e[1],!1);t.model.setTerminal(e[0],e[1],!0);t.model.setTerminal(e[0],a,!1);var f=t.model.getParent(a),g=f.geometry,k=[];t.view.currentRoot!=f&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);t.traverse(a,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});var l=a.geometry.width+40,n=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?l=0:b==mxConstants.DIRECTION_NORTH?
-(l=0,n=-n):b==mxConstants.DIRECTION_WEST?(l=-l,n=0):b==mxConstants.DIRECTION_EAST&&(n=0);t.moveCells(k,l,n);return t.addCells(e,f)}finally{t.model.endUpdate()}}function k(a,b){t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=c(a);0==e.length&&(e=[t.createEdge(d,null,"",null,null,t.createCurrentEdgeStyle())],f=b);var g=t.cloneCells([e[0],a]);t.model.setTerminal(g[0],a,!0);if(null==t.model.getTerminal(g[0],!1)){t.model.setTerminal(g[0],g[1],!1);var k=t.getCellStyle(g[1]).newEdgeStyle;
+(l=0,n=-n):b==mxConstants.DIRECTION_WEST?(l=-l,n=0):b==mxConstants.DIRECTION_EAST&&(n=0);t.moveCells(k,l,n);return t.addCells(e,f)}finally{t.model.endUpdate()}}function p(a,b){t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=c(a);0==e.length&&(e=[t.createEdge(d,null,"",null,null,t.createCurrentEdgeStyle())],f=b);var g=t.cloneCells([e[0],a]);t.model.setTerminal(g[0],a,!0);if(null==t.model.getTerminal(g[0],!1)){t.model.setTerminal(g[0],g[1],!1);var k=t.getCellStyle(g[1]).newEdgeStyle;
if(null!=k)try{var l=JSON.parse(k),n;for(n in l)t.setCellStyles(n,l[n],[g[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==l[n]&&t.setCellStyles("elbow",f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[g[0]])}catch(ca){}}var e=t.getOutgoingTreeEdges(a),m=d.geometry,k=[];t.view.currentRoot==d&&(m=new mxRectangle);for(l=0;l<e.length;l++){var p=t.model.getTerminal(e[l],!1);null!=p&&k.push(p)}var q=t.view.getBounds(k),x=t.view.translate,v=t.view.scale;f==mxConstants.DIRECTION_SOUTH?
(g[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-g[1].geometry.width)/2:(q.x+q.width)/v-x.x-m.x+10,g[1].geometry.y+=g[1].geometry.height-m.y+40):f==mxConstants.DIRECTION_NORTH?(g[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-g[1].geometry.width)/2:(q.x+q.width)/v-x.x+-m.x+10,g[1].geometry.y-=g[1].geometry.height+m.y+40):(g[1].geometry.x=f==mxConstants.DIRECTION_WEST?g[1].geometry.x-(g[1].geometry.width+m.x+40):g[1].geometry.x+(g[1].geometry.width-m.x+40),g[1].geometry.y=null==q?a.geometry.y+
(a.geometry.height-g[1].geometry.height)/2:(q.y+q.height)/v-x.y+-m.y+10);return t.addCells(g,d)}finally{t.model.endUpdate()}}function l(a,b,c){a=t.getOutgoingTreeEdges(a);c=t.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=t.view.getState(t.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
-c.y-c.height})}return d}function p(a,b){var d=c(a),e=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST)==e&&d!=b?u.actions.get("selectParent").funct():d==b?(e=t.getOutgoingTreeEdges(a),null!=e&&0<e.length&&t.setSelectionCell(t.model.getTerminal(e[0],!1))):(d=t.getIncomingTreeEdges(a),null!=d&&0<d.length&&(e=l(t.model.getTerminal(d[0],!0),e,a),d=t.view.getState(a),null!=d&&(d=mxUtils.indexOf(e,d),0<=d&&(d+=b==mxConstants.DIRECTION_NORTH||
+c.y-c.height})}return d}function k(a,b){var d=c(a),e=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST)==e&&d!=b?u.actions.get("selectParent").funct():d==b?(e=t.getOutgoingTreeEdges(a),null!=e&&0<e.length&&t.setSelectionCell(t.model.getTerminal(e[0],!1))):(d=t.getIncomingTreeEdges(a),null!=d&&0<d.length&&(e=l(t.model.getTerminal(d[0],!0),e,a),d=t.view.getState(a),null!=d&&(d=mxUtils.indexOf(e,d),0<=d&&(d+=b==mxConstants.DIRECTION_NORTH||
b==mxConstants.DIRECTION_WEST?-1:1,0<=d&&d<=e.length-1&&t.setSelectionCell(e[d].cell)))))}var u=this,t=u.editor.graph,A=t.getModel(),y=u.menus.createPopupMenu;u.menus.createPopupMenu=function(b,c,d){y.apply(this,arguments);if(1==t.getSelectionCount()){c=t.getSelectionCell();var e=t.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(t.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(t.getSelectionCell())?(b.addSeparator(),
0<t.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d)):0<t.model.getEdgeCount(c)&&this.addMenuItems(b,["selectConnections"],null,d)}};u.actions.addAction("selectChildren",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(t.model.getTerminal(a[c],!1));t.setSelectionCells(b)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(t.isEnabled()&&
1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=t.getOutgoingTreeEdges(t.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(t.model.getTerminal(a[c],!1));t.setSelectionCells(b)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(t.isEnabled()&&1==t.getSelectionCount()){var a=t.getSelectionCell(),a=t.getIncomingTreeEdges(a);null!=a&&0<a.length&&t.setSelectionCell(t.model.getTerminal(a[0],
@@ -3769,9 +3771,9 @@ t.getIncomingTreeEdges(k[e]),g=t.getIncomingTreeEdges(b[e]);if(0==l.length&&0<g.
!0)){f=t.model.getParent(b[p]);break}if(null!=n&&f!=n&&null!=this.view.getState(b[0])){var q=t.getIncomingTreeEdges(b[0]);if(0<q.length){var x=t.view.getState(t.model.getTerminal(q[0],!0));if(null!=x){var u=t.view.getState(n);null!=u&&(c=(u.getCenterX()-x.getCenterX())/t.view.scale,d=(u.getCenterY()-x.getCenterY())/t.view.scale)}}}}l=F.apply(this,arguments);if(null!=l&&null!=b&&l.length==b.length)for(p=0;p<l.length;p++)if(this.model.isEdge(l[p]))a(n)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[p],
!0))&&this.model.setTerminal(l[p],n,!0);else if(a(b[p])&&(q=t.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(n)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],n,!0);else if(0==t.getIncomingTreeEdges(l[p]).length){m=n;if(null==m||m==t.model.getParent(b[p]))m=t.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,t.getDefaultParent(),m,l[p])}}finally{this.model.endUpdate()}return l};if(null!=u.sidebar){var H=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
function(b,c,d,e){var f=t.model,g=null;f.beginUpdate();try{if(g=H.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var l=t.getCellGeometry(g[k]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var L={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=u.onKeyDown;u.onKeyDown=function(b){try{if(t.isEnabled()&&
-!t.isEditing()&&a(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingTreeEdges(t.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?g(t.getSelectionCell()):k(t.getSelectionCell()):13==b.which&&(c=f(t.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=c&&0<c.length)1==c.length&&t.model.isEdge(c[0])?t.setSelectionCell(t.model.getTerminal(c[0],!1)):t.setSelectionCell(c[c.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(t.view.getState(t.getSelectionCell())),
-t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=L[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(p(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(p(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(p(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(p(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(b))}}catch(B){u.handleError(B)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var J=t.connectVertex;t.connectVertex=function(b,d,e,l,n,m,p){var q=t.getIncomingTreeEdges(b);if(a(b)){var x=c(b),u=x==mxConstants.DIRECTION_EAST||x==mxConstants.DIRECTION_WEST,v=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return x==d||0==q.length?k(b,d):u==v?g(b):f(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};t.getSubtree=function(c){var d=
+!t.isEditing()&&a(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingTreeEdges(t.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?g(t.getSelectionCell()):p(t.getSelectionCell()):13==b.which&&(c=f(t.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=c&&0<c.length)1==c.length&&t.model.isEdge(c[0])?t.setSelectionCell(t.model.getTerminal(c[0],!1)):t.setSelectionCell(c[c.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(t.view.getState(t.getSelectionCell())),
+t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=L[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(k(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(k(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(k(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(k(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(b))}}catch(B){u.handleError(B)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var J=t.connectVertex;t.connectVertex=function(b,d,e,k,l,n,m){var q=t.getIncomingTreeEdges(b);if(a(b)){var x=c(b),u=x==mxConstants.DIRECTION_EAST||x==mxConstants.DIRECTION_WEST,v=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return x==d||0==q.length?p(b,d):u==v?g(b):f(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};t.getSubtree=function(c){var d=
[c];!b(c)&&!a(c)||q(c)||t.traverse(c,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!q(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(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);
this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(a)})))};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 O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){O.apply(this,
@@ -3780,15 +3782,15 @@ function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimla
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);a.insert(d);a.insert(b);a.insert(c);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-e.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;b.insertEdge(k,!0);e.insertEdge(k,!1);var l=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-l.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);l.insertEdge(m,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-u.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");t.geometry.relative=!0;t.edge=!0;b.insertEdge(t,!0);u.insertEdge(t,!1);a.insert(d);a.insert(k);a.insert(m);a.insert(t);a.insert(b);a.insert(c);a.insert(e);a.insert(l);a.insert(u);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
+e.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);e.insertEdge(m,!1);var l=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+l.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;b.insertEdge(k,!0);l.insertEdge(k,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+u.vertex=!0;var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");t.geometry.relative=!0;t.edge=!0;b.insertEdge(t,!0);u.insertEdge(t,!1);a.insert(d);a.insert(m);a.insert(k);a.insert(t);a.insert(b);a.insert(c);a.insert(e);a.insert(l);a.insert(u);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
a.vertex=!0;var d=new mxCell("Organization",new mxGeometry(80,40,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.setAttributeForCell(d,"treeRoot","1");d.vertex=!0;var c=new mxCell("Division",new mxGeometry(20,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
-c.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;d.insertEdge(e,!0);c.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
-k.geometry.relative=!0;k.edge=!0;d.insertEdge(k,!0);g.insertEdge(k,!1);a.insert(e);a.insert(k);a.insert(d);a.insert(c);a.insert(g);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.setAttributeForCell(a,"treeRoot",
+c.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;d.insertEdge(e,!0);c.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');g.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
+m.geometry.relative=!0;m.edge=!0;d.insertEdge(m,!0);g.insertEdge(m,!1);a.insert(e);a.insert(m);a.insert(d);a.insert(c);a.insert(g);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.setAttributeForCell(a,"treeRoot",
"1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");d.geometry.setTerminalPoint(new mxPoint(110,-40),!0);d.geometry.relative=
@@ -3819,13 +3821,13 @@ document.body.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";n.in
(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var n=document.createElement("style");n.type="text/css";n.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(n);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
function(){return!1};var q=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");q.apply(this,arguments)};var c=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){c.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var f=
Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):f.apply(this,arguments)};var g=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){g.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+a.style.display;a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage=
-"url("+Editor.userImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";a.style.cssFloat="right";a.setAttribute("title",mxResources.get("changeUser"));"none"!=a.style.display&&(a.style.display="inline-block")}};var k=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){k.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText=
+"url("+Editor.userImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";a.style.cssFloat="right";a.setAttribute("title",mxResources.get("changeUser"));"none"!=a.style.display&&(a.style.display="inline-block")}};var p=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){p.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText=
"display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage="url("+Editor.shareImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";"1"==urlParams.sketch&&(this.shareButton.style.display="none")}null!=this.buttonContainer&&(this.buttonContainer.style.marginTop="-2px",this.buttonContainer.style.paddingTop=
"4px")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");a.style.display="inline-block";a.style.position="relative";a.style.marginTop="6px";a.style.marginRight="4px";var b=document.createElement("a");b.className="geMenuItem gePrimaryBtn";b.style.marginLeft="8px";b.style.padding="6px";if("1"==urlParams.noSaveBtn){var c="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,c);b.setAttribute("title",
c);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),
b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),c="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,c),b.setAttribute("title",c),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),
a.appendChild(b));this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};var l=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,a)){var c=mxUtils.getOffset(this.editorUi.picker);c.x+=this.editorUi.picker.offsetWidth+4;c.y+=a.offsetTop-b.height/2+16;return c}var d=l.apply(this,arguments),c=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);d.x+=c.x-16;d.y+=
-c.y;return d};var p=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;p.apply(this,arguments);"1"==urlParams.sketch?d.isEnabled()&&(a.addSeparator(),1==d.getSelectionCount()?(null!=c&&mxEvent.isTouchEvent(c)&&this.addMenuItems(a,["edit"],null,c),this.addMenuItems(a,["-","lockUnlock"],null,c)):this.addSubmenu("view",a,null,mxResources.get("options"))):1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-",
+c.y;return d};var k=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;k.apply(this,arguments);"1"==urlParams.sketch?d.isEnabled()&&(a.addSeparator(),1==d.getSelectionCount()?(null!=c&&mxEvent.isTouchEvent(c)&&this.addMenuItems(a,["edit"],null,c),this.addMenuItems(a,["-","lockUnlock"],null,c)):this.addSubmenu("view",a,null,mxResources.get("options"))):1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-",
"editGeometry","edit"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-","lockUnlock","enterGroup"],null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",
a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(a,b,c){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(a,["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=
function(){return!0};var t=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=
@@ -3854,8 +3856,8 @@ p.insertBefore(g,m.statusContainer):p.appendChild(g);null!=f?(g.style.background
"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,m.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
"geItem"!=a.className||a.parentNode.removeChild(a);a=b}t=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"==urlParams.sketch)aa.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px";else if(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),d(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?K:null),f([b,d(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ta:null)],a?60:null),411<=e&&(f([la,sa],60),520<=e&&(f([va,640<=e?d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",P,ua):null,640<=e?d("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,da):null],60),720<=e))){var g=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);g.style.opacity=
-"0.4";m.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ba:ka)+")"}));null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,m.statusContainer):p.appendChild(g)}a=m.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==wa&&(b=q.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+
+null)],a?60:null),b=c("insert",!0,a?K:null),f([b,d(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ta:null)],a?60:null),411<=e&&(f([ma,sa],60),520<=e&&(f([va,640<=e?d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",P,ua):null,640<=e?d("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,da):null],60),720<=e))){var g=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:la);g.style.opacity=
+"0.4";m.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ba:la)+")"}));null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,m.statusContainer):p.appendChild(g)}a=m.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==wa&&(b=q.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+
")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",b.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(b),wa=b),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=wa&&(wa.parentNode.removeChild(wa),wa=null))}I.apply(this,arguments);this.doSetDarkMode(null!=
urlParams.dark?1==urlParams.dark:mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||
mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var l=this.formatWindow.window.toggleMinimized;
@@ -3866,37 +3868,37 @@ b+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus()
var k=m.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var E=m.menus.get("viewZoom"),K="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
Z="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,aa="1"==urlParams.sketch?document.createElement("div"):null;m.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()}));
Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=m.hoverIcons){var pa=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||pa.apply(this,arguments)}}if(null!=n.freehand){var ga=n.freehand.createStyle;n.freehand.createStyle=function(a){return ga.apply(this,arguments)+
-"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";Z.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var ma=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",a):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?ma(m.statusContainer.firstChild.getAttribute("title")):ma(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==
-mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",ma(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin="0px";aa.appendChild(S);m.statusContainer.style.position=
+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";Z.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var na=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",a):m.notificationBtn.removeAttribute("title"))});
+"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?na(m.statusContainer.firstChild.getAttribute("title")):na(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==
+mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",na(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin="0px";aa.appendChild(S);m.statusContainer.style.position=
"";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var V=document.createElement("a");V.style.padding="0px";V.style.boxShadow="none";V.className="geMenuItem";
-V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,na=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,e){a=d("",a.funct,null,c,a,e);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
+V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,oa=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,e){a=d("",a.funct,null,c,a,e);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
null!=c?c:"default";a.style.margin="2px 0px";Q.appendChild(a);mxUtils.br(Q);return a};b(m.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;sketch=1;shadow=1;size=20;fontSize=24;jiggle=2;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));b(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");b(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var a=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");
a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,0),!1);a.geometry.points=[];a.geometry.relative=!0;a.edge=!0;b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geometry.width=n.defaultEdgeLength+20;a.geometry.setTerminalPoint(new mxPoint(0,20),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,
20),!1);a=b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));a.style.borderBottom="1px solid lightgray";a.style.paddingBottom="14px";a.style.marginBottom="14px"})();a(m.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
var c=m.actions.get("toggleShapes");a(c,mxResources.get("shapes")+" ("+c.shortcut+")",K);a(m.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")}Q.appendChild(V)});
-mxEvent.addListener(V,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),ca=!1,na()):(Q.innerHTML="",Q.appendChild(V),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",
-Q.style.padding="0px",Q.style.height="24px",V.style.height="24px",V.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==)",V.setAttribute("title",mxResources.get("insert")),V.style.width="24px",ca=!0)}));na();m.addListener("darkModeChanged",mxUtils.bind(this,function(){na()}))}else m.editor.addListener("statusChanged",
+mxEvent.addListener(V,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),ca=!1,oa()):(Q.innerHTML="",Q.appendChild(V),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",
+Q.style.padding="0px",Q.style.height="24px",V.style.height="24px",V.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==)",V.setAttribute("title",mxResources.get("insert")),V.style.width="24px",ca=!0)}));oa();m.addListener("darkModeChanged",mxUtils.bind(this,function(){oa()}))}else m.editor.addListener("statusChanged",
mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=E){var T=function(a){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(a)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},P=m.actions.get("zoomIn"),ua="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
W=m.actions.get("zoomOut"),da="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
-ia=m.actions.get("resetView"),qa=m.actions.get("fullscreen"),R=m.actions.get("toggleDarkMode"),ka="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
+ja=m.actions.get("resetView"),qa=m.actions.get("fullscreen"),R=m.actions.get("toggleDarkMode"),la="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ba="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
-ja=m.actions.get("undo"),X=m.actions.get("redo"),la=d("",ja.funct,null,mxResources.get("undo")+" ("+ja.shortcut+")",ja,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),sa=d("",X.funct,null,mxResources.get("redo")+
-" ("+X.shortcut+")",X,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),va=d("",T,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",ia,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48cGF0aCBkPSJNNiwxNmgxMlY4SDZWMTZ6IE04LDEwaDh2NEg4VjEweiBNNCwxNUgydjNjMCwxLjEsMC45LDIsMiwyaDN2LTJINFYxNXogTTQsNmgzVjRINEMyLjksNCwyLDQuOSwyLDZ2M2gyVjZ6IE0yMCw0aC0zdjJoM3YzIGgyVjZDMjIsNC45LDIxLjEsNCwyMCw0eiBNMjAsMThoLTN2MmgzYzEuMSwwLDItMC45LDItMnYtM2gtMlYxOHoiLz48L2c+PC9zdmc+"),
-ia=d("",qa.funct,null,mxResources.get("fullscreen"),qa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==";
-if(null!=Z){var ya=m.actions.get("delete"),za=d("",ya.funct,null,mxResources.get("delete"),ya,ta);za.style.opacity="0.1";aa.appendChild(za);ya.addListener("stateChanged",function(){za.style.opacity=ya.enabled?"0.4":"0.1"});E=function(){la.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";sa.style.display=la.style.display;la.style.opacity=ja.enabled?"0.4":"0.1";sa.style.opacity=X.enabled?"0.4":"0.1"};aa.appendChild(la);aa.appendChild(sa);ja.addListener("stateChanged",
+ka=m.actions.get("undo"),X=m.actions.get("redo"),ma=d("",ka.funct,null,mxResources.get("undo")+" ("+ka.shortcut+")",ka,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),sa=d("",X.funct,null,mxResources.get("redo")+
+" ("+X.shortcut+")",X,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),va=d("",T,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",ja,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48cGF0aCBkPSJNNiwxNmgxMlY4SDZWMTZ6IE04LDEwaDh2NEg4VjEweiBNNCwxNUgydjNjMCwxLjEsMC45LDIsMiwyaDN2LTJINFYxNXogTTQsNmgzVjRINEMyLjksNCwyLDQuOSwyLDZ2M2gyVjZ6IE0yMCw0aC0zdjJoM3YzIGgyVjZDMjIsNC45LDIxLjEsNCwyMCw0eiBNMjAsMThoLTN2MmgzYzEuMSwwLDItMC45LDItMnYtM2gtMlYxOHoiLz48L2c+PC9zdmc+"),
+ja=d("",qa.funct,null,mxResources.get("fullscreen"),qa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==";
+if(null!=Z){var ya=m.actions.get("delete"),za=d("",ya.funct,null,mxResources.get("delete"),ya,ta);za.style.opacity="0.1";aa.appendChild(za);ya.addListener("stateChanged",function(){za.style.opacity=ya.enabled?"0.4":"0.1"});E=function(){ma.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";sa.style.display=ma.style.display;ma.style.opacity=ka.enabled?"0.4":"0.1";sa.style.opacity=X.enabled?"0.4":"0.1"};aa.appendChild(ma);aa.appendChild(sa);ka.addListener("stateChanged",
E);X.addListener("stateChanged",E);E();E=m.actions.get("outline");E=d("",E.funct,null,mxResources.get("outline"),E,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMC41IDNsLS4xNi4wM0wxNSA1LjEgOSAzIDMuMzYgNC45Yy0uMjEuMDctLjM2LjI1LS4zNi40OFYyMC41YzAgLjI4LjIyLjUuNS41bC4xNi0uMDNMOSAxOC45bDYgMi4xIDUuNjQtMS45Yy4yMS0uMDcuMzYtLjI1LjM2LS40OFYzLjVjMC0uMjgtLjIyLS41LS41LS41ek0xNSAxOWwtNi0yLjExVjVsNiAyLjExVjE5eiIvPjwvc3ZnPg==");
E.style.opacity="0.4";Z.appendChild(E);E=d("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,da);E.style.opacity="0.4";Z.appendChild(E);var S=document.createElement("div");S.innerHTML="100%";S.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");S.style.display="inline-block";S.style.cursor="pointer";S.style.textAlign="center";S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.verticalAlign=
-"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";Z.appendChild(S);mxEvent.addListener(S,"click",T);T=d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",P,ua);T.style.opacity="0.4";Z.appendChild(T);var Aa=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);Aa.style.opacity="0.4";Z.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
-ba:ka)+")"}));qa.visible&&(ia.style.opacity="0.4",Z.appendChild(ia));var ha=this.createPageMenuTab(!1);ha.style.display="none";ha.style.position="";ha.style.marginLeft="";ha.style.top="";ha.style.left="";ha.style.height="100%";ha.style.lineHeight="";ha.style.borderStyle="none";ha.style.padding="3px 0";ha.style.margin="0px";ha.style.background="";ha.style.border="";ha.style.boxShadow="none";ha.style.verticalAlign="top";ha.firstChild.style.height="100%";ha.firstChild.style.opacity="0.6";ha.firstChild.style.margin=
-"0px";Z.appendChild(ha);m.addListener("fileDescriptorChanged",function(){ha.style.display="1"==urlParams.pages||null!=m.pages&&1<m.pages.length?"inline-block":"none"});m.tabContainer.style.visibility="hidden";p.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;";aa.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;";
+"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";Z.appendChild(S);mxEvent.addListener(S,"click",T);T=d("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",P,ua);T.style.opacity="0.4";Z.appendChild(T);var Aa=d("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:la);Aa.style.opacity="0.4";Z.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
+ba:la)+")"}));qa.visible&&(ja.style.opacity="0.4",Z.appendChild(ja));var ia=this.createPageMenuTab(!1);ia.style.display="none";ia.style.position="";ia.style.marginLeft="";ia.style.top="";ia.style.left="";ia.style.height="100%";ia.style.lineHeight="";ia.style.borderStyle="none";ia.style.padding="3px 0";ia.style.margin="0px";ia.style.background="";ia.style.border="";ia.style.boxShadow="none";ia.style.verticalAlign="top";ia.firstChild.style.height="100%";ia.firstChild.style.opacity="0.6";ia.firstChild.style.margin=
+"0px";Z.appendChild(ia);m.addListener("fileDescriptorChanged",function(){ia.style.display="1"==urlParams.pages||null!=m.pages&&1<m.pages.length?"inline-block":"none"});m.tabContainer.style.visibility="hidden";p.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;";aa.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;";
Z.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;";A.appendChild(aa);A.appendChild(Z);Q.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;";A.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,
"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(A)}else p.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",S=q.addMenu("100%",E.funct),S.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),S.style.whiteSpace="nowrap",S.style.paddingRight="10px",S.style.textDecoration="none",S.style.textDecoration="none",S.style.overflow="hidden",
S.style.visibility="hidden",S.style.textAlign="center",S.style.cursor="pointer",S.style.height=parseInt(m.tabContainerHeight)-1+"px",S.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px",S.style.position="absolute",S.style.display="block",S.style.fontSize="12px",S.style.width="59px",S.style.right="0px",S.style.bottom="0px",S.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",S.style.backgroundPosition="right 6px center",S.style.backgroundRepeat="no-repeat",A.appendChild(S);qa=mxUtils.bind(this,
function(){S.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,qa);m.editor.addListener("resetGraphView",qa);m.editor.addListener("pageSelected",qa);var Ba=m.setGraphEnabled;m.setGraphEnabled=function(){Ba.apply(this,arguments);null!=this.tabContainer&&(S.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==Z?this.tabContainerHeight+"px":"0px")}}A.appendChild(p);
A.appendChild(m.diagramContainer);k.appendChild(A);m.updateTabContainer();null==Z&&A.appendChild(m.tabContainer);var wa=null;g();mxEvent.addListener(window,"resize",function(){g();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.tagsWindow&&m.menus.tagsWindow.window.fit();null!=m.menus.findWindow&&m.menus.findWindow.window.fit();
-null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,m,n,q){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=m;this.isResolved=n;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,m){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,m){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=m};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.\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\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 occured 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\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;
+null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,m,n,q){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=m;this.isResolved=n;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,m){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,m){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=m};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.\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 occured 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\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(a,b,e){this.init(a,b,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?28:30;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;
GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -3905,12 +3907,12 @@ this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.forceCenter=null!=this.g
this.pageId=this.graphConfig.pageId;this.editor=null;"inline"==this.graphConfig["toolbar-position"]&&(this.minHeight+=this.toolbarHeight);if(null!=b&&(this.xmlDocument=b.ownerDocument,this.xmlNode=b,this.xml=mxUtils.getXml(b),null!=a)){var d=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.enableFlowAnimation=!0;this.graph.defaultPageBackgroundColor="transparent";this.graph.transparentBackground=!1;if(this.responsive&&this.graph.dialect==mxConstants.DIALECT_SVG){var d=this.graph.view.getDrawPane().ownerSVGElement;
this.graph.view.getCanvas();null!=this.graphConfig.border?d.style.padding=this.graphConfig.border+"px":""==a.style.padding&&(d.style.padding="8px");d.style.boxSizing="border-box";d.style.overflow="visible";this.graph.fit=function(){};this.graph.sizeDidChange=function(){var a=this.view.graphBounds,b=this.view.translate;d.setAttribute("viewBox",a.x+b.x-this.panDx+" "+(a.y+b.y-this.panDy)+" "+(a.width+1)+" "+(a.height+1));this.container.style.backgroundColor=d.style.backgroundColor;this.fireEvent(new mxEventObject(mxEvent.SIZE,
"bounds",a))}}this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);1==this.graphConfig["toolbar-nohide"]&&(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);
-this.xmlNode!=b&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var c=this;this.graph.getImageFromBundles=function(a){return c.getImageUrl(a)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var e=this.xmlNode.getElementsByTagName("diagram");if(0<e.length){if(null!=this.pageId)for(var g=0;g<e.length;g++)if(this.pageId==e[g].getAttribute("id")){this.currentPage=g;break}var k=this.graph.getGlobalVariable,
-c=this;this.graph.getGlobalVariable=function(a){var b=e[c.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(c.currentPage+1):"pagenumber"==a?c.currentPage+1:"pagecount"==a?e.length:k.apply(this,arguments)}}}this.diagrams=[];var l=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==
+this.xmlNode!=b&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var c=this;this.graph.getImageFromBundles=function(a){return c.getImageUrl(a)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var e=this.xmlNode.getElementsByTagName("diagram");if(0<e.length){if(null!=this.pageId)for(var g=0;g<e.length;g++)if(this.pageId==e[g].getAttribute("id")){this.currentPage=g;break}var m=this.graph.getGlobalVariable,
+c=this;this.graph.getGlobalVariable=function(a){var b=e[c.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(c.currentPage+1):"pagenumber"==a?c.currentPage+1:"pagecount"==a?e.length:m.apply(this,arguments)}}}this.diagrams=[];var l=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==
a){this.selectPage(c);b=!0;break}return b};g=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=l&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),l=this.xmlNode)});this.addListener("xmlNodeChanged",g);g();urlParams.page=c.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.view.scale=this.graphConfig.zoom||1,g=this.setLayersVisible(),
this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||(this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);
null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.forceCenter||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);
-this.graph.customLinkClicked=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");c.selectPageById(a.substring(b+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(a);return!0};var m=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return m.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;
+this.graph.customLinkClicked=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");c.selectPageById(a.substring(b+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(a);return!0};var k=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return k.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;
if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var m=this.getObservableParent(a),n=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(n.disconnect(),d())}));n.observe(m,{attributes:!0})}else d()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};
GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};GraphViewer.prototype.setXmlNode=function(a){a=this.editor.extractGraphModel(a,!0);this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))};
GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))};
@@ -3926,22 +3928,22 @@ this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWi
d);var q=mxUtils.bind(this,function(c){var d=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");var e=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=a.style.height&&this.autoFit?a.offsetHeight:void 0;0<a.offsetWidth&&null==c&&this.allowZoomOut&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>e)?(c=null,null!=e&&b.height+2*this.graph.border>e-2&&(c=(e-2*this.graph.border-2)/b.height),this.fitGraph(c)):this.widthIsEmpty||
null!=c||0!=this.graphConfig.resize||""==a.style.height?(c=null!=c?c:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-b.x/this.graph.view.scale)+c.x,Math.floor(this.graph.border-b.y/this.graph.view.scale)+c.y),m=a.offsetWidth):this.graph.center((!this.widthIsEmpty||b.width<this.minWidth)&&1!=this.graphConfig.resize);a.style.minWidth=d});8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(a){b=this.graph.getGraphBounds();m=null;q(a)}};
GraphViewer.prototype.crop=function(){var a=this.graph,b=a.getGraphBounds(),e=a.border,d=a.view.scale;a.view.setTranslate(null!=b.x?Math.floor(a.view.translate.x-b.x/d+e):e,null!=b.y?Math.floor(a.view.translate.y-b.y/d+e):e)};GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.forceCenter||this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)a.style.height=b+"px"};
-GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,m=null!=d&&0<d.length,n=!1;if(0<e.length||m||null!=b){var q=null!=b?b.getModel():null,n=a.getModel();n.beginUpdate();try{var c=n.getChildCount(n.root);if(null==q){var q=!1,f={};if(m)for(var g=0;g<d.length;g++){var k=n.getCell(d[g]);null!=k&&(q=!0,f[k.id]=!0)}else for(g=0;g<e.length;g++)k=n.getChildAt(n.root,parseInt(e[g])),null!=k&&(q=!0,f[k.id]=!0);for(g=
-0;q&&g<c;g++)k=n.getChildAt(n.root,g),n.setVisible(k,f[k.id]||!1)}else for(g=0;g<c;g++)n.setVisible(n.getChildAt(n.root,g),q.isVisible(q.getChildAt(q.root,g)))}finally{n.endUpdate()}n=!0}return n};
+GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,m=null!=d&&0<d.length,n=!1;if(0<e.length||m||null!=b){var q=null!=b?b.getModel():null,n=a.getModel();n.beginUpdate();try{var c=n.getChildCount(n.root);if(null==q){var q=!1,f={};if(m)for(var g=0;g<d.length;g++){var p=n.getCell(d[g]);null!=p&&(q=!0,f[p.id]=!0)}else for(g=0;g<e.length;g++)p=n.getChildAt(n.root,parseInt(e[g])),null!=p&&(q=!0,f[p.id]=!0);for(g=
+0;q&&g<c;g++)p=n.getChildAt(n.root,g),n.setVisible(p,f[p.id]||!1)}else for(g=0;g<c;g++)n.setVisible(n.getChildAt(n.root,g),q.isVisible(q.getChildAt(q.root,g)))}finally{n.endUpdate()}n=!0}return n};
GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var f=document.createElement("div");f.style.borderRight="1px solid #d0d0d0";f.style.padding="3px 6px 3px 6px";mxEvent.addListener(f,"click",a);null!=c&&f.setAttribute("title",c);f.style.display="inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(f,"mouseenter",function(){f.style.backgroundColor="#ddd"}),mxEvent.addListener(f,"mouseleave",function(){f.style.backgroundColor=
-"#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);e.appendChild(f);k++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";e.style.whiteSpace="nowrap";e.style.textAlign=
+"#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);e.appendChild(f);p++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";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 d=null,m=null,n=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=m&&(window.clearTimeout(m),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,0);d=
null;m=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";m=null}),100)}),a||200)}),q=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=m&&(window.clearTimeout(m),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(q(30),n())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":"mousemove",
function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){q(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){q(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||q(30)}));var c=this.graph,f=c.getTolerance();c.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=c.container.scrollLeft;
-this.scrollTop=c.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-c.container.scrollLeft)<f&&Math.abs(this.scrollTop-c.container.scrollTop)<f&&Math.abs(this.startX-b.getGraphX())<f&&Math.abs(this.startY-b.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():q(30))}})}for(var g=this.toolbarItems,k=0,l=null,p=null,u=0;u<g.length;u++){var t=g[u];if("pages"==t){p=b.ownerDocument.createElement("div");p.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
-mxUtils.setOpacity(p,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(p);var y=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");y.style.paddingLeft="0px";y.style.paddingRight="0px";t=mxUtils.bind(this,function(){p.innerHTML=
-"";mxUtils.write(p,this.currentPage+1+" / "+this.diagrams.length);p.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=p.style.display;y.style.display=p.style.display});this.addListener("graphChanged",t);t()}else if("zoom"==t)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,
+this.scrollTop=c.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-c.container.scrollLeft)<f&&Math.abs(this.scrollTop-c.container.scrollTop)<f&&Math.abs(this.startX-b.getGraphX())<f&&Math.abs(this.startY-b.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?n():q(30))}})}for(var g=this.toolbarItems,p=0,l=null,k=null,u=0;u<g.length;u++){var t=g[u];if("pages"==t){k=b.ownerDocument.createElement("div");k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
+mxUtils.setOpacity(k,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(k);var y=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");y.style.paddingLeft="0px";y.style.paddingRight="0px";t=mxUtils.bind(this,function(){k.innerHTML=
+"";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=k.style.display;y.style.display=k.style.display});this.addListener("graphChanged",t);t()}else if("zoom"==t)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(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"==t){if(this.layersEnabled){var I=this.graph.getModel(),x=a(mxUtils.bind(this,function(a){if(null!=l)l.parentNode.removeChild(l),l=null;else{l=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var a=this.graph.getGraphBounds(),
b=this.graph.view;0>a.x||0>a.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:b.translate.clone(),scale:b.scale}):null!=this.graph.originalViewState&&0<a.x/b.scale+this.graph.originalViewState.translate.x-b.translate.x&&0<a.y/b.scale+this.graph.originalViewState.translate.y-b.translate.y&&(b.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState=
{translate:b.translate.clone(),scale:b.scale})}}));mxEvent.addListener(l,"mouseleave",function(){l.parentNode.removeChild(l);l=null});a=x.getBoundingClientRect();l.style.width="140px";l.style.padding="2px 0px 2px 0px";l.style.border="1px solid #d0d0d0";l.style.backgroundColor="#eee";l.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";l.style.fontSize="11px";l.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(l,80);var b=mxUtils.getDocumentScrollOrigin(document);l.style.left=b.x+
a.left-1+"px";l.style.top=b.y+a.bottom-2+"px";document.body.appendChild(l)}}),Editor.layersImage,mxResources.get("layers")||"Layers");I.addListener(mxEvent.CHANGE,function(){x.style.display=1<I.getChildCount(I.root)?"inline-block":"none"});x.style.display=1<I.getChildCount(I.root)?"inline-block":"none"}}else"lightbox"==t?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(t=this.graphConfig["toolbar-buttons"][t],
-null!=t&&(t.elem=a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*k);null!=this.graphConfig.title&&(g=b.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),
-mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=g);this.minToolbarWidth=34*k;var F=b.style.border,H=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},
+null!=t&&(t.elem=a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*p);null!=this.graphConfig.title&&(g=b.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),
+mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=g);this.minToolbarWidth=34*p;var F=b.style.border,H=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},
a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==F&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=
l&&(l.parentNode.removeChild(l),l=null);b.style.border=F});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==l)return;a=a.parentNode}d()});mxEvent.addListener(document.body,"mouseleave",function(a){d()})}else e.style.top=-this.toolbarHeight+"px",b.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",H):H();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&
H()})).observe(b)};GraphViewer.prototype.disableButton=function(a){var b=this.graphConfig["toolbar-buttons"][a];null!=b&&(mxUtils.setOpacity(b.elem,30),mxEvent.removeListener(b.elem,"click",b.handler),mxEvent.addListener(b.elem,"mouseenter",function(){b.elem.style.backgroundColor="#eee"}))};
@@ -3966,6 +3968,6 @@ GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewe
(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function m(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function n(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function q(b,c){if(!b.resizedAttached)b.resizedAttached=
new m,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
b.appendChild(b.resizeSensor);"static"==n(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,l=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(l))};a(l);var p,q,L,G,J=function(){if((L=b.offsetWidth)!=p||(G=b.offsetHeight)!=q)k=!0,p=L,q=G;g()},D=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",J);D(f,"scroll",J)}var c=function(){GraphViewer.resizeSensorEnabled&&d()},f=Object.prototype.toString.call(e),g="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var f=0,k=e.length;f<k;f++)q(e[f],c);else q(e,c);this.detach=function(){if(g)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",J);D(f,"scroll",J)}var c=function(){GraphViewer.resizeSensorEnabled&&d()},f=Object.prototype.toString.call(e),g="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var f=0,p=e.length;f<p;f++)q(e[f],c);else q(e,c);this.detach=function(){if(g)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
(function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})();
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index a430e2d1..24b6ce4e 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"14.9.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+var mxClient={VERSION:"14.9.2",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"),
@@ -103,12 +103,12 @@ STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"en
STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",
STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",
FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",
-ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,
-DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",
-PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};
-mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;
-mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};
-mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
+ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",
+DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",
+PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};
+mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;
+mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};
+mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
mxMouseEvent.prototype.consume=function(a){(a=null!=a?a:null!=this.evt.touches||mxEvent.isMouseEvent(this.evt))&&this.evt.preventDefault&&this.evt.preventDefault();mxClient.IS_IE&&(this.evt.returnValue=!0);this.consumed=!0};function mxEventSource(a){this.setEventSource(a)}mxEventSource.prototype.eventListeners=null;mxEventSource.prototype.eventsEnabled=!0;mxEventSource.prototype.eventSource=null;mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled};
mxEventSource.prototype.setEventsEnabled=function(a){this.eventsEnabled=a};mxEventSource.prototype.getEventSource=function(){return this.eventSource};mxEventSource.prototype.setEventSource=function(a){this.eventSource=a};mxEventSource.prototype.addListener=function(a,b){null==this.eventListeners&&(this.eventListeners=[]);this.eventListeners.push(a);this.eventListeners.push(b)};
mxEventSource.prototype.removeListener=function(a){if(null!=this.eventListeners)for(var b=0;b<this.eventListeners.length;)this.eventListeners[b+1]==a?this.eventListeners.splice(b,2):b+=2};
@@ -305,10 +305,11 @@ mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};mxSvgCanvas2D.prototype.getAlternateText=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=f?this.foAltText:null};
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){a=this.getAlternateText(a,b,c,d,e,f,g,k,l,m,n,p,q);d=this.state;return null!=a&&0<d.fontSize?(k=k==mxConstants.ALIGN_TOP?1:k==mxConstants.ALIGN_BOTTOM?0:.3,e=g==mxConstants.ALIGN_RIGHT?"end":g==mxConstants.ALIGN_LEFT?"start":"middle",g=this.createElement("text"),g.setAttribute("x",Math.round(b+d.dx)),g.setAttribute("y",Math.round(c+d.dy+k*d.fontSize)),g.setAttribute("fill",d.fontColor||"black"),g.setAttribute("font-family",
d.fontFamily),g.setAttribute("font-size",Math.round(d.fontSize)+"px"),"start"!=e&&g.setAttribute("text-anchor",e),(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&g.setAttribute("font-weight","bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&g.setAttribute("font-style","italic"),b=[],(d.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(d.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),
-0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
+0<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};
+mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":e==mxConstants.DIRECTION_RADIAL?c="r":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
-mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
-e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
+mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement(e==mxConstants.DIRECTION_RADIAL?"radialGradient":"linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");
+c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&(!a||null==d.fillColor)&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=
c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
diff --git a/src/main/webapp/resources/dia.txt b/src/main/webapp/resources/dia.txt
index feaa1958..c52ce770 100644
--- a/src/main/webapp/resources/dia.txt
+++ b/src/main/webapp/resources/dia.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt
index d3e8919d..17230620 100644
--- a/src/main/webapp/resources/dia_am.txt
+++ b/src/main/webapp/resources/dia_am.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index b6bd8b9b..80cf4ae9 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -596,6 +596,7 @@ properties=‫خواص‬
publish=Publish
quickStart=‫دليل البدء فيديو‬
rack=Rack
+radial=Radial
radialTree=‫شجرة شعاعية‬
readOnly=‫قراءة فقط‬
reconnecting=‫إعادة الإتصال‬
diff --git a/src/main/webapp/resources/dia_bg.txt b/src/main/webapp/resources/dia_bg.txt
index 67d8f1dd..945d1cb7 100644
--- a/src/main/webapp/resources/dia_bg.txt
+++ b/src/main/webapp/resources/dia_bg.txt
@@ -596,6 +596,7 @@ properties=Свойства
publish=Публикуване
quickStart=Видеоклип за бързо начало
rack=Рафт
+radial=Radial
radialTree=Радиално дърво
readOnly=Само за четене
reconnecting=Повторно свързване
diff --git a/src/main/webapp/resources/dia_bn.txt b/src/main/webapp/resources/dia_bn.txt
index 6920166f..cad0de21 100644
--- a/src/main/webapp/resources/dia_bn.txt
+++ b/src/main/webapp/resources/dia_bn.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_bs.txt b/src/main/webapp/resources/dia_bs.txt
index f4405d10..0d43f3be 100644
--- a/src/main/webapp/resources/dia_bs.txt
+++ b/src/main/webapp/resources/dia_bs.txt
@@ -596,6 +596,7 @@ properties=Karakteristike
publish=Objavi
quickStart=Započni kratki video
rack=Postolje
+radial=Radial
radialTree=Radijalno drvo
readOnly=Samo za pregled
reconnecting=Ponovno povezivanje
diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt
index d594c539..37b13a65 100644
--- a/src/main/webapp/resources/dia_ca.txt
+++ b/src/main/webapp/resources/dia_ca.txt
@@ -596,6 +596,7 @@ properties=Propietats
publish=Publica
quickStart=Vídeo d'inici ràpid
rack=Rack
+radial=Radial
radialTree=Arbre radial
readOnly=Només lectura
reconnecting=Reconnectant
diff --git a/src/main/webapp/resources/dia_cs.txt b/src/main/webapp/resources/dia_cs.txt
index bdd4bcfe..ebfed940 100644
--- a/src/main/webapp/resources/dia_cs.txt
+++ b/src/main/webapp/resources/dia_cs.txt
@@ -596,6 +596,7 @@ properties=Vlastnosti
publish=Zveřejnit
quickStart=Rychle spustit video
rack=Rozvaděč
+radial=Radial
radialTree=Radiální strom
readOnly=Jen pro čtení
reconnecting=Připojuje se znovu
diff --git a/src/main/webapp/resources/dia_da.txt b/src/main/webapp/resources/dia_da.txt
index f16b2ca1..f24b1b5d 100644
--- a/src/main/webapp/resources/dia_da.txt
+++ b/src/main/webapp/resources/dia_da.txt
@@ -596,6 +596,7 @@ properties=Egenskaber
publish=Udgiv
quickStart=Quick Start Video
rack=Stativ
+radial=Radial
radialTree=Radialt træ
readOnly=Skrivebeskyttet
reconnecting=Gentilslutter
diff --git a/src/main/webapp/resources/dia_de.txt b/src/main/webapp/resources/dia_de.txt
index e0e35b53..27923197 100644
--- a/src/main/webapp/resources/dia_de.txt
+++ b/src/main/webapp/resources/dia_de.txt
@@ -596,6 +596,7 @@ properties=Eigenschaften
publish=Veröffentlichen
quickStart=Erste Schritte Video
rack=Rack
+radial=Radial
radialTree=Radialer Baum
readOnly=Nur Lesen
reconnecting=Verbindungswiederherstellung
diff --git a/src/main/webapp/resources/dia_el.txt b/src/main/webapp/resources/dia_el.txt
index 3fb6b237..c47aef0b 100644
--- a/src/main/webapp/resources/dia_el.txt
+++ b/src/main/webapp/resources/dia_el.txt
@@ -596,6 +596,7 @@ properties=Ιδιότητες
publish=Δημοσίευση
quickStart=Γρήγορη εκκίνηση βίντεο
rack=Ράφι
+radial=Radial
radialTree=Ακτινικό Δέντρο
readOnly=Ανάγνωση μόνο
reconnecting=Επανασύνδεση
diff --git a/src/main/webapp/resources/dia_eo.txt b/src/main/webapp/resources/dia_eo.txt
index 19456fcf..f2cac4ae 100644
--- a/src/main/webapp/resources/dia_eo.txt
+++ b/src/main/webapp/resources/dia_eo.txt
@@ -596,6 +596,7 @@ properties=Ecoj
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index 5d59b9b0..2f394d69 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -596,6 +596,7 @@ properties=Propiedades
publish=Publicar
quickStart=Vídeo de inicio rápido
rack=Rack
+radial=Radial
radialTree=Árbol radial
readOnly=Sólo lectura
reconnecting=Reconectando
diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt
index f43e8399..6f08974c 100644
--- a/src/main/webapp/resources/dia_et.txt
+++ b/src/main/webapp/resources/dia_et.txt
@@ -596,6 +596,7 @@ properties=Omadused
publish=Avalda
quickStart=Video kiirkäivitus
rack=Raam
+radial=Radial
radialTree=Radiaalpuu
readOnly=Ainult lugemiseks
reconnecting=Taasühendamine
diff --git a/src/main/webapp/resources/dia_eu.txt b/src/main/webapp/resources/dia_eu.txt
index 31a9ce4f..49a8663f 100644
--- a/src/main/webapp/resources/dia_eu.txt
+++ b/src/main/webapp/resources/dia_eu.txt
@@ -596,6 +596,7 @@ properties=Propietateak
publish=Argitaratu
quickStart=Abio bizkorreko bideoa
rack=Armairua
+radial=Radial
radialTree=Zuhaitz radiala
readOnly=Irakurtzeko soilik
reconnecting=Berriro konektatzen
diff --git a/src/main/webapp/resources/dia_fa.txt b/src/main/webapp/resources/dia_fa.txt
index 7e8ce043..1b03cbb0 100644
--- a/src/main/webapp/resources/dia_fa.txt
+++ b/src/main/webapp/resources/dia_fa.txt
@@ -596,6 +596,7 @@ properties=‫خواص‬
publish=‫انتشار‬
quickStart=‫ویدئوی شروع سریع‬
rack=‫ردیف‬
+radial=Radial
radialTree=‫درخت شعاعی‬
readOnly=‫فقط خواندنی‬
reconnecting=‫اتصال مجدد‬
diff --git a/src/main/webapp/resources/dia_fi.txt b/src/main/webapp/resources/dia_fi.txt
index 58b6a86a..cdfa4e40 100644
--- a/src/main/webapp/resources/dia_fi.txt
+++ b/src/main/webapp/resources/dia_fi.txt
@@ -596,6 +596,7 @@ properties=Ominaisuudet
publish=Julkaise
quickStart=Pika-aloitusvideo
rack=Teline
+radial=Radial
radialTree=Säteittäinen puu
readOnly=Vain luku
reconnecting=Yhdistetään uudelleen
diff --git a/src/main/webapp/resources/dia_fil.txt b/src/main/webapp/resources/dia_fil.txt
index 040c2c78..3be21da2 100644
--- a/src/main/webapp/resources/dia_fil.txt
+++ b/src/main/webapp/resources/dia_fil.txt
@@ -596,6 +596,7 @@ properties=Mga katangian
publish=Ilathala
quickStart=Agarang pag-andar ng video
rack=Salansanan
+radial=Radial
radialTree=Istrukturang Pabilog
readOnly=Pagbasa lang
reconnecting=Muling kumukonekta
diff --git a/src/main/webapp/resources/dia_fr.txt b/src/main/webapp/resources/dia_fr.txt
index 3c305d56..b4d7ad0f 100644
--- a/src/main/webapp/resources/dia_fr.txt
+++ b/src/main/webapp/resources/dia_fr.txt
@@ -596,6 +596,7 @@ properties=Propriétés
publish=Publier
quickStart=Vidéo de démarrage rapide
rack=Racks
+radial=Radial
radialTree=Arbre radial
readOnly=Lecture seule
reconnecting=Reconnexion
diff --git a/src/main/webapp/resources/dia_gl.txt b/src/main/webapp/resources/dia_gl.txt
index af9982fd..090d81c6 100644
--- a/src/main/webapp/resources/dia_gl.txt
+++ b/src/main/webapp/resources/dia_gl.txt
@@ -596,6 +596,7 @@ properties=Propiedades
publish=Publicar
quickStart=Vídeo Introdución Rápido
rack=Armario
+radial=Radial
radialTree=Árbore Radial
readOnly=Só lectura
reconnecting=Reconectando
diff --git a/src/main/webapp/resources/dia_gu.txt b/src/main/webapp/resources/dia_gu.txt
index 45a051e1..520beb68 100644
--- a/src/main/webapp/resources/dia_gu.txt
+++ b/src/main/webapp/resources/dia_gu.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_he.txt b/src/main/webapp/resources/dia_he.txt
index bd1661fc..1d8c6daa 100644
--- a/src/main/webapp/resources/dia_he.txt
+++ b/src/main/webapp/resources/dia_he.txt
@@ -596,6 +596,7 @@ properties=‫מאפיינים‬
publish=‫פרסם‬
quickStart=‫התחלה מהירה סרטון‬
rack=‫מדף‬
+radial=Radial
radialTree=‫עץ רדיאלי‬
readOnly=‫קריאה בלבד‬
reconnecting=‫מתחבר מחדש‬
diff --git a/src/main/webapp/resources/dia_hi.txt b/src/main/webapp/resources/dia_hi.txt
index 1d58978e..99d2c11a 100644
--- a/src/main/webapp/resources/dia_hi.txt
+++ b/src/main/webapp/resources/dia_hi.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_hr.txt b/src/main/webapp/resources/dia_hr.txt
index 2af557ba..e1e03925 100644
--- a/src/main/webapp/resources/dia_hr.txt
+++ b/src/main/webapp/resources/dia_hr.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_hu.txt b/src/main/webapp/resources/dia_hu.txt
index 8b77c425..ab8dd514 100644
--- a/src/main/webapp/resources/dia_hu.txt
+++ b/src/main/webapp/resources/dia_hu.txt
@@ -596,6 +596,7 @@ properties=Tulajdonságok
publish=Közzétesz
quickStart=Gyors indítás videó
rack=Rack
+radial=Radial
radialTree=Radiális fa
readOnly=Csak olvasható
reconnecting=Újracsatlakoztatás
diff --git a/src/main/webapp/resources/dia_i18n.txt b/src/main/webapp/resources/dia_i18n.txt
index c3e0e0cc..8ad237cb 100644
--- a/src/main/webapp/resources/dia_i18n.txt
+++ b/src/main/webapp/resources/dia_i18n.txt
@@ -596,6 +596,7 @@ properties=properties
publish=publish
quickStart=quickStart
rack=rack
+radial=radial
radialTree=radialTree
readOnly=readOnly
reconnecting=reconnecting
diff --git a/src/main/webapp/resources/dia_id.txt b/src/main/webapp/resources/dia_id.txt
index 897e87d3..c9b37898 100644
--- a/src/main/webapp/resources/dia_id.txt
+++ b/src/main/webapp/resources/dia_id.txt
@@ -596,6 +596,7 @@ properties=Properti
publish=Publikasikan
quickStart=Mulai Cepat Video
rack=Rak
+radial=Radial
radialTree=Pohon Radial
readOnly=Baca saja
reconnecting=Menghubungkan ulang
diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt
index b5501b96..83cafaf2 100644
--- a/src/main/webapp/resources/dia_it.txt
+++ b/src/main/webapp/resources/dia_it.txt
@@ -596,6 +596,7 @@ properties=Proprietà
publish=Pubblica
quickStart=Avvio rapido video
rack=Scaffale
+radial=Radial
radialTree=Albero radiale
readOnly=Sola lettura
reconnecting=Riconessione
diff --git a/src/main/webapp/resources/dia_ja.txt b/src/main/webapp/resources/dia_ja.txt
index 62c683bd..eae56d4d 100644
--- a/src/main/webapp/resources/dia_ja.txt
+++ b/src/main/webapp/resources/dia_ja.txt
@@ -596,6 +596,7 @@ properties=属性
publish=発行
quickStart=クイックスタートビデオ
rack=ラック
+radial=Radial
radialTree=放射状ツリー
readOnly=読み取り専用
reconnecting=再接続中
diff --git a/src/main/webapp/resources/dia_kn.txt b/src/main/webapp/resources/dia_kn.txt
index 87116604..b6932c4d 100644
--- a/src/main/webapp/resources/dia_kn.txt
+++ b/src/main/webapp/resources/dia_kn.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_ko.txt b/src/main/webapp/resources/dia_ko.txt
index 9e9a081f..f9701654 100644
--- a/src/main/webapp/resources/dia_ko.txt
+++ b/src/main/webapp/resources/dia_ko.txt
@@ -596,6 +596,7 @@ properties=속성
publish=게재
quickStart=빠른 시작 비디오
rack=랙
+radial=Radial
radialTree=방사형 트리
readOnly=읽기 전용
reconnecting=다시 연결중
diff --git a/src/main/webapp/resources/dia_lt.txt b/src/main/webapp/resources/dia_lt.txt
index 81557750..b235189b 100644
--- a/src/main/webapp/resources/dia_lt.txt
+++ b/src/main/webapp/resources/dia_lt.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_lv.txt b/src/main/webapp/resources/dia_lv.txt
index c1b69e3c..97c78e4f 100644
--- a/src/main/webapp/resources/dia_lv.txt
+++ b/src/main/webapp/resources/dia_lv.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_ml.txt b/src/main/webapp/resources/dia_ml.txt
index 55c4855d..182767b2 100644
--- a/src/main/webapp/resources/dia_ml.txt
+++ b/src/main/webapp/resources/dia_ml.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_mr.txt b/src/main/webapp/resources/dia_mr.txt
index c3f3ec64..4e75988c 100644
--- a/src/main/webapp/resources/dia_mr.txt
+++ b/src/main/webapp/resources/dia_mr.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_ms.txt b/src/main/webapp/resources/dia_ms.txt
index df4b4c51..ce3ea886 100644
--- a/src/main/webapp/resources/dia_ms.txt
+++ b/src/main/webapp/resources/dia_ms.txt
@@ -596,6 +596,7 @@ properties=Sifat-sifat
publish=Terbit
quickStart=Mulakan Pantas Video
rack=Rak
+radial=Radial
radialTree=Pohon Radial
readOnly=Baca sahaja
reconnecting=Sambung semula
diff --git a/src/main/webapp/resources/dia_my.txt b/src/main/webapp/resources/dia_my.txt
index feaa1958..c52ce770 100644
--- a/src/main/webapp/resources/dia_my.txt
+++ b/src/main/webapp/resources/dia_my.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index 1b89f746..c537b857 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -596,6 +596,7 @@ properties=Eigenschappen
publish=Publiceren
quickStart=Introductievideo
rack=Rek
+radial=Radial
radialTree=Radiale boom
readOnly=Alleen-lezen
reconnecting=Opnieuw verbinden
diff --git a/src/main/webapp/resources/dia_no.txt b/src/main/webapp/resources/dia_no.txt
index 5c7a408b..c3a2859a 100644
--- a/src/main/webapp/resources/dia_no.txt
+++ b/src/main/webapp/resources/dia_no.txt
@@ -596,6 +596,7 @@ properties=Egenskaper
publish=Publiser
quickStart=Hurtigstartsvideo
rack=Reol
+radial=Radial
radialTree=Radialt tre
readOnly=Skrivebeskyttet
reconnecting=Kobler til på nytt
diff --git a/src/main/webapp/resources/dia_pl.txt b/src/main/webapp/resources/dia_pl.txt
index 971807ef..a5e3c683 100644
--- a/src/main/webapp/resources/dia_pl.txt
+++ b/src/main/webapp/resources/dia_pl.txt
@@ -596,6 +596,7 @@ properties=Właściwości
publish=Publikuj
quickStart=Szybki start (wideo)
rack=Szafa serwerowa
+radial=Radial
radialTree=Drzewo radialne
readOnly=Tylko do odczytu
reconnecting=Łączę ponownie
diff --git a/src/main/webapp/resources/dia_pt-br.txt b/src/main/webapp/resources/dia_pt-br.txt
index 7c841f1d..a14e171e 100644
--- a/src/main/webapp/resources/dia_pt-br.txt
+++ b/src/main/webapp/resources/dia_pt-br.txt
@@ -596,6 +596,7 @@ properties=Propriedades
publish=Publicar
quickStart=Introdução rápida vídeo
rack=Gabinete
+radial=Radial
radialTree=Árvore radial
readOnly=Somente leitura
reconnecting=Reconetando
diff --git a/src/main/webapp/resources/dia_pt.txt b/src/main/webapp/resources/dia_pt.txt
index ffe2bdb3..9d79c150 100644
--- a/src/main/webapp/resources/dia_pt.txt
+++ b/src/main/webapp/resources/dia_pt.txt
@@ -596,6 +596,7 @@ properties=Propriedades
publish=Publicar
quickStart=Início rápido vídeo
rack=Prateleira
+radial=Radial
radialTree=Árvore radial
readOnly=Somente de leitura
reconnecting=A reconetar
diff --git a/src/main/webapp/resources/dia_ro.txt b/src/main/webapp/resources/dia_ro.txt
index c5c25aa6..656477b2 100644
--- a/src/main/webapp/resources/dia_ro.txt
+++ b/src/main/webapp/resources/dia_ro.txt
@@ -596,6 +596,7 @@ properties=Caracteristici
publish=Publică
quickStart=Introducere rapidă video
rack=Rack
+radial=Radial
radialTree=Arbore radial
readOnly=Doar pentru citit
reconnecting=Reconectare
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 3418c69d..9f801c99 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -596,6 +596,7 @@ properties=Свойства
publish=Опубликовать
quickStart=Видео-знакомство (англ.)
rack=Стойки и оборудование
+radial=Radial
radialTree=Радиальное дерево
readOnly=Только для чтения
reconnecting=Восстановление соединения
diff --git a/src/main/webapp/resources/dia_si.txt b/src/main/webapp/resources/dia_si.txt
index feaa1958..c52ce770 100644
--- a/src/main/webapp/resources/dia_si.txt
+++ b/src/main/webapp/resources/dia_si.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_sk.txt b/src/main/webapp/resources/dia_sk.txt
index 84a4fb4f..e8ebfcc6 100644
--- a/src/main/webapp/resources/dia_sk.txt
+++ b/src/main/webapp/resources/dia_sk.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_sl.txt b/src/main/webapp/resources/dia_sl.txt
index dbc04e4d..8e5a369b 100644
--- a/src/main/webapp/resources/dia_sl.txt
+++ b/src/main/webapp/resources/dia_sl.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_sr.txt b/src/main/webapp/resources/dia_sr.txt
index df59779d..e9a7e243 100644
--- a/src/main/webapp/resources/dia_sr.txt
+++ b/src/main/webapp/resources/dia_sr.txt
@@ -596,6 +596,7 @@ properties=Osobine
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radijalno drvo
readOnly=Samo čitanje
reconnecting=Rekonekcija
diff --git a/src/main/webapp/resources/dia_sv.txt b/src/main/webapp/resources/dia_sv.txt
index a86b0dad..e4f6d64d 100644
--- a/src/main/webapp/resources/dia_sv.txt
+++ b/src/main/webapp/resources/dia_sv.txt
@@ -596,6 +596,7 @@ properties=Egenskaper
publish=Publicera
quickStart=Snabbstartsvideo
rack=Rackkabinett
+radial=Radial
radialTree=Radial träd
readOnly=Skrivskyddad
reconnecting=Återansluter
diff --git a/src/main/webapp/resources/dia_sw.txt b/src/main/webapp/resources/dia_sw.txt
index ab9fe441..fc2483ef 100644
--- a/src/main/webapp/resources/dia_sw.txt
+++ b/src/main/webapp/resources/dia_sw.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_ta.txt b/src/main/webapp/resources/dia_ta.txt
index 4ab272e9..cf77254f 100644
--- a/src/main/webapp/resources/dia_ta.txt
+++ b/src/main/webapp/resources/dia_ta.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_te.txt b/src/main/webapp/resources/dia_te.txt
index 75e78f19..962b18fa 100644
--- a/src/main/webapp/resources/dia_te.txt
+++ b/src/main/webapp/resources/dia_te.txt
@@ -596,6 +596,7 @@ properties=Properties
publish=Publish
quickStart=Quick Start Video
rack=Rack
+radial=Radial
radialTree=Radial Tree
readOnly=Read-only
reconnecting=Reconnecting
diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt
index 433b607b..bc616df3 100644
--- a/src/main/webapp/resources/dia_th.txt
+++ b/src/main/webapp/resources/dia_th.txt
@@ -596,6 +596,7 @@ properties=คุณสมบัติ
publish=เผยแพร่
quickStart=เล่นวีดีโอแบบด่วน
rack=ดึง
+radial=Radial
radialTree=กลุ่มเส้นรัศมี
readOnly=อ่านเท่านั้น
reconnecting=เชื่อมต่ออีกครั้ง
diff --git a/src/main/webapp/resources/dia_tr.txt b/src/main/webapp/resources/dia_tr.txt
index 6cd3ea45..3814ca54 100644
--- a/src/main/webapp/resources/dia_tr.txt
+++ b/src/main/webapp/resources/dia_tr.txt
@@ -596,6 +596,7 @@ properties=Özellikler
publish=Yayınla
quickStart=Hızlı başlama video
rack=Mikroişlemci şasisi
+radial=Radial
radialTree=Dairesel ağaç
readOnly=Salt okunur
reconnecting=Yeniden bağlanıyor
diff --git a/src/main/webapp/resources/dia_uk.txt b/src/main/webapp/resources/dia_uk.txt
index acd2d8ea..f10ec83e 100644
--- a/src/main/webapp/resources/dia_uk.txt
+++ b/src/main/webapp/resources/dia_uk.txt
@@ -596,6 +596,7 @@ properties=Властивості
publish=Оприлюднити
quickStart=Швидко розпочати видиво
rack=Стійки
+radial=Radial
radialTree=Дерево по колу
readOnly=Лише для читання
reconnecting=Повторне підключення
diff --git a/src/main/webapp/resources/dia_vi.txt b/src/main/webapp/resources/dia_vi.txt
index babf3be8..18e4b580 100644
--- a/src/main/webapp/resources/dia_vi.txt
+++ b/src/main/webapp/resources/dia_vi.txt
@@ -596,6 +596,7 @@ properties=Thuộc tính
publish=Xuất bản
quickStart=Bắt đầu nhanh video
rack=Giá đỡ
+radial=Radial
radialTree=Cây hướng tâm
readOnly=Chỉ đọc
reconnecting=Đang kết nối lại
diff --git a/src/main/webapp/resources/dia_zh-tw.txt b/src/main/webapp/resources/dia_zh-tw.txt
index a6612dd2..9a25230b 100644
--- a/src/main/webapp/resources/dia_zh-tw.txt
+++ b/src/main/webapp/resources/dia_zh-tw.txt
@@ -596,6 +596,7 @@ properties=屬性
publish=發佈
quickStart=快速入門教程
rack=機架
+radial=Radial
radialTree=徑向圖
readOnly=唯讀
reconnecting=正在重新連線
diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt
index 669c9c63..f1d1569c 100644
--- a/src/main/webapp/resources/dia_zh.txt
+++ b/src/main/webapp/resources/dia_zh.txt
@@ -596,6 +596,7 @@ properties=属性
publish=发布
quickStart=快速入门视频
rack=机架
+radial=Radial
radialTree=径向树
readOnly=只读
reconnecting=重新连接
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index 5c0a3a9c..88a75618 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:"907d1e90bed179e2fa25d8716d04ef35"},{url:"js/extensions.min.js",revision:"f51299959d01200c483853b299c2f0e1"},{url:"js/stencils.min.js",revision:"4e7448cd52e7be7804236973ff1c37b0"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"a02a5d8342a82adf17798f4eae85befc"},{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:"d82b9c14d7a069efabef719a8a5f3975"},{url:"js/viewer-static.min.js",revision:"2c4e454ff79f14059c4fcf92a208120d"},{url:"connect/jira/editor-1-3-3.html",revision:"fb7e91ab8890425d55f0122a01cc5b20"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"adad95619154b88fda78e125d87d9f73"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"c58a7c55a335f49d84bc4b1aac9885aa"},{url:"connect/jira/viewerPanel.js",revision:"1d7b36adbfdb47f33304ee7128be84ff"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"efeb93386632a751dc4d0c095890394e"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"0e8e4adf7a140480887e4a98581f5c19"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"ccdfdf0b27316ba750f45d45852da8d0"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"0c9166ff44e5d12fe0ae434023cc0ca9"},{url:"connect/new_common/cac.js",revision:"b1eb16ac1824f26824c748e8b8028e30"},{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:"3a92e6c55a7c2e3d4252ef376e4dcf41"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c154ee66bab65cd0e476c1d64c64cb8d"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"689fa63fd3a384662b4199f6e4a5b5c1"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"eb064193b3f2386e09363ee75c902b29"},{url:"connect/confluence/includeDiagram.html",revision:"b4ec3c4afe5a24a14bf2a6673ab0f19f"},{url:"connect/confluence/macro-editor.js",revision:"29d2a5232e54f015f05c43d2a14b8de1"},{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:"249cbf90e4c2ac597f6e5871981492ef"},{url:"resources/dia_am.txt",revision:"12c5020c826384eb4018fccdbbbede99"},{url:"resources/dia_ar.txt",revision:"3cc6433bdaf8b9d3bdebf46d23ff56e7"},{url:"resources/dia_bg.txt",revision:"7568a1efe0001d299b021c1230c6f536"},{url:"resources/dia_bn.txt",revision:"ea79bedc7edb0a60bf1697c0b88e69a6"},{url:"resources/dia_bs.txt",revision:"9b6a25f0d25985271281feb2d7a6289a"},{url:"resources/dia_ca.txt",revision:"8f9849e75f4b211a0f644b0d513155ba"},{url:"resources/dia_cs.txt",revision:"d15442762de2fca83bf4d919d20a7948"},{url:"resources/dia_da.txt",revision:"8dd357dc42493d70d55cfb76068c4f68"},{url:"resources/dia_de.txt",revision:"87b3225e67eb872b31f351d138018617"},{url:"resources/dia_el.txt",revision:"ee235cb8511f01b74c7b0a107279daae"},{url:"resources/dia_eo.txt",revision:"9c43f699fd9381231d497454385b7733"},{url:"resources/dia_es.txt",revision:"05b40ec9910c37cf2258705c79e8e7c4"},{url:"resources/dia_et.txt",revision:"a8e4d39e9a150101f6123d6bdefab25f"},{url:"resources/dia_eu.txt",revision:"1829dad208ac57fe9d4abe0fc3984afe"},{url:"resources/dia_fa.txt",revision:"a51d1fd42fc702ac09e4e8282e75218e"},{url:"resources/dia_fi.txt",revision:"4f04697d70f4edb9d2c042a4ca70c815"},{url:"resources/dia_fil.txt",revision:"c27bd1ac687cc57c339698a05cd7168e"},{url:"resources/dia_fr.txt",revision:"70fc98e68c43a1358d31cf57bb652bb7"},{url:"resources/dia_gl.txt",revision:"50a220509ded6c337be37b5adc0a4c01"},{url:"resources/dia_gu.txt",revision:"c1cc4eedec037364ba937b05e19b758a"},{url:"resources/dia_he.txt",revision:"c4a915326de71d1875967b7a5c0aeeb9"},{url:"resources/dia_hi.txt",revision:"10af5f60c17b854d15e49f19ae831d44"},{url:"resources/dia_hr.txt",revision:"f246c7199ff9f9404ec105c84f513c94"},{url:"resources/dia_hu.txt",revision:"9a4e5748f6f7987cb7f91cd899ba251f"},{url:"resources/dia_id.txt",revision:"a02708972ad42c9aa5bd23b7806edee3"},{url:"resources/dia_it.txt",revision:"afb3aa4e0b852ab93da1dd4515596744"},{url:"resources/dia_ja.txt",revision:"513f50e66483e828f93c82ecf4af2036"},{url:"resources/dia_kn.txt",revision:"adf979ddd2db0be0023669a881cc7efa"},{url:"resources/dia_ko.txt",revision:"2f3be6925ad73245033dc651e47c6f4d"},{url:"resources/dia_lt.txt",revision:"33432af089486ea41565cc2e2e687849"},{url:"resources/dia_lv.txt",revision:"a6b4b876a8e7ca841c0477bbc9f8854c"},{url:"resources/dia_ml.txt",revision:"299b73443874e951001205608a2cb057"},{url:"resources/dia_mr.txt",revision:"b4888cc64708dda3de4aa370e928b632"},{url:"resources/dia_ms.txt",revision:"ca3c79eccfad8a1463352871ec7518b7"},{url:"resources/dia_my.txt",revision:"249cbf90e4c2ac597f6e5871981492ef"},{url:"resources/dia_nl.txt",revision:"9e9119ae74909e49b25ac1548ba00896"},{url:"resources/dia_no.txt",revision:"e2a13e3cb44f8852de64b70676ea896f"},{url:"resources/dia_pl.txt",revision:"aeaa2590b373f76349cd9b4f47c3d9b9"},{url:"resources/dia_pt-br.txt",revision:"47ff9328301f3be989be54cb0b270cd1"},{url:"resources/dia_pt.txt",revision:"37bb4c07799b8b27a36f6740749f9327"},{url:"resources/dia_ro.txt",revision:"4581199cf32de026150d18838da421a1"},{url:"resources/dia_ru.txt",revision:"caae8efb45f35b061f8062c8ac10fe27"},{url:"resources/dia_si.txt",revision:"249cbf90e4c2ac597f6e5871981492ef"},{url:"resources/dia_sk.txt",revision:"6d7543d789dc3ebb056c65e1545b1500"},{url:"resources/dia_sl.txt",revision:"63be60ced1f7fcd761155d3cab01fe4c"},{url:"resources/dia_sr.txt",revision:"9013fea606971b5924192275f1d633b5"},{url:"resources/dia_sv.txt",revision:"a05c106d1ef19215c619a49999558b08"},{url:"resources/dia_sw.txt",revision:"03f61d110a6e72d0d5bf9bea2051b626"},{url:"resources/dia_ta.txt",revision:"1bf9648e5fa07196239cd97d1b9f2aae"},{url:"resources/dia_te.txt",revision:"6cacac8f84d685a7498783ef39f0b18f"},{url:"resources/dia_th.txt",revision:"a1d99b2a05fbdd2f8aa819f1c1422de4"},{url:"resources/dia_tr.txt",revision:"0ac3ea4493992fca0deb9cdce86ec66f"},{url:"resources/dia_uk.txt",revision:"ed3fb217ff3406c2d5f79d76217f1342"},{url:"resources/dia_vi.txt",revision:"5e308477a00a7bb4163961dca1ae218e"},{url:"resources/dia_zh-tw.txt",revision:"461f412a44681869a8b140da99b06a59"},{url:"resources/dia_zh.txt",revision:"b8fe7347e98f6ccb2022b90e9a2f4a14"},{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 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:"5c8e023c03ba7df9dc044796b0f2fd67"},{url:"js/extensions.min.js",revision:"f51299959d01200c483853b299c2f0e1"},{url:"js/stencils.min.js",revision:"4e7448cd52e7be7804236973ff1c37b0"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"a02a5d8342a82adf17798f4eae85befc"},{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:"d82b9c14d7a069efabef719a8a5f3975"},{url:"js/viewer-static.min.js",revision:"32fd71f68160aabc2fce07b3e5d23df9"},{url:"connect/jira/editor-1-3-3.html",revision:"fb7e91ab8890425d55f0122a01cc5b20"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"adad95619154b88fda78e125d87d9f73"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"c58a7c55a335f49d84bc4b1aac9885aa"},{url:"connect/jira/viewerPanel.js",revision:"1d7b36adbfdb47f33304ee7128be84ff"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"efeb93386632a751dc4d0c095890394e"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"0e8e4adf7a140480887e4a98581f5c19"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"ccdfdf0b27316ba750f45d45852da8d0"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"6bd12d89fea646cc7b715319d5b629c7"},{url:"connect/new_common/cac.js",revision:"b1eb16ac1824f26824c748e8b8028e30"},{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:"c04171313f3ebab978fd631f1c2e4826"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"689fa63fd3a384662b4199f6e4a5b5c1"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"eb064193b3f2386e09363ee75c902b29"},{url:"connect/confluence/includeDiagram.html",revision:"b4ec3c4afe5a24a14bf2a6673ab0f19f"},{url:"connect/confluence/macro-editor.js",revision:"29d2a5232e54f015f05c43d2a14b8de1"},{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:"1ffcf46b863d397a340406594602e5bf"},{url:"resources/dia_am.txt",revision:"5becedb54001e717cc07f9963927c695"},{url:"resources/dia_ar.txt",revision:"06281109346ad809f7192b3ada52d74f"},{url:"resources/dia_bg.txt",revision:"5cd4e4b31344412e20e863ab4f6bf384"},{url:"resources/dia_bn.txt",revision:"1922ab6ba6d6c701cef7fade12b0cbf4"},{url:"resources/dia_bs.txt",revision:"7d4585cf26b3a6e7d6dc98dafbd7f1e6"},{url:"resources/dia_ca.txt",revision:"c75ea819b8f08cb3e08fe1ff60120da4"},{url:"resources/dia_cs.txt",revision:"7b759d1c1e003c3ddd2247db81e33722"},{url:"resources/dia_da.txt",revision:"54c8ff2a8b99d3aff8b8759f32fbae4b"},{url:"resources/dia_de.txt",revision:"b12d2e82571cd157830b22d478f1924f"},{url:"resources/dia_el.txt",revision:"c083976a0d30a740b59d056080bbac01"},{url:"resources/dia_eo.txt",revision:"d5faedc9463da0d94e43db55ae8bcbae"},{url:"resources/dia_es.txt",revision:"39d6ad86ea0de9ec4078480bf7c768cc"},{url:"resources/dia_et.txt",revision:"fa46481efeb4f1c5762f1b3b61d5487a"},{url:"resources/dia_eu.txt",revision:"d9e26a4bfc62a3f9b7dd4edbbc358c00"},{url:"resources/dia_fa.txt",revision:"39d69020a5503b8be4b9e19042fecdb6"},{url:"resources/dia_fi.txt",revision:"409bcca45fbf581fc0eee2fd29277df2"},{url:"resources/dia_fil.txt",revision:"3b42f58b9165b10762bf2d596181f1f8"},{url:"resources/dia_fr.txt",revision:"0e30d26776388cd835b02ff42e567fcd"},{url:"resources/dia_gl.txt",revision:"e3726e3b819df9fdc8bfbef0d21c5afc"},{url:"resources/dia_gu.txt",revision:"bbea3de2f6a10a704ae61ef476c215b2"},{url:"resources/dia_he.txt",revision:"1c4ba2e496bfc863df802bebaee8e49d"},{url:"resources/dia_hi.txt",revision:"3be29154cb4e2d956a5adbcda1ef5a4b"},{url:"resources/dia_hr.txt",revision:"892e7767ba481e0c59cc7adbabc5a35f"},{url:"resources/dia_hu.txt",revision:"0ebfd32dd9da3c0d0a22dda17e6e28f4"},{url:"resources/dia_id.txt",revision:"df4cce3c253e2c1ae55aab7df448a5bb"},{url:"resources/dia_it.txt",revision:"db58e69a7bb518268d5e3afce0004f7e"},{url:"resources/dia_ja.txt",revision:"5b42c916c75d428ad6b31d3592e432f8"},{url:"resources/dia_kn.txt",revision:"ccfdcbe0fb2dff7e3514929afdbe281d"},{url:"resources/dia_ko.txt",revision:"aac4c115be4735352c1279461e3ac8ed"},{url:"resources/dia_lt.txt",revision:"8b34901f4f3207266720b241076f4408"},{url:"resources/dia_lv.txt",revision:"8f842f2d180448433750b5083f45cfbe"},{url:"resources/dia_ml.txt",revision:"2c2d42479c02beed95bf4b589850930b"},{url:"resources/dia_mr.txt",revision:"2641b8fa971331ce2f777846f1397d24"},{url:"resources/dia_ms.txt",revision:"573e8feb191e4afcba7baafd3cc0484d"},{url:"resources/dia_my.txt",revision:"1ffcf46b863d397a340406594602e5bf"},{url:"resources/dia_nl.txt",revision:"875d913a550e10c4e4c1d7521abf1ab5"},{url:"resources/dia_no.txt",revision:"ce6be9cdcd49842472cd978323efc7ed"},{url:"resources/dia_pl.txt",revision:"5697a9505447f690ebdd7af9486a5676"},{url:"resources/dia_pt-br.txt",revision:"50efe903dfda44482e227a7fe674fd26"},{url:"resources/dia_pt.txt",revision:"29fbf744c69bfd9cd356afd3a2654e55"},{url:"resources/dia_ro.txt",revision:"9635641192496bddb11a71d4c3a88810"},{url:"resources/dia_ru.txt",revision:"0cde4bfa857b18fc8ffabfd34742291a"},{url:"resources/dia_si.txt",revision:"1ffcf46b863d397a340406594602e5bf"},{url:"resources/dia_sk.txt",revision:"426e45f51b9cc404b87009b8f134ad8a"},{url:"resources/dia_sl.txt",revision:"3f3324999622ba2c582209fcb740ffa2"},{url:"resources/dia_sr.txt",revision:"7b4dc4fc7dd74e68bb753d1488cfe56d"},{url:"resources/dia_sv.txt",revision:"b209c8466516df79ecaddf8847eb06f3"},{url:"resources/dia_sw.txt",revision:"2d7dac628a35337fa8399faff41bc7ea"},{url:"resources/dia_ta.txt",revision:"20bf0415a64b91e95ff8c952422d0762"},{url:"resources/dia_te.txt",revision:"581cc2b8141b2640a5ac2dfd88d47e14"},{url:"resources/dia_th.txt",revision:"ca75336bcdec86a557560e306c62e6a1"},{url:"resources/dia_tr.txt",revision:"9cc1a6575d9171d55b06ea09c9b4d935"},{url:"resources/dia_uk.txt",revision:"551167f2a762879d0db63f44fbb97e11"},{url:"resources/dia_vi.txt",revision:"a7c422067bc86e3073c2aa684834b2fa"},{url:"resources/dia_zh-tw.txt",revision:"c4f31d47b8165049f1da5c4f04fe5712"},{url:"resources/dia_zh.txt",revision:"f1875d70c9d896ca4653d1e85d0cfbd9"},{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 da68b5f0..30fb422f 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/6317a80ca95afc673dfbe9af7a10d310/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\": \"907d1e90bed179e2fa25d8716d04ef35\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"f51299959d01200c483853b299c2f0e1\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"4e7448cd52e7be7804236973ff1c37b0\"\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\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"a02a5d8342a82adf17798f4eae85befc\"\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\": \"d82b9c14d7a069efabef719a8a5f3975\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"2c4e454ff79f14059c4fcf92a208120d\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"fb7e91ab8890425d55f0122a01cc5b20\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"adad95619154b88fda78e125d87d9f73\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"c58a7c55a335f49d84bc4b1aac9885aa\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"1d7b36adbfdb47f33304ee7128be84ff\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"efeb93386632a751dc4d0c095890394e\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"0e8e4adf7a140480887e4a98581f5c19\"\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\": \"ccdfdf0b27316ba750f45d45852da8d0\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"0c9166ff44e5d12fe0ae434023cc0ca9\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"b1eb16ac1824f26824c748e8b8028e30\"\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\": \"3a92e6c55a7c2e3d4252ef376e4dcf41\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c154ee66bab65cd0e476c1d64c64cb8d\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"689fa63fd3a384662b4199f6e4a5b5c1\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"eb064193b3f2386e09363ee75c902b29\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"b4ec3c4afe5a24a14bf2a6673ab0f19f\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"29d2a5232e54f015f05c43d2a14b8de1\"\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\": \"249cbf90e4c2ac597f6e5871981492ef\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"12c5020c826384eb4018fccdbbbede99\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"3cc6433bdaf8b9d3bdebf46d23ff56e7\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"7568a1efe0001d299b021c1230c6f536\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"ea79bedc7edb0a60bf1697c0b88e69a6\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9b6a25f0d25985271281feb2d7a6289a\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"8f9849e75f4b211a0f644b0d513155ba\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"d15442762de2fca83bf4d919d20a7948\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"8dd357dc42493d70d55cfb76068c4f68\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"87b3225e67eb872b31f351d138018617\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"ee235cb8511f01b74c7b0a107279daae\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"9c43f699fd9381231d497454385b7733\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"05b40ec9910c37cf2258705c79e8e7c4\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"a8e4d39e9a150101f6123d6bdefab25f\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"1829dad208ac57fe9d4abe0fc3984afe\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"a51d1fd42fc702ac09e4e8282e75218e\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"4f04697d70f4edb9d2c042a4ca70c815\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"c27bd1ac687cc57c339698a05cd7168e\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"70fc98e68c43a1358d31cf57bb652bb7\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"50a220509ded6c337be37b5adc0a4c01\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"c1cc4eedec037364ba937b05e19b758a\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"c4a915326de71d1875967b7a5c0aeeb9\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"10af5f60c17b854d15e49f19ae831d44\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"f246c7199ff9f9404ec105c84f513c94\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"9a4e5748f6f7987cb7f91cd899ba251f\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"a02708972ad42c9aa5bd23b7806edee3\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"afb3aa4e0b852ab93da1dd4515596744\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"513f50e66483e828f93c82ecf4af2036\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"adf979ddd2db0be0023669a881cc7efa\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"2f3be6925ad73245033dc651e47c6f4d\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"33432af089486ea41565cc2e2e687849\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"a6b4b876a8e7ca841c0477bbc9f8854c\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"299b73443874e951001205608a2cb057\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"b4888cc64708dda3de4aa370e928b632\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"ca3c79eccfad8a1463352871ec7518b7\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"249cbf90e4c2ac597f6e5871981492ef\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"9e9119ae74909e49b25ac1548ba00896\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"e2a13e3cb44f8852de64b70676ea896f\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"aeaa2590b373f76349cd9b4f47c3d9b9\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"47ff9328301f3be989be54cb0b270cd1\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"37bb4c07799b8b27a36f6740749f9327\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"4581199cf32de026150d18838da421a1\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"caae8efb45f35b061f8062c8ac10fe27\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"249cbf90e4c2ac597f6e5871981492ef\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"6d7543d789dc3ebb056c65e1545b1500\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"63be60ced1f7fcd761155d3cab01fe4c\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"9013fea606971b5924192275f1d633b5\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"a05c106d1ef19215c619a49999558b08\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"03f61d110a6e72d0d5bf9bea2051b626\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"1bf9648e5fa07196239cd97d1b9f2aae\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"6cacac8f84d685a7498783ef39f0b18f\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"a1d99b2a05fbdd2f8aa819f1c1422de4\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"0ac3ea4493992fca0deb9cdce86ec66f\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"ed3fb217ff3406c2d5f79d76217f1342\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"5e308477a00a7bb4163961dca1ae218e\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"461f412a44681869a8b140da99b06a59\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"b8fe7347e98f6ccb2022b90e9a2f4a14\"\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/9cd2da75ef3792e166ee17cff7417639/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\": \"5c8e023c03ba7df9dc044796b0f2fd67\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"f51299959d01200c483853b299c2f0e1\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"4e7448cd52e7be7804236973ff1c37b0\"\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\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"a02a5d8342a82adf17798f4eae85befc\"\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\": \"d82b9c14d7a069efabef719a8a5f3975\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"32fd71f68160aabc2fce07b3e5d23df9\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"fb7e91ab8890425d55f0122a01cc5b20\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"adad95619154b88fda78e125d87d9f73\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"c58a7c55a335f49d84bc4b1aac9885aa\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"1d7b36adbfdb47f33304ee7128be84ff\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"efeb93386632a751dc4d0c095890394e\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"0e8e4adf7a140480887e4a98581f5c19\"\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\": \"ccdfdf0b27316ba750f45d45852da8d0\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"6bd12d89fea646cc7b715319d5b629c7\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"b1eb16ac1824f26824c748e8b8028e30\"\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\": \"c04171313f3ebab978fd631f1c2e4826\"\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\": \"689fa63fd3a384662b4199f6e4a5b5c1\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"eb064193b3f2386e09363ee75c902b29\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"b4ec3c4afe5a24a14bf2a6673ab0f19f\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"29d2a5232e54f015f05c43d2a14b8de1\"\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\": \"1ffcf46b863d397a340406594602e5bf\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"5becedb54001e717cc07f9963927c695\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"06281109346ad809f7192b3ada52d74f\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"5cd4e4b31344412e20e863ab4f6bf384\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"1922ab6ba6d6c701cef7fade12b0cbf4\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"7d4585cf26b3a6e7d6dc98dafbd7f1e6\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"c75ea819b8f08cb3e08fe1ff60120da4\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"7b759d1c1e003c3ddd2247db81e33722\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"54c8ff2a8b99d3aff8b8759f32fbae4b\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"b12d2e82571cd157830b22d478f1924f\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"c083976a0d30a740b59d056080bbac01\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"d5faedc9463da0d94e43db55ae8bcbae\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"39d6ad86ea0de9ec4078480bf7c768cc\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"fa46481efeb4f1c5762f1b3b61d5487a\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"d9e26a4bfc62a3f9b7dd4edbbc358c00\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"39d69020a5503b8be4b9e19042fecdb6\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"409bcca45fbf581fc0eee2fd29277df2\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"3b42f58b9165b10762bf2d596181f1f8\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"0e30d26776388cd835b02ff42e567fcd\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"e3726e3b819df9fdc8bfbef0d21c5afc\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"bbea3de2f6a10a704ae61ef476c215b2\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"1c4ba2e496bfc863df802bebaee8e49d\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"3be29154cb4e2d956a5adbcda1ef5a4b\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"892e7767ba481e0c59cc7adbabc5a35f\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"0ebfd32dd9da3c0d0a22dda17e6e28f4\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"df4cce3c253e2c1ae55aab7df448a5bb\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"db58e69a7bb518268d5e3afce0004f7e\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"5b42c916c75d428ad6b31d3592e432f8\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"ccfdcbe0fb2dff7e3514929afdbe281d\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"aac4c115be4735352c1279461e3ac8ed\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"8b34901f4f3207266720b241076f4408\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"8f842f2d180448433750b5083f45cfbe\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"2c2d42479c02beed95bf4b589850930b\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"2641b8fa971331ce2f777846f1397d24\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"573e8feb191e4afcba7baafd3cc0484d\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"1ffcf46b863d397a340406594602e5bf\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"875d913a550e10c4e4c1d7521abf1ab5\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"ce6be9cdcd49842472cd978323efc7ed\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"5697a9505447f690ebdd7af9486a5676\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"50efe903dfda44482e227a7fe674fd26\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"29fbf744c69bfd9cd356afd3a2654e55\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"9635641192496bddb11a71d4c3a88810\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"0cde4bfa857b18fc8ffabfd34742291a\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"1ffcf46b863d397a340406594602e5bf\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"426e45f51b9cc404b87009b8f134ad8a\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"3f3324999622ba2c582209fcb740ffa2\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"7b4dc4fc7dd74e68bb753d1488cfe56d\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"b209c8466516df79ecaddf8847eb06f3\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"2d7dac628a35337fa8399faff41bc7ea\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"20bf0415a64b91e95ff8c952422d0762\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"581cc2b8141b2640a5ac2dfd88d47e14\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"ca75336bcdec86a557560e306c62e6a1\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"9cc1a6575d9171d55b06ea09c9b4d935\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"551167f2a762879d0db63f44fbb97e11\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"a7c422067bc86e3073c2aa684834b2fa\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"c4f31d47b8165049f1da5c4f04fe5712\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f1875d70c9d896ca4653d1e85d0cfbd9\"\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